Blame view
firmware/Makefile
11.5 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 27 |
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 fw-shipped-$(CONFIG_ACENIC) += $(acenic-objs) |
cfc3a44c3 starfire: use req... |
28 29 |
fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \ adaptec/starfire_tx.bin |
7f127d5ed dsp56k: use reque... |
30 |
fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin |
27d202fff firmware: convert... |
31 |
fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw |
96b8e1a0e bnx2x: Update fir... |
32 33 34 |
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... |
35 |
fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \ |
22fa159d3 bnx2: Update firm... |
36 37 |
bnx2/bnx2-rv2p-09-6.0.17.fw \ bnx2/bnx2-rv2p-09ax-6.0.17.fw \ |
0268102d5 bnx2: Update firm... |
38 |
bnx2/bnx2-mips-06-6.2.1.fw \ |
22fa159d3 bnx2: Update firm... |
39 |
bnx2/bnx2-rv2p-06-6.0.15.fw |
fcaa40669 cassini: use requ... |
40 |
fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin |
ad58633c8 cxgb3: integrate ... |
41 42 |
fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \ cxgb3/t3c_psram-1.1.0.bin \ |
2e8c07c35 cxgb3: use reques... |
43 44 45 |
cxgb3/ael2005_opt_edc.bin \ cxgb3/ael2005_twx_edc.bin \ cxgb3/ael2020_twx_edc.bin |
ece2be799 drm/mga: Use requ... |
46 |
fw-shipped-$(CONFIG_DRM_MGA) += matrox/g200_warp.fw matrox/g400_warp.fw |
52f97df5d drm/r128: Use req... |
47 |
fw-shipped-$(CONFIG_DRM_R128) += r128/r128_cce.bin |
70967ab9c radeon: Use reque... |
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
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... |
62 |
fw-shipped-$(CONFIG_DVB_AV7110) += av7110/bootcode.bin |
0a2a736af ttusb-budget: use... |
63 |
fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin |
9ac32e1bc firmware: convert... |
64 65 |
fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \ e100/d102e_ucode.bin |
cd36e9efa myri_sbus: use re... |
66 |
fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin |
bf6fda63c pcnet_cs: add cis... |
67 68 |
fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis cis/PCMLM28.cis \ cis/DP83903.cis cis/NE2K.cis \ |
abe880690 pcnet_cs: add cis... |
69 70 |
cis/tamarack.cis cis/PE-200.cis \ cis/PE520.cis |
f0a3a1538 3c589_cs: add cis... |
71 72 |
fw-shipped-$(CONFIG_PCMCIA_3C589) += cis/3CXEM556.cis fw-shipped-$(CONFIG_PCMCIA_3C574) += cis/3CCFEM556.cis |
bf6fda63c pcnet_cs: add cis... |
73 |
fw-shipped-$(CONFIG_SERIAL_8250_CS) += cis/MT5634ZLX.cis cis/RS-COM-2P.cis \ |
63ca2d74e pcnet_cs: add cis... |
74 75 76 |
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 ... |
77 |
fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin |
989bb5f58 [SCSI] advansys: ... |
78 79 |
fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \ advansys/3550.bin advansys/38C0800.bin |
1bfa11db7 [SCSI] qla1280: u... |
80 81 |
fw-shipped-$(CONFIG_SCSI_QLOGIC_1280) += qlogic/1040.bin qlogic/1280.bin \ qlogic/12160.bin |
f894e74dc [SCSI] qlogicpti:... |
82 |
fw-shipped-$(CONFIG_SCSI_QLOGICPTI) += qlogic/isp1000.bin |
ff802e31b firmware,IB/qib: ... |
83 |
fw-shipped-$(CONFIG_INFINIBAND_QIB) += qlogic/sd7220.fw |
76770664d firmware: convert... |
84 |
fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp |
a292f404f firmware: convert... |
85 86 |
fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \ ess/maestro3_assp_minisrc.fw |
d71792ac3 firmware: convert... |
87 88 89 90 |
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... |
91 92 |
fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \ yamaha/ds1e_ctrl.fw |
7c7cae17e ALSA: wavefront -... |
93 |
fw-shipped-$(CONFIG_SND_WAVEFRONT) += yamaha/yss225_registers.bin |
06e1f9ffa tehuti: Use reque... |
94 |
fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin |
077f849de firmware: convert... |
95 96 |
fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \ tigon/tg3_tso5.bin |
b775a750c typhoon: Use requ... |
97 |
fw-shipped-$(CONFIG_TYPHOON) += 3com/typhoon.bin |
ae93a55bf emi26: use reques... |
98 99 |
fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \ emi26/bitstream.fw |
b8e24bfab emi62: use reques... |
100 101 |
fw-shipped-$(CONFIG_USB_EMI62) += emi62/loader.fw emi62/bitstream.fw \ emi62/spdif.fw emi62/midi.fw |
79682499d kaweth: use reque... |
102 103 104 |
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... |
105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
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' ... |
119 |
fw-shipped- += keyspan/mpr.fw keyspan/usa18x.fw keyspan/usa19.fw \ |
2971c579f keyspan: use requ... |
120 121 122 123 |
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:... |
124 125 |
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... |
126 127 |
fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT) += edgeport/boot.fw edgeport/boot2.fw \ edgeport/down.fw edgeport/down2.fw |
d12b219a2 edgeport-ti: use ... |
128 |
fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT_TI) += edgeport/down3.bin |
ec6752f5a whiteheat: use re... |
129 130 |
fw-shipped-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat_loader.fw whiteheat.fw \ # whiteheat_loader_debug.fw |
3edbf98b8 keyspan_pda: use ... |
131 132 |
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... |
133 |
fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw |
04a33e406 cpia2: use reques... |
134 |
fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin |
a7a5eb9d4 yam: use request_... |
135 |
fw-shipped-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin |
88ecf814c firmware: Add fir... |
136 137 138 139 |
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... |
140 |
firmware-dirs := $(sort $(addprefix $(objtree)/$(obj)/,$(dir $(fw-external-y) $(fw-shipped-all)))) |
4d2acfbfd firmware: Add CON... |
141 142 143 144 145 146 |
quiet_cmd_mkdir = MKDIR $(patsubst $(objtree)/%,%,$@) cmd_mkdir = mkdir -p $@ quiet_cmd_ihex = IHEX $@ cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@ |
8bd6b2229 ihex: add ihex2fw... |
147 |
quiet_cmd_ihex2fw = IHEX2FW $@ |
556b0f58b Revert "fix modul... |
148 |
cmd_ihex2fw = $(objtree)/$(obj)/ihex2fw $< $@ |
8bd6b2229 ihex: add ihex2fw... |
149 |
|
59890f74e ihex: Add support... |
150 |
quiet_cmd_h16tofw = H16TOFW $@ |
556b0f58b Revert "fix modul... |
151 |
cmd_h16tofw = $(objtree)/$(obj)/ihex2fw -w $< $@ |
59890f74e ihex: Add support... |
152 |
|
4d2acfbfd firmware: Add CON... |
153 154 155 156 157 158 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 |
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... |
198 |
include/config/extra/firmware/dir.h | $(objtree)/$$(dir %) |
4d2acfbfd firmware: Add CON... |
199 200 201 202 203 |
$(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... |
204 205 |
# .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... |
206 207 |
$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %) $(call cmd,ihex) |
4528e4290 Partially revert ... |
208 209 210 211 212 213 214 215 216 217 218 |
# 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... |
219 220 221 222 |
# .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 ... |
223 |
$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %) |
8bd6b2229 ihex: add ihex2fw... |
224 |
$(call cmd,ihex2fw) |
59890f74e ihex: Add support... |
225 |
# .H16 is our own modified form of Intel HEX, with 16-bit length for records. |
4528e4290 Partially revert ... |
226 |
$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %) |
59890f74e ihex: Add support... |
227 |
$(call cmd,h16tofw) |
4d2acfbfd firmware: Add CON... |
228 229 |
$(firmware-dirs): $(call cmd,mkdir) |
88ecf814c firmware: Add fir... |
230 231 |
obj-y += $(patsubst %,%.gen.o, $(fw-external-y)) obj-$(CONFIG_FIRMWARE_IN_KERNEL) += $(patsubst %,%.gen.o, $(fw-shipped-y)) |
4d2acfbfd firmware: Add CON... |
232 233 234 235 236 237 238 239 240 |
# 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... |
241 242 |
hostprogs-y := ihex2fw |