1 ################################################################################
5 ################################################################################
7 LINUX_FIRMWARE_VERSION = f66291398181d24856fd2d19454d246199abd5ea
8 LINUX_FIRMWARE_SITE = http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
9 LINUX_FIRMWARE_SITE_METHOD = git
12 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP),y)
13 LINUX_FIRMWARE_FILES += intel/fw_sst_0f28.bin-48kHz_i2s_master
14 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.fw_sst_0f28
17 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RADEON),y)
18 LINUX_FIRMWARE_DIRS += radeon
19 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.radeon
23 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61),y)
24 LINUX_FIRMWARE_FILES += rt2561.bin rt2561s.bin rt2661.bin
25 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
29 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73),y)
30 LINUX_FIRMWARE_FILES += rt73.bin
31 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
35 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX),y)
36 # rt3090.bin is a symlink to rt2860.bin
37 # rt3070.bin is a symlink to rt2870.bin
38 LINUX_FIRMWARE_FILES += rt2860.bin rt2870.bin rt3070.bin rt3071.bin rt3090.bin
39 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
43 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX),y)
44 LINUX_FIRMWARE_FILES += \
45 rtlwifi/rtl8192cfw.bin rtlwifi/rtl8192cfwU.bin \
46 rtlwifi/rtl8192cfwU_B.bin rtlwifi/rtl8192cufw.bin \
47 rtlwifi/rtl8192defw.bin rtlwifi/rtl8192sefw.bin \
48 rtlwifi/rtl8188efw.bin rtlwifi/rtl8192cufw_A.bin \
49 rtlwifi/rtl8192cufw_B.bin rtlwifi/rtl8192cufw_TMSC.bin
50 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
54 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX),y)
55 LINUX_FIRMWARE_FILES += \
56 rtlwifi/rtl8712u.bin rtlwifi/rtl8723fw.bin \
57 rtlwifi/rtl8723fw_B.bin rtlwifi/rtl8723befw.bin
58 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
62 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX),y)
63 LINUX_FIRMWARE_FILES += \
64 rtlwifi/rtl8821aefw.bin \
65 rtlwifi/rtl8821aefw_wowlan.bin
66 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
70 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6002),y)
71 LINUX_FIRMWARE_FILES += ath6k/AR6002
72 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
76 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6003),y)
77 LINUX_FIRMWARE_FILES += ath6k/AR6003
78 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
82 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6004),y)
83 LINUX_FIRMWARE_FILES += ath6k/AR6004
84 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
88 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010),y)
89 LINUX_FIRMWARE_FILES += ar7010.fw ar7010_1_1.fw htc_7010.fw
90 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
94 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170),y)
95 LINUX_FIRMWARE_FILES += ar9170-1.fw ar9170-2.fw
96 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
100 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271),y)
101 LINUX_FIRMWARE_FILES += ar9271.fw htc_9271.fw
102 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
106 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8),y)
107 LINUX_FIRMWARE_FILES += libertas/sd8686_v8.bin libertas/sd8686_v8_helper.bin
108 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
112 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9),y)
113 LINUX_FIRMWARE_FILES += libertas/sd8686_v9.bin libertas/sd8686_v9_helper.bin
114 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
118 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688),y)
119 LINUX_FIRMWARE_FILES += libertas/sd8688.bin libertas/sd8688_helper.bin
120 # The two files above are but symlinks to those two ones:
121 LINUX_FIRMWARE_FILES += mrvl/sd8688.bin mrvl/sd8688_helper.bin
122 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
126 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787),y)
127 LINUX_FIRMWARE_FILES += mrvl/sd8787_uapsta.bin
128 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
132 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X),y)
133 # wl1271-nvs.bin is a symlink to wl127x-nvs.bin
134 LINUX_FIRMWARE_FILES += \
135 ti-connectivity/wl1271-fw-2.bin \
136 ti-connectivity/wl1271-fw-ap.bin \
137 ti-connectivity/wl1271-fw.bin \
138 ti-connectivity/wl1271-nvs.bin \
139 ti-connectivity/wl127x-fw-3.bin \
140 ti-connectivity/wl127x-fw-plt-3.bin \
141 ti-connectivity/wl127x-nvs.bin \
142 ti-connectivity/wl127x-fw-4-mr.bin \
143 ti-connectivity/wl127x-fw-4-plt.bin \
144 ti-connectivity/wl127x-fw-4-sr.bin \
145 ti-connectivity/wl127x-fw-5-mr.bin \
146 ti-connectivity/wl127x-fw-5-plt.bin \
147 ti-connectivity/wl127x-fw-5-sr.bin \
148 ti-connectivity/TIInit_7.2.31.bts
149 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
153 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X),y)
154 LINUX_FIRMWARE_FILES += \
155 ti-connectivity/wl128x-fw-3.bin \
156 ti-connectivity/wl128x-fw-ap.bin \
157 ti-connectivity/wl128x-fw-plt-3.bin \
158 ti-connectivity/wl128x-fw.bin \
159 ti-connectivity/wl1271-nvs.bin \
160 ti-connectivity/wl128x-nvs.bin \
161 ti-connectivity/wl12xx-nvs.bin \
162 ti-connectivity/wl128x-fw-4-mr.bin \
163 ti-connectivity/wl128x-fw-4-plt.bin \
164 ti-connectivity/wl128x-fw-4-sr.bin \
165 ti-connectivity/wl128x-fw-5-mr.bin \
166 ti-connectivity/wl128x-fw-5-plt.bin \
167 ti-connectivity/wl128x-fw-5-sr.bin \
168 ti-connectivity/TIInit_7.2.31.bts
169 # wl12xx-nvs.bin (above) is a symlink to:
170 LINUX_FIRMWARE_FILES += ti-connectivity/wl127x-nvs.bin
171 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
175 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX),y)
176 LINUX_FIRMWARE_FILES += \
177 ti-connectivity/wl18xx-fw.bin \
178 ti-connectivity/wl18xx-conf.bin \
179 ti-connectivity/wl18xx-fw-2.bin \
180 ti-connectivity/wl18xx-fw-3.bin \
181 ti-connectivity/wl18xx-fw-4.bin \
182 ti-connectivity/TIInit_7.2.31.bts
183 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
186 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160),y)
187 LINUX_FIRMWARE_FILES += iwlwifi-3160-$(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV).ucode
188 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
191 # iwlwifi 5000. Multiple files are available (iwlwifi-5000-1.ucode,
192 # iwlwifi-5000-2.ucode, iwlwifi-5000-5.ucode), corresponding to
193 # different versions of the firmware API. For now, we only install the
195 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000),y)
196 LINUX_FIRMWARE_FILES += iwlwifi-5000-5.ucode
197 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
200 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260),y)
201 LINUX_FIRMWARE_FILES += iwlwifi-7260-$(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV).ucode
202 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
205 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265),y)
206 LINUX_FIRMWARE_FILES += iwlwifi-7265-$(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_REV).ucode
207 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
210 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2X),y)
211 LINUX_FIRMWARE_FILES += \
212 bnx2x/bnx2x-e1-7.10.51.0.fw \
213 bnx2x/bnx2x-e1h-7.10.51.0.fw \
214 bnx2x/bnx2x-e2-7.10.51.0.fw
215 # No license file; the license is in the file WHENCE
216 # which is installed unconditionally
219 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4),y)
220 # cxgb4/t4fw.bin is a symlink to cxgb4/t4fw-1.11.27.0.bin
221 LINUX_FIRMWARE_FILES += cxgb4/t4fw-1.11.27.0.bin cxgb4/t4fw.bin
222 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.chelsio_firmware
225 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5),y)
226 # cxgb4/t5fw.bin is a symlink to cxgb4/t5fw-1.11.27.0.bin
227 LINUX_FIRMWARE_FILES += cxgb4/t5fw-1.11.27.0.bin cxgb4/t5fw.bin
228 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.chelsio_firmware
231 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169),y)
232 LINUX_FIRMWARE_FILES += \
233 rtl_nic/rtl8168d-1.fw \
234 rtl_nic/rtl8168d-2.fw \
235 rtl_nic/rtl8168e-1.fw \
236 rtl_nic/rtl8168e-2.fw \
237 rtl_nic/rtl8168e-3.fw \
238 rtl_nic/rtl8168f-1.fw \
239 rtl_nic/rtl8168f-2.fw \
240 rtl_nic/rtl8105e-1.fw \
241 rtl_nic/rtl8402-1.fw \
242 rtl_nic/rtl8411-1.fw \
243 rtl_nic/rtl8411-2.fw \
244 rtl_nic/rtl8106e-1.fw \
245 rtl_nic/rtl8106e-2.fw \
246 rtl_nic/rtl8168g-2.fw \
247 rtl_nic/rtl8168g-3.fw
250 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_XCx000),y)
251 LINUX_FIRMWARE_FILES += \
252 dvb-fe-xc4000-1.4.1.fw \
253 dvb-fe-xc5000-1.6.114.fw \
254 dvb-fe-xc5000c-4.1.30.7.fw
255 LINUX_FIRMWARE_ALL_LICENSE_FILES += \
261 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AS102),y)
262 LINUX_FIRMWARE_FILES += as102_data1_st.hex as102_data2_st.hex
263 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Abilis
266 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_DIB0700),y)
267 LINUX_FIRMWARE_FILES += dvb-usb-dib0700-1.20.fw
268 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.dib0700
271 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ITETECH_IT9135),y)
272 LINUX_FIRMWARE_FILES += dvb-usb-it9135-01.fw dvb-usb-it9135-02.fw
273 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.it913x
276 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_H5_DRXK),y)
277 LINUX_FIRMWARE_FILES += dvb-usb-terratec-h5-drxk.fw
278 # No license file; the license is in the file WHENCE
279 # which is installed unconditionally
283 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX),y)
284 LINUX_FIRMWARE_FILES += \
285 brcm/bcm43xx-0.fw brcm/bcm43xx_hdr-0.fw \
286 brcm/bcm4329-fullmac-4.bin brcm/brcmfmac4329-sdio.bin \
287 brcm/brcmfmac4330-sdio.bin brcm/brcmfmac4334-sdio.bin \
288 brcm/brcmfmac4335-sdio.bin
289 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx
293 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX),y)
294 LINUX_FIRMWARE_FILES += \
295 brcm/brcmfmac43236b.bin brcm/brcmfmac43241b0-sdio.bin \
296 brcm/brcmfmac43241b4-sdio.bin brcm/brcmfmac43362-sdio.bin
297 LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx
300 ifneq ($(LINUX_FIRMWARE_FILES),)
301 define LINUX_FIRMWARE_INSTALL_FILES
302 $(TAR) c -C $(@D) $(sort $(LINUX_FIRMWARE_FILES)) | \
303 $(TAR) x -C $(TARGET_DIR)/lib/firmware
307 ifneq ($(LINUX_FIRMWARE_DIRS),)
308 # We need to rm-rf the destination directory to avoid copying
309 # into it in itself, should we re-install the package.
310 define LINUX_FIRMWARE_INSTALL_DIRS
311 $(foreach d,$(LINUX_FIRMWARE_DIRS), \
312 rm -rf $(TARGET_DIR)/lib/firmware/$(d); \
313 cp -a $(@D)/$(d) $(TARGET_DIR)/lib/firmware/$(d)$(sep))
317 ifneq ($(LINUX_FIRMWARE_FILES)$(LINUX_FIRMWARE_DIRS),)
319 # Most firmware files are under a proprietary license, so no need to
320 # repeat it for every selections above. Those firmwares that have more
321 # lax licensing terms may still add them on a per-case basis.
322 LINUX_FIRMWARE_LICENSE += Proprietary
324 # This file contains some licensing information about all the firmware
325 # files found in the linux-firmware package, so we always add it, even
326 # for firmwares that have their own licensing terms.
327 LINUX_FIRMWARE_ALL_LICENSE_FILES += WHENCE
329 # Some license files may be listed more than once, so we have to remove
331 LINUX_FIRMWARE_LICENSE_FILES = $(sort $(LINUX_FIRMWARE_ALL_LICENSE_FILES))
335 define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
336 mkdir -p $(TARGET_DIR)/lib/firmware
337 $(LINUX_FIRMWARE_INSTALL_FILES)
338 $(LINUX_FIRMWARE_INSTALL_DIRS)
341 $(eval $(generic-package))