linux-firmware.mk 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. ################################################################################
  2. #
  3. # linux-firmware
  4. #
  5. ################################################################################
  6. LINUX_FIRMWARE_VERSION = f66291398181d24856fd2d19454d246199abd5ea
  7. LINUX_FIRMWARE_SITE = http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
  8. LINUX_FIRMWARE_SITE_METHOD = git
  9. # Intel SST DSP
  10. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP),y)
  11. LINUX_FIRMWARE_FILES += intel/fw_sst_0f28.bin-48kHz_i2s_master
  12. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.fw_sst_0f28
  13. endif
  14. # rt2501/rt61
  15. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61),y)
  16. LINUX_FIRMWARE_FILES += rt2561.bin rt2561s.bin rt2661.bin
  17. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
  18. endif
  19. # rt73
  20. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73),y)
  21. LINUX_FIRMWARE_FILES += rt73.bin
  22. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
  23. endif
  24. # rt2xx
  25. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX),y)
  26. # rt3090.bin is a symlink to rt2860.bin
  27. # rt3070.bin is a symlink to rt2870.bin
  28. LINUX_FIRMWARE_FILES += rt2860.bin rt2870.bin rt3070.bin rt3071.bin rt3090.bin
  29. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
  30. endif
  31. # rtl81xx
  32. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX),y)
  33. LINUX_FIRMWARE_FILES += \
  34. rtlwifi/rtl8192cfw.bin rtlwifi/rtl8192cfwU.bin \
  35. rtlwifi/rtl8192cfwU_B.bin rtlwifi/rtl8192cufw.bin \
  36. rtlwifi/rtl8192defw.bin rtlwifi/rtl8192sefw.bin \
  37. rtlwifi/rtl8188efw.bin rtlwifi/rtl8192cufw_A.bin \
  38. rtlwifi/rtl8192cufw_B.bin rtlwifi/rtl8192cufw_TMSC.bin
  39. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
  40. endif
  41. # rtl87xx
  42. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX),y)
  43. LINUX_FIRMWARE_FILES += rtlwifi/rtl8712u.bin rtlwifi/rtl8723fw.bin \
  44. rtlwifi/rtl8723fw_B.bin rtlwifi/rtl8723befw.bin
  45. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
  46. endif
  47. # rtl88xx
  48. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX),y)
  49. LINUX_FIRMWARE_FILES += rtlwifi/rtl8821aefw.bin \
  50. rtlwifi/rtl8821aefw_wowlan.bin
  51. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
  52. endif
  53. # ar7010
  54. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010),y)
  55. LINUX_FIRMWARE_FILES += ar7010.fw ar7010_1_1.fw htc_7010.fw
  56. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
  57. endif
  58. # ar9170
  59. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170),y)
  60. LINUX_FIRMWARE_FILES += ar9170-1.fw ar9170-2.fw
  61. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
  62. endif
  63. # ar9271
  64. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271),y)
  65. LINUX_FIRMWARE_FILES += ar9271.fw htc_9271.fw
  66. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
  67. endif
  68. # sd8686 v8
  69. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8),y)
  70. LINUX_FIRMWARE_FILES += libertas/sd8686_v8.bin libertas/sd8686_v8_helper.bin
  71. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
  72. endif
  73. # sd8686 v9
  74. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9),y)
  75. LINUX_FIRMWARE_FILES += libertas/sd8686_v9.bin libertas/sd8686_v9_helper.bin
  76. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
  77. endif
  78. # sd8688
  79. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688),y)
  80. LINUX_FIRMWARE_FILES += libertas/sd8688.bin libertas/sd8688_helper.bin
  81. # The two files above are but symlinks to those two ones:
  82. LINUX_FIRMWARE_FILES += mrvl/sd8688.bin mrvl/sd8688_helper.bin
  83. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
  84. endif
  85. # sd8787
  86. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787),y)
  87. LINUX_FIRMWARE_FILES += mrvl/sd8787_uapsta.bin
  88. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
  89. endif
  90. # wl127x
  91. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X),y)
  92. # wl1271-nvs.bin is a symlink to wl127x-nvs.bin
  93. LINUX_FIRMWARE_FILES += \
  94. ti-connectivity/wl1271-fw-2.bin \
  95. ti-connectivity/wl1271-fw-ap.bin \
  96. ti-connectivity/wl1271-fw.bin \
  97. ti-connectivity/wl1271-nvs.bin \
  98. ti-connectivity/wl127x-fw-3.bin \
  99. ti-connectivity/wl127x-fw-plt-3.bin \
  100. ti-connectivity/wl127x-nvs.bin \
  101. ti-connectivity/wl127x-fw-4-mr.bin \
  102. ti-connectivity/wl127x-fw-4-plt.bin \
  103. ti-connectivity/wl127x-fw-4-sr.bin \
  104. ti-connectivity/wl127x-fw-5-mr.bin \
  105. ti-connectivity/wl127x-fw-5-plt.bin \
  106. ti-connectivity/wl127x-fw-5-sr.bin \
  107. ti-connectivity/TIInit_7.2.31.bts
  108. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
  109. endif
  110. # wl128x
  111. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X),y)
  112. LINUX_FIRMWARE_FILES += \
  113. ti-connectivity/wl128x-fw-3.bin \
  114. ti-connectivity/wl128x-fw-ap.bin \
  115. ti-connectivity/wl128x-fw-plt-3.bin \
  116. ti-connectivity/wl128x-fw.bin \
  117. ti-connectivity/wl1271-nvs.bin \
  118. ti-connectivity/wl128x-nvs.bin \
  119. ti-connectivity/wl12xx-nvs.bin \
  120. ti-connectivity/wl128x-fw-4-mr.bin \
  121. ti-connectivity/wl128x-fw-4-plt.bin \
  122. ti-connectivity/wl128x-fw-4-sr.bin \
  123. ti-connectivity/wl128x-fw-5-mr.bin \
  124. ti-connectivity/wl128x-fw-5-plt.bin \
  125. ti-connectivity/wl128x-fw-5-sr.bin \
  126. ti-connectivity/TIInit_7.2.31.bts
  127. # wl12xx-nvs.bin (above) is a symlink to:
  128. LINUX_FIRMWARE_FILES += ti-connectivity/wl127x-nvs.bin
  129. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
  130. endif
  131. # wl18xx
  132. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX),y)
  133. LINUX_FIRMWARE_FILES += \
  134. ti-connectivity/wl18xx-fw.bin \
  135. ti-connectivity/wl18xx-conf.bin \
  136. ti-connectivity/wl18xx-fw-2.bin \
  137. ti-connectivity/wl18xx-fw-3.bin \
  138. ti-connectivity/wl18xx-fw-4.bin \
  139. ti-connectivity/TIInit_7.2.31.bts
  140. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
  141. endif
  142. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160),y)
  143. LINUX_FIRMWARE_FILES += iwlwifi-3160-$(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160_7260_REV).ucode
  144. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
  145. endif
  146. # iwlwifi 5000. Multiple files are available (iwlwifi-5000-1.ucode,
  147. # iwlwifi-5000-2.ucode, iwlwifi-5000-5.ucode), corresponding to
  148. # different versions of the firmware API. For now, we only install the
  149. # most recent one.
  150. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000),y)
  151. LINUX_FIRMWARE_FILES += iwlwifi-5000-5.ucode
  152. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
  153. endif
  154. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260),y)
  155. LINUX_FIRMWARE_FILES += iwlwifi-7260-$(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160_7260_REV).ucode
  156. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
  157. endif
  158. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2X),y)
  159. LINUX_FIRMWARE_FILES += \
  160. bnx2x/bnx2x-e1-7.10.51.0.fw \
  161. bnx2x/bnx2x-e1h-7.10.51.0.fw \
  162. bnx2x/bnx2x-e2-7.10.51.0.fw
  163. # No license file; the license is in the file WHENCE
  164. # which is installed unconditionally
  165. endif
  166. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CXGB4),y)
  167. # cxgb4/t4fw.bin is a symlink to cxgb4/t4fw-1.11.27.0.bin
  168. LINUX_FIRMWARE_FILES += cxgb4/t4fw-1.11.27.0.bin cxgb4/t4fw.bin
  169. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.chelsio_firmware
  170. endif
  171. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_XC5000),y)
  172. LINUX_FIRMWARE_FILES += dvb-fe-xc5000-1.6.114.fw
  173. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.xc5000
  174. endif
  175. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AS102),y)
  176. LINUX_FIRMWARE_FILES += as102_data1_st.hex as102_data2_st.hex
  177. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Abilis
  178. endif
  179. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_DIB0700),y)
  180. LINUX_FIRMWARE_FILES += dvb-usb-dib0700-1.20.fw
  181. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.dib0700
  182. endif
  183. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ITETECH_IT9135),y)
  184. LINUX_FIRMWARE_FILES += dvb-usb-it9135-01.fw dvb-usb-it9135-02.fw
  185. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.it913x
  186. endif
  187. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_H5_DRXK),y)
  188. LINUX_FIRMWARE_FILES += dvb-usb-terratec-h5-drxk.fw
  189. # No license file; the license is in the file WHENCE
  190. # which is installed unconditionally
  191. endif
  192. # brcm43xx
  193. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX),y)
  194. LINUX_FIRMWARE_FILES += brcm/bcm43xx-0.fw brcm/bcm43xx_hdr-0.fw \
  195. brcm/bcm4329-fullmac-4.bin brcm/brcmfmac4329-sdio.bin \
  196. brcm/brcmfmac4330-sdio.bin brcm/brcmfmac4334-sdio.bin \
  197. brcm/brcmfmac4335-sdio.bin
  198. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx
  199. endif
  200. # brcm43xxx
  201. ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX),y)
  202. LINUX_FIRMWARE_FILES += brcm/brcmfmac43236b.bin brcm/brcmfmac43241b0-sdio.bin \
  203. brcm/brcmfmac43241b4-sdio.bin brcm/brcmfmac43362-sdio.bin
  204. LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx
  205. endif
  206. ifneq ($(LINUX_FIRMWARE_FILES),)
  207. # Most firmware files are under a proprietary license, so no need to
  208. # repeat it for every selections above. Those firmwares that have more
  209. # lax licensing terms may still add them on a per-case basis.
  210. LINUX_FIRMWARE_LICENSE += Proprietary
  211. # This file contains some licensing information about all the firmware
  212. # files found in the linux-firmware package, so we always add it, even
  213. # for firmwares that have their own licensing terms.
  214. LINUX_FIRMWARE_ALL_LICENSE_FILES += WHENCE
  215. # Some license files may be listed more than once, so we have to remove
  216. # duplicates
  217. LINUX_FIRMWARE_LICENSE_FILES = $(sort $(LINUX_FIRMWARE_ALL_LICENSE_FILES))
  218. define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
  219. mkdir -p $(TARGET_DIR)/lib/firmware
  220. $(TAR) c -C $(@D) $(sort $(LINUX_FIRMWARE_FILES)) | \
  221. $(TAR) x -C $(TARGET_DIR)/lib/firmware
  222. endef
  223. endif
  224. $(eval $(generic-package))