Firmware is needed by a lot of modern devices. Includes various radio interfaces, GPU and CPU stuff.
You need to manually select license files that apply to the firmware files you are copying. This is due to the nature of the firmware package. There is no strict relation between firmware file name and license file name. This is more generic than having to maintain a configuration set for every type of firmware file or function. Signed-off-by: Christian Melki <[email protected]> --- rules/linux-firmware.in | 165 ++++++++++++++++++++++++++++++++++++++ rules/linux-firmware.make | 138 +++++++++++++++++++++++++++++++ 2 files changed, 303 insertions(+) create mode 100644 rules/linux-firmware.in create mode 100644 rules/linux-firmware.make diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in new file mode 100644 index 000000000..ccf4cd1d9 --- /dev/null +++ b/rules/linux-firmware.in @@ -0,0 +1,165 @@ +## SECTION=system_libraries + +menuconfig LINUX_FIRMWARE + tristate + prompt "linux-firmware " + help + Linux firmware is a collection of firmwares that are used for various hardware. + +if LINUX_FIRMWARE + +config LINUX_FIRMWARE_SELECTED_LICENSES + string + prompt "Linux-firmware license files to include" + help + Set the firmware license files use. + Since there is no strict match between firmware files + and license files, this must be provided by the user. + Multiple license files are separated by space. + For example "LICENSE.amd-ucode LICENSE.amdgpu" + Some of the declared license files include: + LICENCE.Abilis + LICENCE.adsp_sst + LICENCE.agere + LICENCE.atheros_firmware + LICENCE.broadcom_bcm43xx + LICENCE.ca0132 + LICENCE.cadence + LICENCE.cavium + LICENCE.cavium_liquidio + LICENCE.chelsio_firmware + LICENCE.cw1200 + LICENCE.cypress + LICENCE.e100 + LICENCE.ene_firmware + LICENCE.fw_sst_0f28 + LICENCE.go7007 + LICENCE.i2400m + LICENCE.ibt_firmware + LICENCE.IntcSST2 + LICENCE.it913x + LICENCE.iwlwifi_firmware + LICENCE.kaweth + LICENCE.Marvell + LICENCE.mediatek + LICENCE.microchip + LICENCE.moxa + LICENCE.myri10ge_firmware + LICENCE.Netronome + LICENCE.nvidia + LICENCE.NXP + LICENCE.OLPC + LICENCE.open-ath9k-htc-firmware + LICENCE.phanfw + LICENCE.qat_firmware + LICENCE.qla1280 + LICENCE.qla2xxx + LICENCE.r8a779x_usb3 + LICENCE.ralink_a_mediatek_company_firmware + LICENCE.ralink-firmware.txt + LICENCE.rockchip + LICENCE.rtlwifi_firmware.txt + LICENCE.siano + LICENCE.tda7706-firmware.txt + LICENCE.ti-connectivity + LICENCE.ti-keystone + LICENCE.ti-tspa + LICENCE.ueagle-atm4-firmware + LICENCE.via_vt6656 + LICENCE.wl1251 + LICENCE.xc4000 + LICENCE.xc5000 + LICENCE.xc5000c + LICENSE.amdgpu + LICENSE.amd-sev + LICENSE.amd-ucode + LICENSE.amlogic_vdec + LICENSE.atmel + LICENSE.dib0700 + LICENSE.hfi1_firmware + LICENSE.i915 + LICENSE.ice + LICENSE.ice_enhanced + LICENSE.ipu3_firmware + LICENSE.Lontium + LICENSE.nxp_mc_firmware + LICENSE.qcom + LICENSE.QualcommAtheros_ar3k + LICENSE.QualcommAtheros_ath10k + LICENSE.radeon + LICENSE.sdma_firmware + silabs/LICENCE.wf200 + +config LINUX_FIRMWARE_SELECTED_FIRMWARES + string + prompt "Linux-firmware files to copy to target" + help + Set the firmware files to copy, with globs. + Since the firmware files can be large, this makes + it possible to do a fine grained copy. + Multiple firmware files are separated by space. + Rembember that the glob MUST match the full path. + For example "*amd-ucode/* *amdgpu/*raven_* amdgpu/*raven2* + File extensions for typical firmware files include: + asc + asm + b00 + b01 + b02 + b03 + b04 + b05 + b06 + b07 + b08 + b09 + b10 + b19 + bin + brd + bseq + bts + cis + cld + clm_blob + csp + cyacd + dat + data + ddc + dfu + dlmem + dsp + flist + fw + fw2 + hcd + hex + img + inp + itb + l + mbn + mdt + mfa2 + ncf + nffw + pkg + pnvm + pst + rps + S + sbcf + sbin + sec + sfi + sys + tlv + txt + txt_wlanmdsp + ucode + v2 + y + z77 + +endif diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make new file mode 100644 index 000000000..b586cae88 --- /dev/null +++ b/rules/linux-firmware.make @@ -0,0 +1,138 @@ +# -*-makefile-*- +# +# Copyright (C) 2021 by Christian Melki <[email protected]> +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware + +# +# Paths and names +# +LINUX_FIRMWARE_VERSION := 20211216 +LINUX_FIRMWARE_MD5 := 93d3a9f686c3420972115c2216ae37e5 +LINUX_FIRMWARE := linux-firmware-$(LINUX_FIRMWARE_VERSION) +LINUX_FIRMWARE_SUFFIX := tar.gz +LINUX_FIRMWARE_URL := $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)) +LINUX_FIRMWARE_SOURCE := $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX) +LINUX_FIRMWARE_DIR := $(BUILDDIR)/$(LINUX_FIRMWARE) +LINUX_FIRMWARE_LICENSE := proprietary +LINUX_FIRMWARE_LICENSE_FILES := \ + file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ + file://LICENCE.iwlwifi_firmware;md5=2ce6786e0fc11ac6e36b54bb9b799f1b \ + file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \ + file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ + file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \ + file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \ + file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ + file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ + file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \ + file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \ + file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \ + file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ + file://LICENSE.ice_enhanced;md5=f305cfc31b64f95f774f9edd9df0224d \ + file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \ + file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \ + file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \ + file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ + file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \ + file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \ + file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \ + file://LICENSE.ipu3_firmware;md5=38fe8238c06bf7dcfd0eedbebf452c3b \ + file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ + file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \ + file://LICENCE.cavium_liquidio;md5=ff2c835a7bb99e8e9048ab13b94e43eb \ + file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \ + file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \ + file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \ + file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ + file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ + file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \ + file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \ + file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \ + file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \ + file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \ + file://LICENSE.amd-sev;md5=e750538791a8be0b7249c579edefb035 \ + file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \ + file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ + file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \ + file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ + file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ + file://silabs/LICENCE.wf200;md5=4d1beff00d902c05c9c7e95a5d8eb52d \ + file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \ + file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \ + file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \ + file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \ + file://LICENCE.microchip;md5=db753b00305675dfbf120e3f24a47277 \ + file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \ + file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \ + file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \ + file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \ + file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ + file://LICENSE.Lontium;md5=4ec8dc582ff7295f39e2ca6a7b0be2b6 \ + file://LICENCE.rockchip;md5=5fd70190c5ed39734baceada8ecced26 \ + file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \ + file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \ + file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \ + file://LICENCE.qat_firmware;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ + file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \ + file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \ + file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \ + file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \ + file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \ + file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ + file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ + file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \ + file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \ + file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \ + file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \ + file://LICENSE.nxp_mc_firmware;md5=9dc97e4b279b3858cae8879ae2fe5dd7 \ + file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ + file://LICENCE.ti-tspa;md5=d1a0eb27d0020752040190b9d51ad9be + +LINUX_FIRMWARE_SELECTED_LICENSES := $(call remove_quotes, $(PTXCONF_LINUX_FIRMWARE_SELECTED_LICENSES)) +ifneq ($(LINUX_FIRMWARE_SELECTED_LICENSES),) +LINUX_FIRMWARE_LICENSE_FILES := $(filter $(addsuffix %,$(addprefix file://,$(LINUX_FIRMWARE_SELECTED_LICENSES))),$(LINUX_FIRMWARE_LICENSE_FILES)) +endif + +LINUX_FIRMWARE_SELECTED_FIRMWARES = $(call remove_quotes, $(PTXCONF_LINUX_FIRMWARE_SELECTED_FIRMWARES)) + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +LINUX_FIRMWARE_CONF_TOOL := NO + +$(STATEDIR)/linux-firmware.compile: + @$(call targetinfo) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/linux-firmware.targetinstall: + @$(call targetinfo) + + @$(call install_init, linux-firmware) + @$(call install_fixup, linux-firmware,PRIORITY,optional) + @$(call install_fixup, linux-firmware,SECTION,base) + @$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <[email protected]>") + @$(call install_fixup, linux-firmware,DESCRIPTION,missing) + +ifneq ($(LINUX_FIRMWARE_SELECTED_FIRMWARES),) + @$(foreach firmware, $(LINUX_FIRMWARE_SELECTED_FIRMWARES), \ + $(call install_glob, linux-firmware, 0, 0, -, \ + /lib/firmware, $(firmware))$(ptx/nl)) +endif + + @$(call install_finish, linux-firmware) + + @$(call touch) + +# vim: syntax=make -- 2.30.2 _______________________________________________ ptxdist mailing list [email protected] To unsubscribe, send a mail with subject "unsubscribe" to [email protected]
