aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/Makefile')
-rw-r--r--firmware/Makefile30
1 files changed, 20 insertions, 10 deletions
diff --git a/firmware/Makefile b/firmware/Makefile
index 1e7fd4df16a7..142c17ab9e57 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -41,6 +41,7 @@ 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
@@ -59,14 +60,9 @@ fw-shipped-$(CONFIG_SND_SB16_CSP) += sb16/mulaw_main.csp sb16/alaw_main.csp \
59 sb16/ima_adpcm_init.csp \ 60 sb16/ima_adpcm_init.csp \
60 sb16/ima_adpcm_playback.csp \ 61 sb16/ima_adpcm_playback.csp \
61 sb16/ima_adpcm_capture.csp 62 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 \ 63fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \
69 yamaha/ds1e_ctrl.fw 64 yamaha/ds1e_ctrl.fw
65fw-shipped-$(CONFIG_SND_WAVEFRONT) += yamaha/yss225_registers.bin
70fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin 66fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin
71fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \ 67fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \
72 tigon/tg3_tso5.bin 68 tigon/tg3_tso5.bin
@@ -123,10 +119,10 @@ quiet_cmd_ihex = IHEX $@
123 cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@ 119 cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@
124 120
125quiet_cmd_ihex2fw = IHEX2FW $@ 121quiet_cmd_ihex2fw = IHEX2FW $@
126 cmd_ihex2fw = $(objtree)/scripts/ihex2fw $< $@ 122 cmd_ihex2fw = $(objtree)/$(obj)/ihex2fw $< $@
127 123
128quiet_cmd_h16tofw = H16TOFW $@ 124quiet_cmd_h16tofw = H16TOFW $@
129 cmd_h16tofw = $(objtree)/scripts/ihex2fw -w $< $@ 125 cmd_h16tofw = $(objtree)/$(obj)/ihex2fw -w $< $@
130 126
131quiet_cmd_fwbin = MK_FW $@ 127quiet_cmd_fwbin = MK_FW $@
132 cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \ 128 cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \
@@ -185,15 +181,27 @@ $(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/%
185$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %) 181$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %)
186 $(call cmd,ihex) 182 $(call cmd,ihex)
187 183
184# Don't depend on ihex2fw if we're installing and it already exists.
185# Putting it after | in the dependencies doesn't seem sufficient when
186# we're installing after a cross-compile, because ihex2fw has dependencies
187# on stuff like /usr/lib/gcc/ppc64-redhat-linux/4.3.0/include/stddef.h and
188# thus wants to be rebuilt. Which it can't be, if the prebuilt kernel tree
189# is exported read-only for someone to run 'make install'.
190ifeq ($(INSTALL):$(wildcard $(obj)/ihex2fw),install:$(obj)/ihex2fw)
191ihex2fw_dep :=
192else
193ihex2fw_dep := $(obj)/ihex2fw
194endif
195
188# .HEX is also Intel HEX, but where the offset and length in each record 196# .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 197# 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 198# 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>) 199# more compact binary representation of ihex records (<linux/ihex.h>)
192$(obj)/%.fw: $(obj)/%.HEX | $(objtree)/$(obj)/$$(dir %) 200$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
193 $(call cmd,ihex2fw) 201 $(call cmd,ihex2fw)
194 202
195# .H16 is our own modified form of Intel HEX, with 16-bit length for records. 203# .H16 is our own modified form of Intel HEX, with 16-bit length for records.
196$(obj)/%.fw: $(obj)/%.H16 | $(objtree)/$(obj)/$$(dir %) 204$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
197 $(call cmd,h16tofw) 205 $(call cmd,h16tofw)
198 206
199$(firmware-dirs): 207$(firmware-dirs):
@@ -210,3 +218,5 @@ targets := $(fw-shipped-) $(patsubst $(obj)/%,%, \
210# Without this, built-in.o won't be created when it's empty, and the 218# Without this, built-in.o won't be created when it's empty, and the
211# final vmlinux link will fail. 219# final vmlinux link will fail.
212obj-n := dummy 220obj-n := dummy
221
222hostprogs-y := ihex2fw