aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/Makefile')
-rw-r--r--firmware/Makefile31
1 files changed, 21 insertions, 10 deletions
diff --git a/firmware/Makefile b/firmware/Makefile
index 1e7fd4df16a7..25200d106ee8 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -41,10 +41,12 @@ fw-shipped-$(CONFIG_COMPUTONE) += intelliport2.bin
41fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \ 41fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
42 cxgb3/t3c_psram-1.1.0.bin \ 42 cxgb3/t3c_psram-1.1.0.bin \
43 cxgb3/t3fw-7.1.0.bin 43 cxgb3/t3fw-7.1.0.bin
44fw-shipped-$(CONFIG_DVB_AV7110) += av7110/bootcode.bin
44fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin 45fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin
45fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \ 46fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \
46 e100/d102e_ucode.bin 47 e100/d102e_ucode.bin
47fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin 48fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin
49fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis
48fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin 50fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin
49fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \ 51fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \
50 advansys/3550.bin advansys/38C0800.bin 52 advansys/3550.bin advansys/38C0800.bin
@@ -59,14 +61,9 @@ fw-shipped-$(CONFIG_SND_SB16_CSP) += sb16/mulaw_main.csp sb16/alaw_main.csp \
59 sb16/ima_adpcm_init.csp \ 61 sb16/ima_adpcm_init.csp \
60 sb16/ima_adpcm_playback.csp \ 62 sb16/ima_adpcm_playback.csp \
61 sb16/ima_adpcm_capture.csp 63 sb16/ima_adpcm_capture.csp
62fw-shipped-$(CONFIG_SLICOSS) += slicoss/gbdownload.sys slicoss/gbrcvucode.sys \
63 slicoss/oasisdbgdownload.sys \
64 slicoss/oasisdownload.sys \
65 slicoss/oasisrcvucode.sys
66fw-shipped-$(CONFIG_SXG) += sxg/saharadownloadB.sys \
67 sxg/saharadbgdownloadB.sys
68fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \ 64fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \
69 yamaha/ds1e_ctrl.fw 65 yamaha/ds1e_ctrl.fw
66fw-shipped-$(CONFIG_SND_WAVEFRONT) += yamaha/yss225_registers.bin
70fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin 67fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin
71fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \ 68fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \
72 tigon/tg3_tso5.bin 69 tigon/tg3_tso5.bin
@@ -123,10 +120,10 @@ quiet_cmd_ihex = IHEX $@
123 cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@ 120 cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@
124 121
125quiet_cmd_ihex2fw = IHEX2FW $@ 122quiet_cmd_ihex2fw = IHEX2FW $@
126 cmd_ihex2fw = $(objtree)/scripts/ihex2fw $< $@ 123 cmd_ihex2fw = $(objtree)/$(obj)/ihex2fw $< $@
127 124
128quiet_cmd_h16tofw = H16TOFW $@ 125quiet_cmd_h16tofw = H16TOFW $@
129 cmd_h16tofw = $(objtree)/scripts/ihex2fw -w $< $@ 126 cmd_h16tofw = $(objtree)/$(obj)/ihex2fw -w $< $@
130 127
131quiet_cmd_fwbin = MK_FW $@ 128quiet_cmd_fwbin = MK_FW $@
132 cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \ 129 cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \
@@ -185,15 +182,27 @@ $(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/%
185$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %) 182$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %)
186 $(call cmd,ihex) 183 $(call cmd,ihex)
187 184
185# Don't depend on ihex2fw if we're installing and it already exists.
186# Putting it after | in the dependencies doesn't seem sufficient when
187# we're installing after a cross-compile, because ihex2fw has dependencies
188# on stuff like /usr/lib/gcc/ppc64-redhat-linux/4.3.0/include/stddef.h and
189# thus wants to be rebuilt. Which it can't be, if the prebuilt kernel tree
190# is exported read-only for someone to run 'make install'.
191ifeq ($(INSTALL):$(wildcard $(obj)/ihex2fw),install:$(obj)/ihex2fw)
192ihex2fw_dep :=
193else
194ihex2fw_dep := $(obj)/ihex2fw
195endif
196
188# .HEX is also Intel HEX, but where the offset and length in each record 197# .HEX is also Intel HEX, but where the offset and length in each record
189# is actually meaningful, because the firmware has to be loaded in a certain 198# is actually meaningful, because the firmware has to be loaded in a certain
190# order rather than as a single binary blob. Thus, we convert them into our 199# order rather than as a single binary blob. Thus, we convert them into our
191# more compact binary representation of ihex records (<linux/ihex.h>) 200# more compact binary representation of ihex records (<linux/ihex.h>)
192$(obj)/%.fw: $(obj)/%.HEX | $(objtree)/$(obj)/$$(dir %) 201$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
193 $(call cmd,ihex2fw) 202 $(call cmd,ihex2fw)
194 203
195# .H16 is our own modified form of Intel HEX, with 16-bit length for records. 204# .H16 is our own modified form of Intel HEX, with 16-bit length for records.
196$(obj)/%.fw: $(obj)/%.H16 | $(objtree)/$(obj)/$$(dir %) 205$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
197 $(call cmd,h16tofw) 206 $(call cmd,h16tofw)
198 207
199$(firmware-dirs): 208$(firmware-dirs):
@@ -210,3 +219,5 @@ targets := $(fw-shipped-) $(patsubst $(obj)/%,%, \
210# Without this, built-in.o won't be created when it's empty, and the 219# Without this, built-in.o won't be created when it's empty, and the
211# final vmlinux link will fail. 220# final vmlinux link will fail.
212obj-n := dummy 221obj-n := dummy
222
223hostprogs-y := ihex2fw