1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for linux/drivers/scsi
5 # 30 May 2000, Christoph Hellwig <hch@infradead.org>
6 # Rewritten to use lists instead of if-statements.
8 # 20 Sep 2000, Torben Mathiasen <tmm@image.dk>
9 # Changed link order to reflect new scsi initialization.
11 # *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!
12 # The link order must be, SCSI Core, SCSI HBA drivers, and
13 # lastly SCSI peripheral drivers (disk/tape/cdrom/etc.) to
14 # satisfy certain initialization assumptions in the SCSI layer.
15 # *!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!*!
18 CFLAGS_aha152x.o = -DAHA152X_STAT -DAUTOCONF
19 CFLAGS_gdth.o = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ -DGDTH_STATISTICS
21 obj-$(CONFIG_PCMCIA) += pcmcia/
23 obj-$(CONFIG_SCSI) += scsi_mod.o
24 obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_common.o
26 obj-$(CONFIG_RAID_ATTRS) += raid_class.o
28 # --- NOTE ORDERING HERE ---
29 # For kernel non-modular link, transport attributes need to
30 # be initialised before drivers
31 # --------------------------
32 obj-$(CONFIG_SCSI_SPI_ATTRS) += scsi_transport_spi.o
33 obj-$(CONFIG_SCSI_FC_ATTRS) += scsi_transport_fc.o
34 obj-$(CONFIG_SCSI_ISCSI_ATTRS) += scsi_transport_iscsi.o
35 obj-$(CONFIG_SCSI_SAS_ATTRS) += scsi_transport_sas.o
36 obj-$(CONFIG_SCSI_SAS_LIBSAS) += libsas/
37 obj-$(CONFIG_SCSI_SRP_ATTRS) += scsi_transport_srp.o
38 obj-$(CONFIG_SCSI_DH) += device_handler/
40 obj-$(CONFIG_LIBFC) += libfc/
41 obj-$(CONFIG_LIBFCOE) += fcoe/
42 obj-$(CONFIG_FCOE) += fcoe/
43 obj-$(CONFIG_FCOE_FNIC) += fnic/
44 obj-$(CONFIG_SCSI_SNIC) += snic/
45 obj-$(CONFIG_SCSI_BNX2X_FCOE) += libfc/ fcoe/ bnx2fc/
46 obj-$(CONFIG_QEDF) += qedf/
47 obj-$(CONFIG_ISCSI_TCP) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o
48 obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o
49 obj-$(CONFIG_ISCSI_BOOT_SYSFS) += iscsi_boot_sysfs.o
50 obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o
51 obj-$(CONFIG_SCSI_ZORRO7XX) += 53c700.o zorro7xx.o
52 obj-$(CONFIG_SCSI_ZORRO_ESP) += esp_scsi.o zorro_esp.o
53 obj-$(CONFIG_A3000_SCSI) += a3000.o wd33c93.o
54 obj-$(CONFIG_A2091_SCSI) += a2091.o wd33c93.o
55 obj-$(CONFIG_GVP11_SCSI) += gvp11.o wd33c93.o
56 obj-$(CONFIG_MVME147_SCSI) += mvme147.o wd33c93.o
57 obj-$(CONFIG_SGIWD93_SCSI) += sgiwd93.o wd33c93.o
58 obj-$(CONFIG_ATARI_SCSI) += atari_scsi.o
59 obj-$(CONFIG_MAC_SCSI) += mac_scsi.o
60 obj-$(CONFIG_SCSI_MAC_ESP) += esp_scsi.o mac_esp.o
61 obj-$(CONFIG_SUN3_SCSI) += sun3_scsi.o sun3_scsi_vme.o
62 obj-$(CONFIG_MVME16x_SCSI) += 53c700.o mvme16x_scsi.o
63 obj-$(CONFIG_BVME6000_SCSI) += 53c700.o bvme6000_scsi.o
64 obj-$(CONFIG_SCSI_SIM710) += 53c700.o sim710.o
65 obj-$(CONFIG_SCSI_ADVANSYS) += advansys.o
66 obj-$(CONFIG_SCSI_BUSLOGIC) += BusLogic.o
67 obj-$(CONFIG_SCSI_DPT_I2O) += dpt_i2o.o
68 obj-$(CONFIG_SCSI_ARCMSR) += arcmsr/
69 obj-$(CONFIG_SCSI_AHA152X) += aha152x.o
70 obj-$(CONFIG_SCSI_AHA1542) += aha1542.o
71 obj-$(CONFIG_SCSI_AHA1740) += aha1740.o
72 obj-$(CONFIG_SCSI_AIC7XXX) += aic7xxx/
73 obj-$(CONFIG_SCSI_AIC79XX) += aic7xxx/
74 obj-$(CONFIG_SCSI_AACRAID) += aacraid/
75 obj-$(CONFIG_SCSI_AIC94XX) += aic94xx/
76 obj-$(CONFIG_SCSI_PM8001) += pm8001/
77 obj-$(CONFIG_SCSI_ISCI) += isci/
78 obj-$(CONFIG_SCSI_IPS) += ips.o
79 obj-$(CONFIG_SCSI_FDOMAIN) += fdomain.o
80 obj-$(CONFIG_SCSI_FDOMAIN_PCI) += fdomain_pci.o
81 obj-$(CONFIG_SCSI_FDOMAIN_ISA) += fdomain_isa.o
82 obj-$(CONFIG_SCSI_GENERIC_NCR5380) += g_NCR5380.o
83 obj-$(CONFIG_SCSI_QLOGIC_FAS) += qlogicfas408.o qlogicfas.o
84 obj-$(CONFIG_PCMCIA_QLOGIC) += qlogicfas408.o
85 obj-$(CONFIG_SCSI_QLOGIC_1280) += qla1280.o
86 obj-$(CONFIG_SCSI_QLA_FC) += qla2xxx/
87 obj-$(CONFIG_SCSI_QLA_ISCSI) += libiscsi.o qla4xxx/
88 obj-$(CONFIG_SCSI_LPFC) += lpfc/
89 obj-$(CONFIG_SCSI_BFA_FC) += bfa/
90 obj-$(CONFIG_SCSI_CHELSIO_FCOE) += csiostor/
91 obj-$(CONFIG_SCSI_DMX3191D) += dmx3191d.o
92 obj-$(CONFIG_SCSI_HPSA) += hpsa.o
93 obj-$(CONFIG_SCSI_SMARTPQI) += smartpqi/
94 obj-$(CONFIG_SCSI_SYM53C8XX_2) += sym53c8xx_2/
95 obj-$(CONFIG_SCSI_ZALON) += zalon7xx.o
96 obj-$(CONFIG_SCSI_DC395x) += dc395x.o
97 obj-$(CONFIG_SCSI_AM53C974) += esp_scsi.o am53c974.o
98 obj-$(CONFIG_CXLFLASH) += cxlflash/
99 obj-$(CONFIG_MEGARAID_LEGACY) += megaraid.o
100 obj-$(CONFIG_MEGARAID_NEWGEN) += megaraid/
101 obj-$(CONFIG_MEGARAID_SAS) += megaraid/
102 obj-$(CONFIG_SCSI_MPT3SAS) += mpt3sas/
103 obj-$(CONFIG_SCSI_UFSHCD) += ufs/
104 obj-$(CONFIG_SCSI_ACARD) += atp870u.o
105 obj-$(CONFIG_SCSI_SUNESP) += esp_scsi.o sun_esp.o
106 obj-$(CONFIG_SCSI_GDTH) += gdth.o
107 obj-$(CONFIG_SCSI_INITIO) += initio.o
108 obj-$(CONFIG_SCSI_INIA100) += a100u2w.o
109 obj-$(CONFIG_SCSI_QLOGICPTI) += qlogicpti.o
110 obj-$(CONFIG_SCSI_MESH) += mesh.o
111 obj-$(CONFIG_SCSI_MAC53C94) += mac53c94.o
112 obj-$(CONFIG_SCSI_MYRB) += myrb.o
113 obj-$(CONFIG_SCSI_MYRS) += myrs.o
114 obj-$(CONFIG_BLK_DEV_3W_XXXX_RAID) += 3w-xxxx.o
115 obj-$(CONFIG_SCSI_3W_9XXX) += 3w-9xxx.o
116 obj-$(CONFIG_SCSI_3W_SAS) += 3w-sas.o
117 obj-$(CONFIG_SCSI_PPA) += ppa.o
118 obj-$(CONFIG_SCSI_IMM) += imm.o
119 obj-$(CONFIG_JAZZ_ESP) += esp_scsi.o jazz_esp.o
120 obj-$(CONFIG_SUN3X_ESP) += esp_scsi.o sun3x_esp.o
121 obj-$(CONFIG_SCSI_LASI700) += 53c700.o lasi700.o
122 obj-$(CONFIG_SCSI_SNI_53C710) += 53c700.o sni_53c710.o
123 obj-$(CONFIG_SCSI_NSP32) += nsp32.o
124 obj-$(CONFIG_SCSI_IPR) += ipr.o
125 obj-$(CONFIG_SCSI_IBMVSCSI) += ibmvscsi/
126 obj-$(CONFIG_SCSI_IBMVSCSIS) += ibmvscsi_tgt/
127 obj-$(CONFIG_SCSI_IBMVFC) += ibmvscsi/
128 obj-$(CONFIG_SCSI_HPTIOP) += hptiop.o
129 obj-$(CONFIG_SCSI_STEX) += stex.o
130 obj-$(CONFIG_SCSI_MVSAS) += mvsas/
131 obj-$(CONFIG_SCSI_MVUMI) += mvumi.o
132 obj-$(CONFIG_PS3_ROM) += ps3rom.o
133 obj-$(CONFIG_SCSI_CXGB3_ISCSI) += libiscsi.o libiscsi_tcp.o cxgbi/
134 obj-$(CONFIG_SCSI_CXGB4_ISCSI) += libiscsi.o libiscsi_tcp.o cxgbi/
135 obj-$(CONFIG_SCSI_BNX2_ISCSI) += libiscsi.o bnx2i/
136 obj-$(CONFIG_QEDI) += libiscsi.o qedi/
137 obj-$(CONFIG_BE2ISCSI) += libiscsi.o be2iscsi/
138 obj-$(CONFIG_SCSI_ESAS2R) += esas2r/
139 obj-$(CONFIG_SCSI_PMCRAID) += pmcraid.o
140 obj-$(CONFIG_SCSI_VIRTIO) += virtio_scsi.o
141 obj-$(CONFIG_VMWARE_PVSCSI) += vmw_pvscsi.o
142 obj-$(CONFIG_XEN_SCSI_FRONTEND) += xen-scsifront.o
143 obj-$(CONFIG_HYPERV_STORAGE) += hv_storvsc.o
144 obj-$(CONFIG_SCSI_WD719X) += wd719x.o
146 obj-$(CONFIG_ARM) += arm/
148 obj-$(CONFIG_CHR_DEV_ST) += st.o
149 obj-$(CONFIG_BLK_DEV_SD) += sd_mod.o
150 obj-$(CONFIG_BLK_DEV_SR) += sr_mod.o
151 obj-$(CONFIG_CHR_DEV_SG) += sg.o
152 obj-$(CONFIG_CHR_DEV_SCH) += ch.o
153 obj-$(CONFIG_SCSI_ENCLOSURE) += ses.o
155 obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas/
157 # This goes last, so that "real" scsi devices probe earlier
158 obj-$(CONFIG_SCSI_DEBUG) += scsi_debug.o
159 scsi_mod-y += scsi.o hosts.o scsi_ioctl.o \
160 scsicam.o scsi_error.o scsi_lib.o
161 scsi_mod-$(CONFIG_SCSI_CONSTANTS) += constants.o
162 scsi_mod-$(CONFIG_SCSI_DMA) += scsi_lib_dma.o
163 scsi_mod-y += scsi_scan.o scsi_sysfs.o scsi_devinfo.o
164 scsi_mod-$(CONFIG_SCSI_NETLINK) += scsi_netlink.o
165 scsi_mod-$(CONFIG_SYSCTL) += scsi_sysctl.o
166 scsi_mod-$(CONFIG_SCSI_PROC_FS) += scsi_proc.o
167 scsi_mod-$(CONFIG_BLK_DEBUG_FS) += scsi_debugfs.o
168 scsi_mod-y += scsi_trace.o scsi_logging.o
169 scsi_mod-$(CONFIG_PM) += scsi_pm.o
170 scsi_mod-$(CONFIG_SCSI_DH) += scsi_dh.o
172 hv_storvsc-y := storvsc_drv.o
175 sd_mod-$(CONFIG_BLK_DEV_INTEGRITY) += sd_dif.o
176 sd_mod-$(CONFIG_BLK_DEV_ZONED) += sd_zbc.o
178 sr_mod-objs := sr.o sr_ioctl.o sr_vendor.o
179 ncr53c8xx-flags-$(CONFIG_SCSI_ZALON) \
180 := -DCONFIG_NCR53C8XX_PREFETCH -DSCSI_NCR_BIG_ENDIAN \
181 -DCONFIG_SCSI_NCR53C8XX_NO_WORD_TRANSFERS
182 CFLAGS_ncr53c8xx.o := $(ncr53c8xx-flags-y) $(ncr53c8xx-flags-m)
183 zalon7xx-objs := zalon.o ncr53c8xx.o
185 # Files generated that shall be removed upon make clean
186 clean-files := 53c700_d.h 53c700_u.h scsi_devinfo_tbl.c
188 $(obj)/53c700.o: $(obj)/53c700_d.h
190 $(obj)/scsi_sysfs.o: $(obj)/scsi_devinfo_tbl.c
192 quiet_cmd_bflags = GEN $@
193 cmd_bflags = sed -n 's/.*define *BLIST_\([A-Z0-9_]*\) *.*/BLIST_FLAG_NAME(\1),/p' $< > $@
195 $(obj)/scsi_devinfo_tbl.c: include/scsi/scsi_devinfo.h
196 $(call if_changed,bflags)
198 # If you want to play with the firmware, uncomment
199 # GENERATE_FIRMWARE := 1
201 ifdef GENERATE_FIRMWARE
203 $(obj)/53c700_d.h: $(src)/53c700.scr $(src)/script_asm.pl
204 $(PERL) -s $(src)/script_asm.pl -ncr7x0_family $@ $(@:_d.h=_u.h) < $<