Blame view
firmware/Makefile
11.8 KB
4d2acfbfd firmware: Add CON... |
1 2 3 4 5 6 7 8 9 10 |
# # kbuild file for firmware/ # # Create $(fwabs) from $(CONFIG_EXTRA_FIRMWARE_DIR) -- if it doesn't have a # leading /, it's relative to $(srctree). fwdir := $(subst ",,$(CONFIG_EXTRA_FIRMWARE_DIR)) fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir)) fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE)) |
88ecf814c firmware: Add fir... |
11 12 13 14 15 16 |
# There are three cases to care about: # 1. Building kernel with CONFIG_FIRMWARE_IN_KERNEL=y -- $(fw-shipped-y) should # include the firmware files to include, according to .config # 2. 'make modules_install', which will install firmware for modules, and # _also_ for the in-kernel drivers when CONFIG_FIRMWARE_IN_KERNEL=n # 3. 'make firmware_install', which installs all firmware, unconditionally. |
d172e7f5c firmware: Add CON... |
17 |
|
88ecf814c firmware: Add fir... |
18 19 20 |
# For the former two cases we want $(fw-shipped-y) and $(fw-shipped-m) to be # accurate. In the latter case it doesn't matter -- it'll use $(fw-shipped-all). # But be aware that the config file might not be included at all. |
949b42544 firmware: convert... |
21 22 23 24 25 26 |
ifdef CONFIG_ACENIC_OMIT_TIGON_I acenic-objs := acenic/tg2.bin fw-shipped- += acenic/tg1.bin else acenic-objs := acenic/tg1.bin acenic/tg2.bin endif |
4b6ece97e 3C359: use reques... |
27 |
fw-shipped-$(CONFIG_3C359) += 3com/3C359.bin |
949b42544 firmware: convert... |
28 |
fw-shipped-$(CONFIG_ACENIC) += $(acenic-objs) |
cfc3a44c3 starfire: use req... |
29 30 |
fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \ adaptec/starfire_tx.bin |
7f127d5ed dsp56k: use reque... |
31 |
fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin |
27d202fff firmware: convert... |
32 |
fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw |
96b8e1a0e bnx2x: Update fir... |
33 34 35 |
fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \ bnx2x/bnx2x-e1h-6.2.9.0.fw \ bnx2x/bnx2x-e2-6.2.9.0.fw |
dc187cb38 bnx2: Update firm... |
36 |
fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \ |
22fa159d3 bnx2: Update firm... |
37 38 |
bnx2/bnx2-rv2p-09-6.0.17.fw \ bnx2/bnx2-rv2p-09ax-6.0.17.fw \ |
0268102d5 bnx2: Update firm... |
39 |
bnx2/bnx2-mips-06-6.2.1.fw \ |
22fa159d3 bnx2: Update firm... |
40 |
bnx2/bnx2-rv2p-06-6.0.15.fw |
fcaa40669 cassini: use requ... |
41 |
fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin |
547d8bb7d ip2: use request_... |
42 |
fw-shipped-$(CONFIG_COMPUTONE) += intelliport2.bin |
ad58633c8 cxgb3: integrate ... |
43 44 |
fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \ cxgb3/t3c_psram-1.1.0.bin \ |
17acad30b cxgb3: update FW ... |
45 |
cxgb3/t3fw-7.10.0.bin \ |
2e8c07c35 cxgb3: use reques... |
46 47 48 |
cxgb3/ael2005_opt_edc.bin \ cxgb3/ael2005_twx_edc.bin \ cxgb3/ael2020_twx_edc.bin |
ece2be799 drm/mga: Use requ... |
49 |
fw-shipped-$(CONFIG_DRM_MGA) += matrox/g200_warp.fw matrox/g400_warp.fw |
52f97df5d drm/r128: Use req... |
50 |
fw-shipped-$(CONFIG_DRM_R128) += r128/r128_cce.bin |
70967ab9c radeon: Use reque... |
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
fw-shipped-$(CONFIG_DRM_RADEON) += radeon/R100_cp.bin radeon/R200_cp.bin \ radeon/R300_cp.bin radeon/R420_cp.bin \ radeon/RS690_cp.bin radeon/RS600_cp.bin \ radeon/R520_cp.bin \ radeon/R600_pfp.bin radeon/R600_me.bin \ radeon/RV610_pfp.bin radeon/RV610_me.bin \ radeon/RV630_pfp.bin radeon/RV630_me.bin \ radeon/RV620_pfp.bin radeon/RV620_me.bin \ radeon/RV635_pfp.bin radeon/RV635_me.bin \ radeon/RV670_pfp.bin radeon/RV670_me.bin \ radeon/RS780_pfp.bin radeon/RS780_me.bin \ radeon/RV770_pfp.bin radeon/RV770_me.bin \ radeon/RV730_pfp.bin radeon/RV730_me.bin \ radeon/RV710_pfp.bin radeon/RV710_me.bin |
9137f05f7 firmware: convert... |
65 |
fw-shipped-$(CONFIG_DVB_AV7110) += av7110/bootcode.bin |
0a2a736af ttusb-budget: use... |
66 |
fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin |
9ac32e1bc firmware: convert... |
67 68 |
fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \ e100/d102e_ucode.bin |
cd36e9efa myri_sbus: use re... |
69 |
fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin |
bf6fda63c pcnet_cs: add cis... |
70 71 |
fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis cis/PCMLM28.cis \ cis/DP83903.cis cis/NE2K.cis \ |
abe880690 pcnet_cs: add cis... |
72 73 |
cis/tamarack.cis cis/PE-200.cis \ cis/PE520.cis |
f0a3a1538 3c589_cs: add cis... |
74 75 |
fw-shipped-$(CONFIG_PCMCIA_3C589) += cis/3CXEM556.cis fw-shipped-$(CONFIG_PCMCIA_3C574) += cis/3CCFEM556.cis |
bf6fda63c pcnet_cs: add cis... |
76 |
fw-shipped-$(CONFIG_SERIAL_8250_CS) += cis/MT5634ZLX.cis cis/RS-COM-2P.cis \ |
63ca2d74e pcnet_cs: add cis... |
77 78 79 |
cis/COMpad2.cis cis/COMpad4.cis \ cis/SW_555_SER.cis cis/SW_7xx_SER.cis \ cis/SW_8xx_SER.cis |
75bf758f9 smc91c92_cs: use ... |
80 |
fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin |
989bb5f58 [SCSI] advansys: ... |
81 82 |
fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \ advansys/3550.bin advansys/38C0800.bin |
6f231dda6 isci: Intel(R) C6... |
83 |
fw-shipped-$(CONFIG_SCSI_ISCI) += isci/isci_firmware.bin |
1bfa11db7 [SCSI] qla1280: u... |
84 85 |
fw-shipped-$(CONFIG_SCSI_QLOGIC_1280) += qlogic/1040.bin qlogic/1280.bin \ qlogic/12160.bin |
f894e74dc [SCSI] qlogicpti:... |
86 |
fw-shipped-$(CONFIG_SCSI_QLOGICPTI) += qlogic/isp1000.bin |
ecd4b48a1 IB/qib: Use reque... |
87 |
fw-shipped-$(CONFIG_INFINIBAND_QIB) += qlogic/sd7220.fw |
0f805b86c smctr: use reques... |
88 |
fw-shipped-$(CONFIG_SMCTR) += tr_smctr.bin |
76770664d firmware: convert... |
89 |
fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp |
a292f404f firmware: convert... |
90 91 |
fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \ ess/maestro3_assp_minisrc.fw |
d71792ac3 firmware: convert... |
92 93 94 95 |
fw-shipped-$(CONFIG_SND_SB16_CSP) += sb16/mulaw_main.csp sb16/alaw_main.csp \ sb16/ima_adpcm_init.csp \ sb16/ima_adpcm_playback.csp \ sb16/ima_adpcm_capture.csp |
18ee6dfae firmware: convert... |
96 97 |
fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \ yamaha/ds1e_ctrl.fw |
7c7cae17e ALSA: wavefront -... |
98 |
fw-shipped-$(CONFIG_SND_WAVEFRONT) += yamaha/yss225_registers.bin |
06e1f9ffa tehuti: Use reque... |
99 |
fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin |
077f849de firmware: convert... |
100 101 |
fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \ tigon/tg3_tso5.bin |
b775a750c typhoon: Use requ... |
102 |
fw-shipped-$(CONFIG_TYPHOON) += 3com/typhoon.bin |
c46677463 dabusb: use reque... |
103 |
fw-shipped-$(CONFIG_USB_DABUSB) += dabusb/firmware.fw dabusb/bitstream.bin |
ae93a55bf emi26: use reques... |
104 105 |
fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \ emi26/bitstream.fw |
b8e24bfab emi62: use reques... |
106 107 |
fw-shipped-$(CONFIG_USB_EMI62) += emi62/loader.fw emi62/bitstream.fw \ emi62/spdif.fw emi62/midi.fw |
79682499d kaweth: use reque... |
108 109 110 |
fw-shipped-$(CONFIG_USB_KAWETH) += kaweth/new_code.bin kaweth/trigger_code.bin \ kaweth/new_code_fix.bin \ kaweth/trigger_code_fix.bin |
2971c579f keyspan: use requ... |
111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
ifdef CONFIG_FIRMWARE_IN_KERNEL fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_MPR) += keyspan/mpr.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA18X) += keyspan/usa18x.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19) += keyspan/usa19.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19QI) += keyspan/usa19qi.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19QW) += keyspan/usa19qw.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19W) += keyspan/usa19w.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28) += keyspan/usa28.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28XA) += keyspan/usa28xa.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28XB) += keyspan/usa28xb.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28X) += keyspan/usa28x.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA49W) += keyspan/usa49w.fw fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA49WLC) += keyspan/usa49wlc.fw else |
d25dc7fd4 Fix 'make clean' ... |
125 |
fw-shipped- += keyspan/mpr.fw keyspan/usa18x.fw keyspan/usa19.fw \ |
2971c579f keyspan: use requ... |
126 127 128 129 |
keyspan/usa19qi.fw keyspan/usa19qw.fw keyspan/usa19w.fw \ keyspan/usa28.fw keyspan/usa28xa.fw keyspan/usa28xb.fw \ keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw endif |
7df523166 ti_usb_3410_5052:... |
130 131 |
fw-shipped-$(CONFIG_USB_SERIAL_TI) += ti_3410.fw ti_5052.fw \ mts_cdma.fw mts_gsm.fw mts_edge.fw |
5b9ea9322 edgeport: use req... |
132 133 |
fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT) += edgeport/boot.fw edgeport/boot2.fw \ edgeport/down.fw edgeport/down2.fw |
d12b219a2 edgeport-ti: use ... |
134 |
fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT_TI) += edgeport/down3.bin |
ec6752f5a whiteheat: use re... |
135 136 |
fw-shipped-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat_loader.fw whiteheat.fw \ # whiteheat_loader_debug.fw |
3edbf98b8 keyspan_pda: use ... |
137 138 |
fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw |
fb54be875 vicam: use reques... |
139 |
fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw |
04a33e406 cpia2: use reques... |
140 |
fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin |
a7a5eb9d4 yam: use request_... |
141 |
fw-shipped-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin |
88ecf814c firmware: Add fir... |
142 143 144 145 |
fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) # Directories which we _might_ need to create, so we have a rule for them. |
3c955b407 fixes for using m... |
146 |
firmware-dirs := $(sort $(addprefix $(objtree)/$(obj)/,$(dir $(fw-external-y) $(fw-shipped-all)))) |
4d2acfbfd firmware: Add CON... |
147 148 149 150 151 152 |
quiet_cmd_mkdir = MKDIR $(patsubst $(objtree)/%,%,$@) cmd_mkdir = mkdir -p $@ quiet_cmd_ihex = IHEX $@ cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@ |
8bd6b2229 ihex: add ihex2fw... |
153 |
quiet_cmd_ihex2fw = IHEX2FW $@ |
556b0f58b Revert "fix modul... |
154 |
cmd_ihex2fw = $(objtree)/$(obj)/ihex2fw $< $@ |
8bd6b2229 ihex: add ihex2fw... |
155 |
|
59890f74e ihex: Add support... |
156 |
quiet_cmd_h16tofw = H16TOFW $@ |
556b0f58b Revert "fix modul... |
157 |
cmd_h16tofw = $(objtree)/$(obj)/ihex2fw -w $< $@ |
59890f74e ihex: Add support... |
158 |
|
4d2acfbfd firmware: Add CON... |
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
quiet_cmd_fwbin = MK_FW $@ cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \ FWSTR="$(subst /,_,$(subst .,_,$(subst -,_,$(patsubst \ firmware/%.gen.S,%,$@))))"; \ ASM_WORD=$(if $(CONFIG_64BIT),.quad,.long); \ ASM_ALIGN=$(if $(CONFIG_64BIT),3,2); \ PROGBITS=$(if $(CONFIG_ARM),%,@)progbits; \ echo "/* Generated by firmware/Makefile */" > $@;\ echo " .section .rodata" >>$@;\ echo " .p2align $${ASM_ALIGN}" >>$@;\ echo "_fw_$${FWSTR}_bin:" >>$@;\ echo " .incbin \"$(2)\"" >>$@;\ echo "_fw_end:" >>$@;\ echo " .section .rodata.str,\"aMS\",$${PROGBITS},1" >>$@;\ echo " .p2align $${ASM_ALIGN}" >>$@;\ echo "_fw_$${FWSTR}_name:" >>$@;\ echo " .string \"$$FWNAME\"" >>$@;\ echo " .section .builtin_fw,\"a\",$${PROGBITS}" >>$@;\ echo " .p2align $${ASM_ALIGN}" >>$@;\ echo " $${ASM_WORD} _fw_$${FWSTR}_name" >>$@;\ echo " $${ASM_WORD} _fw_$${FWSTR}_bin" >>$@;\ echo " $${ASM_WORD} _fw_end - _fw_$${FWSTR}_bin" >>$@; # One of these files will change, or come into existence, whenever # the configuration changes between 32-bit and 64-bit. The .S files # need to change when that happens. wordsize_deps := $(wildcard include/config/64bit.h include/config/32bit.h \ include/config/ppc32.h include/config/ppc64.h \ include/config/superh32.h include/config/superh64.h \ include/config/x86_32.h include/config/x86_64.h) # Workaround for make < 3.81, where .SECONDEXPANSION doesn't work. # It'll end up depending on these targets, so make them a PHONY rule which # depends on _all_ the directories in $(firmware-dirs), and it'll work out OK. PHONY += $(objtree)/$$(%) $(objtree)/$(obj)/$$(%) $(objtree)/$$(%) $(objtree)/$(obj)/$$(%): $(firmware-dirs) @true # For the $$(dir %) trick, where we need % to be expanded first. .SECONDEXPANSION: $(patsubst %,$(obj)/%.gen.S, $(fw-shipped-y)): %: $(wordsize_deps) \ | $(objtree)/$$(dir %) $(call cmd,fwbin,$(patsubst %.gen.S,%,$@)) $(patsubst %,$(obj)/%.gen.S, $(fw-external-y)): %: $(wordsize_deps) \ |
50515af20 firmware: Correct... |
204 |
include/config/extra/firmware/dir.h | $(objtree)/$$(dir %) |
4d2acfbfd firmware: Add CON... |
205 206 207 208 209 |
$(call cmd,fwbin,$(fwabs)/$(patsubst $(obj)/%.gen.S,%,$@)) # The .o files depend on the binaries directly; the .S files don't. $(patsubst %,$(obj)/%.gen.o, $(fw-shipped-y)): %.gen.o: % $(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/% |
8bd6b2229 ihex: add ihex2fw... |
210 211 |
# .ihex is used just as a simple way to hold binary files in a source tree # where binaries are frowned upon. They are directly converted with objcopy. |
4d2acfbfd firmware: Add CON... |
212 213 |
$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %) $(call cmd,ihex) |
4528e4290 Partially revert ... |
214 215 216 217 218 219 220 221 222 223 224 |
# Don't depend on ihex2fw if we're installing and it already exists. # Putting it after | in the dependencies doesn't seem sufficient when # we're installing after a cross-compile, because ihex2fw has dependencies # on stuff like /usr/lib/gcc/ppc64-redhat-linux/4.3.0/include/stddef.h and # thus wants to be rebuilt. Which it can't be, if the prebuilt kernel tree # is exported read-only for someone to run 'make install'. ifeq ($(INSTALL):$(wildcard $(obj)/ihex2fw),install:$(obj)/ihex2fw) ihex2fw_dep := else ihex2fw_dep := $(obj)/ihex2fw endif |
8bd6b2229 ihex: add ihex2fw... |
225 226 227 228 |
# .HEX is also Intel HEX, but where the offset and length in each record # is actually meaningful, because the firmware has to be loaded in a certain # order rather than as a single binary blob. Thus, we convert them into our # more compact binary representation of ihex records (<linux/ihex.h>) |
4528e4290 Partially revert ... |
229 |
$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %) |
8bd6b2229 ihex: add ihex2fw... |
230 |
$(call cmd,ihex2fw) |
59890f74e ihex: Add support... |
231 |
# .H16 is our own modified form of Intel HEX, with 16-bit length for records. |
4528e4290 Partially revert ... |
232 |
$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %) |
59890f74e ihex: Add support... |
233 |
$(call cmd,h16tofw) |
4d2acfbfd firmware: Add CON... |
234 235 |
$(firmware-dirs): $(call cmd,mkdir) |
88ecf814c firmware: Add fir... |
236 237 |
obj-y += $(patsubst %,%.gen.o, $(fw-external-y)) obj-$(CONFIG_FIRMWARE_IN_KERNEL) += $(patsubst %,%.gen.o, $(fw-shipped-y)) |
4d2acfbfd firmware: Add CON... |
238 239 240 241 242 243 244 245 246 |
# Remove .S files and binaries created from ihex # (during 'make clean' .config isn't included so they're all in $(fw-shipped-)) targets := $(fw-shipped-) $(patsubst $(obj)/%,%, \ $(shell find $(obj) -name \*.gen.S 2>/dev/null)) # Without this, built-in.o won't be created when it's empty, and the # final vmlinux link will fail. obj-n := dummy |
556b0f58b Revert "fix modul... |
247 248 |
hostprogs-y := ihex2fw |