kumquat-buildroot/package/linux-firmware/linux-firmware.mk

782 lines
24 KiB
Makefile
Raw Normal View History

################################################################################
#
# linux-firmware
#
################################################################################
LINUX_FIRMWARE_VERSION = 20210919
LINUX_FIRMWARE_SOURCE = linux-firmware-$(LINUX_FIRMWARE_VERSION).tar.xz
LINUX_FIRMWARE_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/firmware
LINUX_FIRMWARE_INSTALL_IMAGES = YES
LINUX_FIRMWARE_CPE_ID_VENDOR = kernel
# Intel SST DSP
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP),y)
LINUX_FIRMWARE_FILES += intel/fw_sst_0f28.bin-48kHz_i2s_master
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.fw_sst_0f28
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AMDGPU),y)
LINUX_FIRMWARE_DIRS += amdgpu
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.amdgpu
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_I915),y)
LINUX_FIRMWARE_DIRS += i915
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.i915
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RADEON),y)
LINUX_FIRMWARE_DIRS += radeon
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.radeon
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QCOM_VENUS),y)
LINUX_FIRMWARE_DIRS += qcom/venus-1.8 qcom/venus-4.2
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom qcom/NOTICE.txt
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QCOM_ADRENO),y)
LINUX_FIRMWARE_FILES += qcom/a*
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom qcom/NOTICE.txt
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8),y)
LINUX_FIRMWARE_FILES += \
s5p-mfc.fw \
s5p-mfc-v6.fw \
s5p-mfc-v6-v2.fw \
s5p-mfc-v7.fw \
s5p-mfc-v8.fw
# No license file; the license is in the file WHENCE
# which is installed unconditionally
endif
# Intel Wireless Bluetooth
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IBT),y)
LINUX_FIRMWARE_FILES += intel/ibt-*
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ibt_firmware
endif
# Qualcomm Atheros Rome 6174A Bluetooth
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT),y)
LINUX_FIRMWARE_FILES += qca/rampatch_usb_00000302.bin qca/nvm_usb_00000302.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom
endif
# Realtek 87xx Bluetooth
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT),y)
LINUX_FIRMWARE_FILES += \
rtl_bt/rtl8723a_fw.bin rtl_bt/rtl8723b_fw.bin \
rtl_bt/rtl8723bs_config-OBDA8723.bin \
rtl_bt/rtl8723bs_fw.bin rtl_bt/rtl8723d_config.bin \
rtl_bt/rtl8723d_fw.bin rtl_bt/rtl8761a_fw.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
endif
# Realtek 88xx Bluetooth
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT),y)
LINUX_FIRMWARE_FILES += \
rtl_bt/rtl8812ae_fw.bin rtl_bt/rtl8821a_fw.bin \
rtl_bt/rtl8821c_config.bin rtl_bt/rtl8821c_fw.bin \
rtl_bt/rtl8822b_config.bin rtl_bt/rtl8822b_fw.bin \
rtl_bt/rtl8822cs_config.bin rtl_bt/rtl8822cs_fw.bin \
rtl_bt/rtl8822cu_config.bin rtl_bt/rtl8822cu_fw.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
endif
# rt2501/rt61
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61),y)
LINUX_FIRMWARE_FILES += rt2561.bin rt2561s.bin rt2661.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
endif
# rt73
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73),y)
LINUX_FIRMWARE_FILES += rt73.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
endif
# rt2xx
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX),y)
LINUX_FIRMWARE_FILES += rt2860.bin rt2870.bin rt3071.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink-firmware.txt
endif
# rtl81xx
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX),y)
LINUX_FIRMWARE_FILES += \
rtlwifi/rtl8192cfw.bin \
rtlwifi/rtl8192cfwU.bin \
rtlwifi/rtl8192cfwU_B.bin \
rtlwifi/rtl8192cufw.bin \
rtlwifi/rtl8192defw.bin \
rtlwifi/rtl8192sefw.bin \
rtlwifi/rtl8188efw.bin \
rtlwifi/rtl8188eufw.bin \
rtlwifi/rtl8192cufw_A.bin \
rtlwifi/rtl8192cufw_B.bin \
rtlwifi/rtl8192cufw_TMSC.bin \
rtlwifi/rtl8192eu_ap_wowlan.bin \
rtlwifi/rtl8192eu_nic.bin \
rtlwifi/rtl8192eu_wowlan.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
endif
# rtl87xx
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX),y)
LINUX_FIRMWARE_FILES += \
rtlwifi/rtl8712u.bin \
rtlwifi/rtl8723fw.bin \
rtlwifi/rtl8723fw_B.bin \
rtlwifi/rtl8723befw.bin \
rtlwifi/rtl8723aufw_A.bin \
rtlwifi/rtl8723aufw_B.bin \
rtlwifi/rtl8723aufw_B_NoBT.bin \
rtlwifi/rtl8723befw.bin \
rtlwifi/rtl8723bs_bt.bin \
rtlwifi/rtl8723bu_ap_wowlan.bin \
rtlwifi/rtl8723bu_nic.bin \
rtlwifi/rtl8723bu_wowlan.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
endif
# rtl88xx
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX),y)
LINUX_FIRMWARE_FILES += \
rtlwifi/rtl8821aefw.bin \
rtlwifi/rtl8821aefw_wowlan.bin \
rtlwifi/rtl8821aefw_29.bin rtlwifi/rtl8822befw.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
endif
# rtw88
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88),y)
LINUX_FIRMWARE_FILES += \
rtw88/rtw8723d_fw.bin \
rtw88/rtw8822b_fw.bin \
rtw88/rtw8822c_fw.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
endif
# ar3011
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AR3011),y)
LINUX_FIRMWARE_FILES += ath3k-1.fw
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
# ar3012
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AR3012_USB),y)
LINUX_FIRMWARE_FILES += \
ar3k/AthrBT_0x01020001.dfu \
ar3k/ramps_0x01020001_26.dfu \
ar3k/AthrBT_0x01020200.dfu \
ar3k/ramps_0x01020200_26.dfu \
ar3k/ramps_0x01020200_40.dfu \
ar3k/AthrBT_0x31010000.dfu \
ar3k/ramps_0x31010000_40.dfu \
ar3k/AthrBT_0x11020000.dfu \
ar3k/ramps_0x11020000_40.dfu \
ar3k/ramps_0x01020201_26.dfu \
ar3k/ramps_0x01020201_40.dfu \
ar3k/AthrBT_0x41020000.dfu \
ar3k/ramps_0x41020000_40.dfu \
ar3k/AthrBT_0x11020100.dfu \
ar3k/ramps_0x11020100_40.dfu \
ar3k/AthrBT_0x31010100.dfu \
ar3k/ramps_0x31010100_40.dfu \
ar3k/AthrBT_0x01020201.dfu
LINUX_FIRMWARE_ALL_LICENSE_FILES += \
LICENCE.atheros_firmware LICENSE.QualcommAtheros_ar3k
endif
# ar6002
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6002),y)
LINUX_FIRMWARE_FILES += ath6k/AR6002
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
# ar6003
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6003),y)
LINUX_FIRMWARE_FILES += ath6k/AR6003
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
# ar6004
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_6004),y)
LINUX_FIRMWARE_FILES += ath6k/AR6004
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
# ar7010
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010),y)
LINUX_FIRMWARE_FILES += ar7010.fw ar7010_1_1.fw htc_7010.fw ath9k_htc/htc_7010-1.4.0.fw
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
# ar9170
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170),y)
LINUX_FIRMWARE_FILES += ar9170-1.fw ar9170-2.fw carl9170-1.fw
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
# ar9271
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271),y)
LINUX_FIRMWARE_FILES += ar9271.fw htc_9271.fw ath9k_htc/htc_9271-1.4.0.fw
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
# ath10k
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377),y)
LINUX_FIRMWARE_FILES += ath10k/QCA9377/hw1.0/board-2.bin \
ath10k/QCA9377/hw1.0/board.bin \
ath10k/QCA9377/hw1.0/firmware-5.bin \
ath10k/QCA9377/hw1.0/firmware-6.bin \
ath10k/QCA9377/hw1.0/firmware-sdio-5.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X),y)
LINUX_FIRMWARE_FILES += ath10k/QCA988X/hw2.0/board.bin \
ath10k/QCA988X/hw2.0/firmware-4.bin \
ath10k/QCA988X/hw2.0/firmware-5.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware
endif
# sd8686 v8
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8),y)
LINUX_FIRMWARE_FILES += libertas/sd8686_v8.bin libertas/sd8686_v8_helper.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# sd8686 v9
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V9),y)
LINUX_FIRMWARE_FILES += libertas/sd8686_v9.bin libertas/sd8686_v9_helper.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# sd8688
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688),y)
LINUX_FIRMWARE_FILES += mrvl/sd8688.bin mrvl/sd8688_helper.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# usb8388 v9
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB8388_V9),y)
LINUX_FIRMWARE_FILES += libertas/usb8388_v9.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# usb8388 olpc
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB8388_OLPC),y)
LINUX_FIRMWARE_FILES += libertas/usb8388_olpc.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# lbtf usb
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_USB_THINFIRM),y)
LINUX_FIRMWARE_FILES += lbtf_usb.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# sd8787
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8787),y)
LINUX_FIRMWARE_FILES += mrvl/sd8787_uapsta.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# sd8797
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8797),y)
LINUX_FIRMWARE_FILES += mrvl/sd8797_uapsta.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# usb8797
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797),y)
LINUX_FIRMWARE_FILES += mrvl/usb8797_uapsta.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# usb8801
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8801),y)
LINUX_FIRMWARE_FILES += mrvl/usb8801_uapsta.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# sd8887
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8887),y)
LINUX_FIRMWARE_FILES += mrvl/sd8887_uapsta.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# sd8897
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_SD8897),y)
LINUX_FIRMWARE_FILES += mrvl/sd8897_uapsta.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# usb8897
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897),y)
LINUX_FIRMWARE_FILES += mrvl/usb8897_uapsta.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# pcie8897
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIE8897),y)
LINUX_FIRMWARE_FILES += mrvl/pcie8897_uapsta.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# pcieuart8997
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUART8997),y)
LINUX_FIRMWARE_FILES += mrvl/pcieuart8997_combo_v4.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# pcieusb8997
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUSB8997),y)
LINUX_FIRMWARE_FILES += mrvl/pcieusb8997_combo_v4.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell
endif
# MT7601
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U),y)
LINUX_FIRMWARE_FILES += mt7601u.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware
endif
# MT7610
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E),y)
LINUX_FIRMWARE_FILES += mediatek/mt7610e.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware
endif
# MT7650
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7650),y)
LINUX_FIRMWARE_FILES += mt7650.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware
endif
# MT76x2e
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E),y)
LINUX_FIRMWARE_FILES += mt7662.bin mt7662_rom_patch.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware
endif
# qca6174
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174),y)
LINUX_FIRMWARE_FILES += ath10k/QCA6174
LINUX_FIRMWARE_ALL_LICENSE_FILES += \
LICENSE.QualcommAtheros_ath10k \
ath10k/QCA6174/hw2.1/notice_ath10k_firmware-5.txt \
ath10k/QCA6174/hw3.0/notice_ath10k_firmware-4.txt \
ath10k/QCA6174/hw3.0/notice_ath10k_firmware-6.txt
endif
# CC2560(A)
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560),y)
LINUX_FIRMWARE_FILES += \
ti-connectivity/TIInit_6.2.31.bts \
ti-connectivity/TIInit_6.6.15.bts
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
endif
# wl127x
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL127X),y)
LINUX_FIRMWARE_FILES += \
ti-connectivity/wl1271-fw-2.bin \
ti-connectivity/wl1271-fw-ap.bin \
ti-connectivity/wl1271-fw.bin \
ti-connectivity/wl127x-fw-3.bin \
ti-connectivity/wl127x-fw-plt-3.bin \
ti-connectivity/wl127x-nvs.bin \
ti-connectivity/wl127x-fw-4-mr.bin \
ti-connectivity/wl127x-fw-4-plt.bin \
ti-connectivity/wl127x-fw-4-sr.bin \
ti-connectivity/wl127x-fw-5-mr.bin \
ti-connectivity/wl127x-fw-5-plt.bin \
ti-connectivity/wl127x-fw-5-sr.bin \
ti-connectivity/TIInit_7.2.31.bts
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
endif
# wl128x
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL128X),y)
LINUX_FIRMWARE_FILES += \
ti-connectivity/wl128x-fw-3.bin \
ti-connectivity/wl128x-fw-ap.bin \
ti-connectivity/wl128x-fw-plt-3.bin \
ti-connectivity/wl128x-fw.bin \
ti-connectivity/wl128x-nvs.bin \
ti-connectivity/wl127x-nvs.bin \
ti-connectivity/wl128x-fw-4-mr.bin \
ti-connectivity/wl128x-fw-4-plt.bin \
ti-connectivity/wl128x-fw-4-sr.bin \
ti-connectivity/wl128x-fw-5-mr.bin \
ti-connectivity/wl128x-fw-5-plt.bin \
ti-connectivity/wl128x-fw-5-sr.bin \
ti-connectivity/TIInit_7.2.31.bts
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
endif
# wl18xx
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_TI_WL18XX),y)
LINUX_FIRMWARE_FILES += \
ti-connectivity/wl18xx-fw.bin \
ti-connectivity/wl18xx-fw-2.bin \
ti-connectivity/wl18xx-fw-3.bin \
ti-connectivity/wl18xx-fw-4.bin \
ti-connectivity/wl127x-nvs.bin \
ti-connectivity/TIInit_7.2.31.bts
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ti-connectivity
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_WIL6210),y)
LINUX_FIRMWARE_FILES += wil6210.*
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.QualcommAtheros_ath10k
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22260),y)
LINUX_FIRMWARE_FILES += iwlwifi-cc-a0-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160),y)
LINUX_FIRMWARE_FILES += iwlwifi-3160-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168),y)
LINUX_FIRMWARE_FILES += iwlwifi-3168-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
# iwlwifi 5000. Multiple files are available (iwlwifi-5000-1.ucode,
# iwlwifi-5000-2.ucode, iwlwifi-5000-5.ucode), corresponding to
# different versions of the firmware API. For now, we only install the
# most recent one.
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000),y)
LINUX_FIRMWARE_FILES += iwlwifi-5000-5.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2A),y)
LINUX_FIRMWARE_FILES += iwlwifi-6000g2a-6.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6000G2B),y)
LINUX_FIRMWARE_FILES += iwlwifi-6000g2b-6.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260),y)
LINUX_FIRMWARE_FILES += iwlwifi-7260-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265),y)
LINUX_FIRMWARE_FILES += iwlwifi-7265-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D),y)
LINUX_FIRMWARE_FILES += iwlwifi-7265D-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C),y)
LINUX_FIRMWARE_FILES += iwlwifi-8000C-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265),y)
LINUX_FIRMWARE_FILES += iwlwifi-8265-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX),y)
LINUX_FIRMWARE_FILES += iwlwifi-9???-*.ucode
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3),y)
LINUX_FIRMWARE_FILES += tigon/*
# No license file; the license is in the file WHENCE
# which is installed unconditionally
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2X),y)
linux-firmware: Include all bnx2x firmwares Currently buildroot will create a broken system for any kernel version not between 3.18 and 4.1, as the bnx2x firmware it includes is only valid for that version of the upstream driver. This change modifies the build so that all versions are included as there was a strong preference for not adding options for each version, nor only supporting the latest kernel: On Fri, Feb 26, 2016 at 7:09 PM, Thomas Petazzoni wrote: > I think adding new config to chose between different versions of a > given firmware is going a bit too far. If we were to do that for all > firmwares in linux-firmware, it would really increase the number of > Config.in options too much. > > Shall I suggest to install both versions of the firmware? The firmware > files are not that large, and if filesystem size is really a strong > issue, it is always possible to clean up the non-required firmware > files in a post-build script. On Wed, Mar 2, 2016 at 7:47 AM, Arnout Vandecappelle wrote: > No, this is certainly not good, it fixes 4.2+ and simultaneously breaks 4.1-. > > What is wrong with Thomas's proposal to remove the unneeded versions in a > post-build script? If your size is so important that 640K matters, you would > probably anyway want to keep only one of the six binaries instead of three > different chip revisions. It is up to the user to ensure they remove the versions they don't want. Note that this increases the size of the root file system by about 8MB. Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-10-28 04:54:05 +02:00
LINUX_FIRMWARE_FILES += bnx2x/*
# No license file; the license is in the file WHENCE
# which is installed unconditionally
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T4),y)
LINUX_FIRMWARE_FILES += cxgb4/t4fw*.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.chelsio_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CXGB4_T5),y)
LINUX_FIRMWARE_FILES += cxgb4/t5fw*.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.chelsio_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100),y)
LINUX_FIRMWARE_FILES += e100/*.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.e100
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_ICE),y)
LINUX_FIRMWARE_FILES += intel/ice/ddp/*.pkg
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.ice_enhanced
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY),y)
LINUX_FIRMWARE_FILES += microchip/mscc_vsc85*.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.microchip
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X),y)
LINUX_FIRMWARE_FILES += \
qed/qed_init_values_zipped-*.bin
# No license file; the license is in the file WHENCE
# which is installed unconditionally
endif
# rtl815x
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X),y)
LINUX_FIRMWARE_FILES += \
rtl_nic/rtl8153a-2.fw \
rtl_nic/rtl8153a-3.fw \
rtl_nic/rtl8153a-4.fw \
rtl_nic/rtl8153b-2.fw \
rtl_nic/rtl8153c-1.fw \
rtl_nic/rtl8156a-2.fw \
rtl_nic/rtl8156b-2.fw
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169),y)
LINUX_FIRMWARE_FILES += \
rtl_nic/rtl8105e-1.fw \
rtl_nic/rtl8106e-1.fw \
rtl_nic/rtl8106e-2.fw \
rtl_nic/rtl8107e-1.fw \
rtl_nic/rtl8107e-2.fw \
rtl_nic/rtl8125a-3.fw \
rtl_nic/rtl8168d-1.fw \
rtl_nic/rtl8168d-2.fw \
rtl_nic/rtl8168e-1.fw \
rtl_nic/rtl8168e-2.fw \
rtl_nic/rtl8168e-3.fw \
rtl_nic/rtl8168f-1.fw \
rtl_nic/rtl8168f-2.fw \
rtl_nic/rtl8168fp-3.fw \
rtl_nic/rtl8168g-2.fw \
rtl_nic/rtl8168g-3.fw \
rtl_nic/rtl8168h-1.fw \
rtl_nic/rtl8168h-2.fw \
rtl_nic/rtl8402-1.fw \
rtl_nic/rtl8411-1.fw \
rtl_nic/rtl8411-2.fw
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_XCx000),y)
LINUX_FIRMWARE_FILES += \
dvb-fe-xc4000-1.4.1.fw \
dvb-fe-xc5000-1.6.114.fw \
dvb-fe-xc5000c-4.1.30.7.fw
LINUX_FIRMWARE_ALL_LICENSE_FILES += \
LICENCE.xc4000 \
LICENCE.xc5000 \
LICENCE.xc5000c
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AS102),y)
LINUX_FIRMWARE_FILES += as102_data1_st.hex as102_data2_st.hex
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Abilis
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_DIB0700),y)
LINUX_FIRMWARE_FILES += dvb-usb-dib0700-1.20.fw
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.dib0700
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ITETECH_IT9135),y)
LINUX_FIRMWARE_FILES += dvb-usb-it9135-01.fw dvb-usb-it9135-02.fw
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.it913x
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_H5_DRXK),y)
LINUX_FIRMWARE_FILES += dvb-usb-terratec-h5-drxk.fw
# No license file; the license is in the file WHENCE
# which is installed unconditionally
endif
# brcm43xx
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX),y)
LINUX_FIRMWARE_FILES += \
brcm/bcm4329-fullmac-4.bin \
brcm/brcmfmac4329-sdio.bin \
brcm/brcmfmac4330-sdio.bin \
brcm/brcmfmac4334-sdio.bin \
brcm/brcmfmac4335-sdio.bin \
brcm/brcmfmac4350c2-pcie.bin \
brcm/brcmfmac4350-pcie.bin \
brcm/brcmfmac4358-pcie.bin \
brcm/brcmfmac4371-pcie.bin \
brcm/brcmfmac4373.bin \
brcm/brcmfmac4330-sdio.Prowise-PT301.txt \
brcm/brcmfmac4356-pcie.gpd-win-pocket.txt \
brcm/brcmfmac4356-sdio.vamrs,rock960.txt
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx
endif
# brcm43xxx
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX),y)
LINUX_FIRMWARE_FILES += \
brcm/brcmfmac43143.bin \
brcm/brcmfmac43143-sdio.bin \
brcm/brcmfmac43236b.bin \
brcm/brcmfmac43241b0-sdio.bin \
brcm/brcmfmac43241b4-sdio.bin \
brcm/brcmfmac43241b5-sdio.bin \
brcm/brcmfmac43242a.bin \
brcm/brcmfmac43430a0-sdio.bin \
brcm/brcmfmac43569.bin \
brcm/brcmfmac43602-pcie.ap.bin \
brcm/brcmfmac43602-pcie.bin \
brcm/brcmfmac43340-sdio.meegopad-t08.txt \
brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt \
brcm/brcmfmac43340-sdio.predia-basic.txt \
brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt \
brcm/brcmfmac43430a0-sdio.ilife-S806.txt \
brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt \
brcm/brcmfmac43430-sdio.AP6212.txt \
brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt \
brcm/brcmfmac43430-sdio.MUR1DX.txt \
brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt \
brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt \
brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx
endif
# brcm4366b1
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366B1),y)
LINUX_FIRMWARE_FILES += brcm/brcmfmac4366b-pcie.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx
endif
# brcm4366c0
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366C0),y)
LINUX_FIRMWARE_FILES += brcm/brcmfmac4366c-pcie.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx
endif
# ql2xxx
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX),y)
LINUX_FIRMWARE_FILES += \
ql2100_fw.bin ql2200_fw.bin ql2300_fw.bin ql2322_fw.bin \
ql2400_fw.bin ql2500_fw.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qla2xxx
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113),y)
LINUX_FIRMWARE_FILES += \
rsi/rs9113_ap_bt_dual_mode.rps \
rsi/rs9113_wlan_bt_dual_mode.rps \
rsi/rs9113_wlan_qspi.rps
# No license file; the license is in the file WHENCE
# which is installed unconditionally
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QAT_DH895XCC),y)
LINUX_FIRMWARE_FILES += qat_895xcc.bin qat_895xcc_mmp.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qat_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QAT_C3XXX),y)
LINUX_FIRMWARE_FILES += qat_c3xxx.bin qat_c3xxx_mmp.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qat_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QAT_C62X),y)
LINUX_FIRMWARE_FILES += qat_c62x.bin qat_c62x_mmp.bin
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qat_firmware
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI),y)
LINUX_FIRMWARE_FILES += ti_3410.fw ti_5052.fw \
mts_cdma.fw mts_gsm.fw mts_edge.fw mts_mt9234mu.fw mts_mt9234zba.fw \
moxa/moxa-1110.fw moxa/moxa-1130.fw moxa/moxa-1131.fw \
moxa/moxa-1150.fw moxa/moxa-1151.fw
# Some firmware's license is in the file WHENCE
# which is installed unconditionally
LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.moxa
endif
ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CX231XX),y)
LINUX_FIRMWARE_FILES += v4l-cx231xx-avcore-01.fw
# No license file; the license is in the file WHENCE
# which is installed unconditionally
endif
package/linux-firmware: rationalise install step The logic we have for the installation of the firmware files is, to say the least, non conventional. It is split in two parts: - one that copies files via an intermediate tarball: the tarball creation is used to detect if firmware files are missing (i.e. on a version bump) and fail the build if so, while the tarball extraction is the actual firmware installation; - one that copies directories one by one in a loop, removing the destination before the copy, to maintain a proper layout. Needless to say, this is not very clean. First, there is no reason why the directories can not be copied with the same mechanism as the files themselves; not sure what I had in mind with b55bd5a9e25e... Second, we're soon going to need the same installation step to copy the firmware files in the images/ directory, to ease embedding in the kernel image. Rationalise this installation procedure. Cherry-picking files and directories with cp, while still maintaining the directory layout, is not trivial; rsync is not one of our pre-requisites. So we're left with tar, which makes it easy. So we keep using an intermediate tarball, but we use it for both files and directories, and we generate it at build time, not install time. That archive is then extracted during the installation. Now the installation complexity is mostly located in the creation of the symlinks, so we merge all of that directly into the _INSTALL_TARGET_CMDS and drop the intermediate macros that have no longer any reason to exist. This will also make it pretty simple to later install in the images/ directory. Reported-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-02-15 17:05:54 +01:00
ifneq ($(LINUX_FIRMWARE_FILES)$(LINUX_FIRMWARE_DIRS),)
package/linux-firmware: rationalise install step The logic we have for the installation of the firmware files is, to say the least, non conventional. It is split in two parts: - one that copies files via an intermediate tarball: the tarball creation is used to detect if firmware files are missing (i.e. on a version bump) and fail the build if so, while the tarball extraction is the actual firmware installation; - one that copies directories one by one in a loop, removing the destination before the copy, to maintain a proper layout. Needless to say, this is not very clean. First, there is no reason why the directories can not be copied with the same mechanism as the files themselves; not sure what I had in mind with b55bd5a9e25e... Second, we're soon going to need the same installation step to copy the firmware files in the images/ directory, to ease embedding in the kernel image. Rationalise this installation procedure. Cherry-picking files and directories with cp, while still maintaining the directory layout, is not trivial; rsync is not one of our pre-requisites. So we're left with tar, which makes it easy. So we keep using an intermediate tarball, but we use it for both files and directories, and we generate it at build time, not install time. That archive is then extracted during the installation. Now the installation complexity is mostly located in the creation of the symlinks, so we merge all of that directly into the _INSTALL_TARGET_CMDS and drop the intermediate macros that have no longer any reason to exist. This will also make it pretty simple to later install in the images/ directory. Reported-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-02-15 17:05:54 +01:00
define LINUX_FIRMWARE_BUILD_CMDS
cd $(@D) && \
package/linux-firmware: rationalise install step The logic we have for the installation of the firmware files is, to say the least, non conventional. It is split in two parts: - one that copies files via an intermediate tarball: the tarball creation is used to detect if firmware files are missing (i.e. on a version bump) and fail the build if so, while the tarball extraction is the actual firmware installation; - one that copies directories one by one in a loop, removing the destination before the copy, to maintain a proper layout. Needless to say, this is not very clean. First, there is no reason why the directories can not be copied with the same mechanism as the files themselves; not sure what I had in mind with b55bd5a9e25e... Second, we're soon going to need the same installation step to copy the firmware files in the images/ directory, to ease embedding in the kernel image. Rationalise this installation procedure. Cherry-picking files and directories with cp, while still maintaining the directory layout, is not trivial; rsync is not one of our pre-requisites. So we're left with tar, which makes it easy. So we keep using an intermediate tarball, but we use it for both files and directories, and we generate it at build time, not install time. That archive is then extracted during the installation. Now the installation complexity is mostly located in the creation of the symlinks, so we merge all of that directly into the _INSTALL_TARGET_CMDS and drop the intermediate macros that have no longer any reason to exist. This will also make it pretty simple to later install in the images/ directory. Reported-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Yegor Yefremov <yegorslists@googlemail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2021-02-15 17:05:54 +01:00
$(TAR) cf br-firmware.tar $(sort $(LINUX_FIRMWARE_FILES) $(LINUX_FIRMWARE_DIRS))
endef
# Most firmware files are under a proprietary license, so no need to
# repeat it for every selections above. Those firmwares that have more
# lax licensing terms may still add them on a per-case basis.
LINUX_FIRMWARE_LICENSE += Proprietary
# This file contains some licensing information about all the firmware
# files found in the linux-firmware package, so we always add it, even
# for firmwares that have their own licensing terms.
LINUX_FIRMWARE_ALL_LICENSE_FILES += WHENCE
# Some license files may be listed more than once, so we have to remove
# duplicates
LINUX_FIRMWARE_LICENSE_FILES = $(sort $(LINUX_FIRMWARE_ALL_LICENSE_FILES))
# Some firmware are distributed as a symlink, for drivers to load them using a
# defined name other than the real one. Since 9cfefbd7fbda ("Remove duplicate
# symlinks") those symlink aren't distributed in linux-firmware but are created
# automatically by its copy-firmware.sh script during the installation, which
# parses the WHENCE file where symlinks are described. We follow the same logic
# here, adding symlink only for firmwares installed in the target directory.
#
# For testing the presence of firmwares in the target directory we first make
# sure we canonicalize the pointed-to file, to cover the symlinks of the form
# a/foo -> ../b/foo where a/ (the directory where to put the symlink) does
# not yet exist.
define LINUX_FIRMWARE_INSTALL_FW
mkdir -p $(1)
$(TAR) xf $(@D)/br-firmware.tar -C $(1)
cd $(1) ; \
sed -r -e '/^Link: (.+) -> (.+)$$/!d; s//\1 \2/' $(@D)/WHENCE | \
while read f d; do \
if test -f $$(readlink -m $$(dirname "$$f")/$$d); then \
mkdir -p $$(dirname "$$f") || exit 1; \
ln -sf $$d "$$f" || exit 1; \
fi ; \
done
endef
endif # LINUX_FIRMWARE_FILES || LINUX_FIRMWARE_DIRS
define LINUX_FIRMWARE_INSTALL_TARGET_CMDS
$(call LINUX_FIRMWARE_INSTALL_FW, $(TARGET_DIR)/lib/firmware)
endef
define LINUX_FIRMWARE_INSTALL_IMAGES_CMDS
$(call LINUX_FIRMWARE_INSTALL_FW, $(BINARIES_DIR))
endef
$(eval $(generic-package))