summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Ferland <marc.ferland@sonatest.com>2025-01-20 10:46:05 -0500
committerRoss Burton <ross.burton@arm.com>2025-01-23 12:14:29 +0000
commitbf35e82d38f2c8279799c769404ec36df0371d6a (patch)
tree58d99dd31c49ee0ef52d446d0caa1060697a00ef
parent86b2a17985af6a95d512da62ab7595c1999e6c21 (diff)
downloadpoky-bf35e82d38f2c8279799c769404ec36df0371d6a.tar.gz
linux-firmware: split amdgpu firmwares in separate packages
This patch introduces the following packages for AMD gpu chips: - linux-firmware-amdgpu-aldebaran - linux-firmware-amdgpu-carrizo - linux-firmware-amdgpu-cezanne - linux-firmware-amdgpu-fiji - linux-firmware-amdgpu-hawaii - linux-firmware-amdgpu-navi10 - linux-firmware-amdgpu-navi14 - linux-firmware-amdgpu-navi21 - linux-firmware-amdgpu-navi22 - linux-firmware-amdgpu-navi23 - linux-firmware-amdgpu-navi24 - linux-firmware-amdgpu-navi31 - linux-firmware-amdgpu-navi32 - linux-firmware-amdgpu-oland - linux-firmware-amdgpu-polaris10 - linux-firmware-amdgpu-polaris11 - linux-firmware-amdgpu-polaris12 - linux-firmware-amdgpu-raven - linux-firmware-amdgpu-rembrandt - linux-firmware-amdgpu-renoir - linux-firmware-amdgpu-stoney - linux-firmware-amdgpu-tonga - linux-firmware-amdgpu-topaz - linux-firmware-amdgpu-vega10 - linux-firmware-amdgpu-vega12 - linux-firmware-amdgpu-misc: catches all firmwares that are not already included in the other -amdgpu- packages. This list was partly inspired from: https://wiki.gentoo.org/wiki/AMDGPU#Known_firmware_blobs Many other firmware packages could be created out of what is in -misc. Looking at the different commits in the linux-firmware repository gives a very good idea of which firmware goes with each chip. Note: Altough this patch might break some installations that assumed that _all_ firmwares where installed by the linux-firmware-amdgpu package, I think it is a step in the right direction as the number of firmwares under amdgpu is constantly increasing (currently ~103MB). Tested with a renoir gpu. (From OE-Core rev: 4bcb1cd5803d7b664140f177730af3c0e0b60968) Signed-off-by: Marc Ferland <marc.ferland@sonatest.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Ross Burton <ross.burton@arm.com>
-rw-r--r--meta/recipes-kernel/linux-firmware/linux-firmware_20250109.bb130
1 files changed, 127 insertions, 3 deletions
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_20250109.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_20250109.bb
index 8211bd1eb1..6380a5303c 100644
--- a/meta/recipes-kernel/linux-firmware/linux-firmware_20250109.bb
+++ b/meta/recipes-kernel/linux-firmware/linux-firmware_20250109.bb
@@ -290,6 +290,32 @@ PACKAGES =+ "${PN}-amphion-vpu-license ${PN}-amphion-vpu \
290 ${PN}-mt76x-license ${PN}-mt7601u ${PN}-mt7650 ${PN}-mt76x2 \ 290 ${PN}-mt76x-license ${PN}-mt7601u ${PN}-mt7650 ${PN}-mt76x2 \
291 ${PN}-radeon-license ${PN}-radeon \ 291 ${PN}-radeon-license ${PN}-radeon \
292 ${PN}-amdgpu-license ${PN}-amdgpu \ 292 ${PN}-amdgpu-license ${PN}-amdgpu \
293 ${PN}-amdgpu-aldebaran \
294 ${PN}-amdgpu-carrizo \
295 ${PN}-amdgpu-cezanne \
296 ${PN}-amdgpu-fiji \
297 ${PN}-amdgpu-hawaii \
298 ${PN}-amdgpu-navi10 \
299 ${PN}-amdgpu-navi14 \
300 ${PN}-amdgpu-navi21 \
301 ${PN}-amdgpu-navi22 \
302 ${PN}-amdgpu-navi23 \
303 ${PN}-amdgpu-navi24 \
304 ${PN}-amdgpu-navi31 \
305 ${PN}-amdgpu-navi32 \
306 ${PN}-amdgpu-oland \
307 ${PN}-amdgpu-polaris10 \
308 ${PN}-amdgpu-polaris11 \
309 ${PN}-amdgpu-polaris12 \
310 ${PN}-amdgpu-raven \
311 ${PN}-amdgpu-rembrandt \
312 ${PN}-amdgpu-renoir \
313 ${PN}-amdgpu-stoney \
314 ${PN}-amdgpu-tonga \
315 ${PN}-amdgpu-topaz \
316 ${PN}-amdgpu-vega10 \
317 ${PN}-amdgpu-vega12 \
318 ${PN}-amdgpu-misc \
293 ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ 319 ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \
294 ${PN}-mediatek-license ${PN}-mediatek \ 320 ${PN}-mediatek-license ${PN}-mediatek \
295 ${PN}-microchip-license ${PN}-microchip \ 321 ${PN}-microchip-license ${PN}-microchip \
@@ -712,13 +738,107 @@ RDEPENDS:${PN}-radeon += "${PN}-radeon-license"
712# For amdgpu 738# For amdgpu
713LICENSE:${PN}-amdgpu = "Firmware-amdgpu" 739LICENSE:${PN}-amdgpu = "Firmware-amdgpu"
714LICENSE:${PN}-amdgpu-license = "Firmware-amdgpu" 740LICENSE:${PN}-amdgpu-license = "Firmware-amdgpu"
741LICENSE:${PN}-amdgpu-aldebaran = "Firmware-amdgpu"
742LICENSE:${PN}-amdgpu-carrizo = "Firmware-amdgpu"
743LICENSE:${PN}-amdgpu-cezanne = "Firmware-amdgpu"
744LICENSE:${PN}-amdgpu-fiji = "Firmware-amdgpu"
745LICENSE:${PN}-amdgpu-hawaii = "Firmware-amdgpu"
746LICENSE:${PN}-amdgpu-navi10 = "Firmware-amdgpu"
747LICENSE:${PN}-amdgpu-navi14 = "Firmware-amdgpu"
748LICENSE:${PN}-amdgpu-navi21 = "Firmware-amdgpu"
749LICENSE:${PN}-amdgpu-navi22 = "Firmware-amdgpu"
750LICENSE:${PN}-amdgpu-navi23 = "Firmware-amdgpu"
751LICENSE:${PN}-amdgpu-navi24 = "Firmware-amdgpu"
752LICENSE:${PN}-amdgpu-navi31 = "Firmware-amdgpu"
753LICENSE:${PN}-amdgpu-navi32 = "Firmware-amdgpu"
754LICENSE:${PN}-amdgpu-oland = "Firmware-amdgpu"
755LICENSE:${PN}-amdgpu-polaris10 = "Firmware-amdgpu"
756LICENSE:${PN}-amdgpu-polaris11 = "Firmware-amdgpu"
757LICENSE:${PN}-amdgpu-polaris12 = "Firmware-amdgpu"
758LICENSE:${PN}-amdgpu-raven = "Firmware-amdgpu"
759LICENSE:${PN}-amdgpu-rembrandt = "Firmware-amdgpu"
760LICENSE:${PN}-amdgpu-renoir = "Firmware-amdgpu"
761LICENSE:${PN}-amdgpu-stoney = "Firmware-amdgpu"
762LICENSE:${PN}-amdgpu-tonga = "Firmware-amdgpu"
763LICENSE:${PN}-amdgpu-topaz = "Firmware-amdgpu"
764LICENSE:${PN}-amdgpu-vega10 = "Firmware-amdgpu"
765LICENSE:${PN}-amdgpu-vega12 = "Firmware-amdgpu"
766LICENSE:${PN}-amdgpu-misc = "Firmware-amdgpu"
715 767
716FILES:${PN}-amdgpu-license = "${nonarch_base_libdir}/firmware/LICENSE.amdgpu" 768FILES:${PN}-amdgpu-license = "${nonarch_base_libdir}/firmware/LICENSE.amdgpu"
717FILES:${PN}-amdgpu = " \ 769FILES:${PN}-amdgpu-aldebaran = "${nonarch_base_libdir}/firmware/amdgpu/aldebaran_*.bin"
718 ${nonarch_base_libdir}/firmware/amdgpu \ 770FILES:${PN}-amdgpu-carrizo = "${nonarch_base_libdir}/firmware/amdgpu/carrizo_*.bin"
719" 771FILES:${PN}-amdgpu-cezanne = "${nonarch_base_libdir}/firmware/amdgpu/green_sardine_*.bin"
772FILES:${PN}-amdgpu-fiji = "${nonarch_base_libdir}/firmware/amdgpu/fiji_*.bin"
773FILES:${PN}-amdgpu-hawaii = "${nonarch_base_libdir}/firmware/amdgpu/hawaii_*.bin"
774FILES:${PN}-amdgpu-navi10 = "${nonarch_base_libdir}/firmware/amdgpu/navi10_*.bin"
775FILES:${PN}-amdgpu-navi14 = "${nonarch_base_libdir}/firmware/amdgpu/navi14_*.bin"
776FILES:${PN}-amdgpu-navi21 = "${nonarch_base_libdir}/firmware/amdgpu/sienna_cichlid_*.bin"
777FILES:${PN}-amdgpu-navi22 = "${nonarch_base_libdir}/firmware/amdgpu/navy_flounder_*.bin"
778FILES:${PN}-amdgpu-navi23 = "${nonarch_base_libdir}/firmware/amdgpu/dimgrey_cavefish_*.bin"
779FILES:${PN}-amdgpu-navi24 = "${nonarch_base_libdir}/firmware/amdgpu/beige_goby_*.bin"
780FILES:${PN}-amdgpu-navi31 = "${nonarch_base_libdir}/firmware/amdgpu/gc_11_0_0_*.bin \
781 ${nonarch_base_libdir}/firmware/amdgpu/psp_13_0_0_sos.bin \
782 ${nonarch_base_libdir}/firmware/amdgpu/psp_13_0_0_ta.bin \
783 ${nonarch_base_libdir}/firmware/amdgpu/smu_13_0_0.bin \
784 ${nonarch_base_libdir}/firmware/amdgpu/dcn_3_2_0_dmcub.bin \
785 ${nonarch_base_libdir}/firmware/amdgpu/sdma_6_0_0.bin \
786 ${nonarch_base_libdir}/firmware/amdgpu/vcn_4_0_0.bin \
787"
788FILES:${PN}-amdgpu-navi32 = "${nonarch_base_libdir}/firmware/amdgpu/dcn_3_2_0_dmcub.bin \
789 ${nonarch_base_libdir}/firmware/amdgpu/gc_11_0_3_*.bin \
790 ${nonarch_base_libdir}/firmware/amdgpu/psp_13_0_10_sos.bin \
791 ${nonarch_base_libdir}/firmware/amdgpu/psp_13_0_10_ta.bin \
792 ${nonarch_base_libdir}/firmware/amdgpu/sdma_6_0_3.bin \
793 ${nonarch_base_libdir}/firmware/amdgpu/smu_13_0_10.bin \
794 ${nonarch_base_libdir}/firmware/amdgpu/vcn_4_0_0.bin \
795"
796FILES:${PN}-amdgpu-oland = "${nonarch_base_libdir}/firmware/amdgpu/oland_*.bin"
797FILES:${PN}-amdgpu-polaris10 = "${nonarch_base_libdir}/firmware/amdgpu/polaris10_*.bin"
798FILES:${PN}-amdgpu-polaris11 = "${nonarch_base_libdir}/firmware/amdgpu/polaris11_*.bin"
799FILES:${PN}-amdgpu-polaris12 = "${nonarch_base_libdir}/firmware/amdgpu/polaris12_*.bin"
800FILES:${PN}-amdgpu-raven = "${nonarch_base_libdir}/firmware/amdgpu/raven_*.bin"
801FILES:${PN}-amdgpu-rembrandt = "${nonarch_base_libdir}/firmware/amdgpu/yellow_carp_*.bin"
802FILES:${PN}-amdgpu-renoir = "${nonarch_base_libdir}/firmware/amdgpu/renoir_*.bin"
803FILES:${PN}-amdgpu-stoney = "${nonarch_base_libdir}/firmware/amdgpu/stoney_*.bin"
804FILES:${PN}-amdgpu-tonga = "${nonarch_base_libdir}/firmware/amdgpu/tonga_*.bin"
805FILES:${PN}-amdgpu-topaz = "${nonarch_base_libdir}/firmware/amdgpu/topaz_*.bin"
806FILES:${PN}-amdgpu-vega10 = "${nonarch_base_libdir}/firmware/amdgpu/vega10_*.bin"
807FILES:${PN}-amdgpu-vega12 = "${nonarch_base_libdir}/firmware/amdgpu/vega12_*.bin"
808FILES:${PN}-amdgpu-misc = "${nonarch_base_libdir}/firmware/amdgpu/*"
809# -amdgpu is a virtual package that depends upon all amdgpu packages.
810ALLOW_EMPTY:${PN}-amdgpu = "1"
811# -amdgpu-misc is a catch all package that includes all the amdgpu
812# firmwares that are not already included in other -amdgpu- packages.
813ALLOW_EMPTY:${PN}-amdgpu-misc = "1"
720 814
721RDEPENDS:${PN}-amdgpu += "${PN}-amdgpu-license" 815RDEPENDS:${PN}-amdgpu += "${PN}-amdgpu-license"
816RDEPENDS:${PN}-amdgpu-aldebaran += "${PN}-amdgpu-license"
817RDEPENDS:${PN}-amdgpu-carrizo += "${PN}-amdgpu-license"
818RDEPENDS:${PN}-amdgpu-cezanne += "${PN}-amdgpu-license"
819RDEPENDS:${PN}-amdgpu-fiji += "${PN}-amdgpu-license"
820RDEPENDS:${PN}-amdgpu-hawaii += "${PN}-amdgpu-license"
821RDEPENDS:${PN}-amdgpu-navi10 += "${PN}-amdgpu-license"
822RDEPENDS:${PN}-amdgpu-navi14 += "${PN}-amdgpu-license"
823RDEPENDS:${PN}-amdgpu-navi21 += "${PN}-amdgpu-license"
824RDEPENDS:${PN}-amdgpu-navi22 += "${PN}-amdgpu-license"
825RDEPENDS:${PN}-amdgpu-navi23 += "${PN}-amdgpu-license"
826RDEPENDS:${PN}-amdgpu-navi24 += "${PN}-amdgpu-license"
827RDEPENDS:${PN}-amdgpu-navi31 += "${PN}-amdgpu-license"
828RDEPENDS:${PN}-amdgpu-navi32 += "${PN}-amdgpu-license"
829RDEPENDS:${PN}-amdgpu-oland += "${PN}-amdgpu-license"
830RDEPENDS:${PN}-amdgpu-polaris10 += "${PN}-amdgpu-license"
831RDEPENDS:${PN}-amdgpu-polaris11 += "${PN}-amdgpu-license"
832RDEPENDS:${PN}-amdgpu-polaris12 += "${PN}-amdgpu-license"
833RDEPENDS:${PN}-amdgpu-raven += "${PN}-amdgpu-license"
834RDEPENDS:${PN}-amdgpu-rembrandt += "${PN}-amdgpu-license"
835RDEPENDS:${PN}-amdgpu-renoir += "${PN}-amdgpu-license"
836RDEPENDS:${PN}-amdgpu-stoney += "${PN}-amdgpu-license"
837RDEPENDS:${PN}-amdgpu-tonga += "${PN}-amdgpu-license"
838RDEPENDS:${PN}-amdgpu-topaz += "${PN}-amdgpu-license"
839RDEPENDS:${PN}-amdgpu-vega10 += "${PN}-amdgpu-license"
840RDEPENDS:${PN}-amdgpu-vega12 += "${PN}-amdgpu-license"
841RDEPENDS:${PN}-amdgpu-misc += "${PN}-amdgpu-license"
722 842
723# For lontium 843# For lontium
724LICENSE:${PN}-lt9611uxc = "Firmware-Lontium" 844LICENSE:${PN}-lt9611uxc = "Firmware-Lontium"
@@ -1775,6 +1895,7 @@ RDEPENDS:${PN} += "${PN}-whence-license"
1775# Make linux-firmware-ibt depend on all of the split-out ibt packages. 1895# Make linux-firmware-ibt depend on all of the split-out ibt packages.
1776# Make linux-firmware-ath10k depend on all of the split-out ath10k packages. 1896# Make linux-firmware-ath10k depend on all of the split-out ath10k packages.
1777# Make linux-firmware-ath11k depend on all of the split-out ath11k packages. 1897# Make linux-firmware-ath11k depend on all of the split-out ath11k packages.
1898# Make linux-firmware-amdgpu depend on all of the split-out amdgpu packages.
1778python populate_packages:prepend () { 1899python populate_packages:prepend () {
1779 firmware_pkgs = oe.utils.packages_filter_out_system(d) 1900 firmware_pkgs = oe.utils.packages_filter_out_system(d)
1780 d.appendVar('RRECOMMENDS:linux-firmware', ' ' + ' '.join(firmware_pkgs)) 1901 d.appendVar('RRECOMMENDS:linux-firmware', ' ' + ' '.join(firmware_pkgs))
@@ -1790,6 +1911,9 @@ python populate_packages:prepend () {
1790 1911
1791 ath11k_pkgs = filter(lambda x: x.find('-ath11k-') != -1, firmware_pkgs) 1912 ath11k_pkgs = filter(lambda x: x.find('-ath11k-') != -1, firmware_pkgs)
1792 d.appendVar('RRECOMMENDS:linux-firmware-ath11k', ' ' + ' '.join(ath11k_pkgs)) 1913 d.appendVar('RRECOMMENDS:linux-firmware-ath11k', ' ' + ' '.join(ath11k_pkgs))
1914
1915 amdgpu_pkgs = filter(lambda x: x.find('-amdgpu-') != -1, firmware_pkgs)
1916 d.appendVar('RRECOMMENDS:linux-firmware-amdgpu', ' ' + ' '.join(amdgpu_pkgs))
1793} 1917}
1794 1918
1795# Firmware files are generally not ran on the CPU, so they can be 1919# Firmware files are generally not ran on the CPU, so they can be