diff --git a/Cargo.lock b/Cargo.lock index d8a0354a..1302edbe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,10 +11,12 @@ dependencies = [ "kernel-6_12", "kmod-6_1-nvidia-r570", "kmod-6_1-nvidia-r580", + "kmod-6_12-amdgpu", "kmod-6_12-nvidia-r570", "kmod-6_12-nvidia-r580", "libkcapi", "linux-firmware", + "linux-firmware-amd", "microcode", "nvidia-migmanager", "nvlsm", @@ -53,6 +55,13 @@ dependencies = [ "kernel-6_1", ] +[[package]] +name = "kmod-6_12-amdgpu" +version = "0.1.0" +dependencies = [ + "kernel-6_12", +] + [[package]] name = "kmod-6_12-nvidia-r570" version = "0.1.0" @@ -75,6 +84,10 @@ version = "0.1.0" name = "linux-firmware" version = "0.1.0" +[[package]] +name = "linux-firmware-amd" +version = "0.1.0" + [[package]] name = "microcode" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 896f2444..495d6f05 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,11 +7,13 @@ members = [ "packages/kernel-6.12", "packages/kmod-6.1-nvidia-r570", "packages/kmod-6.1-nvidia-r580", + "packages/kmod-6.12-amdgpu", "packages/kmod-6.12-nvidia-r570", "packages/kmod-6.12-nvidia-r580", "packages/nvidia-migmanager", "packages/nvlsm", "packages/linux-firmware", + "packages/linux-firmware-amd", "packages/microcode", "packages/libkcapi", "packages/shim", diff --git a/kits/bottlerocket-kernel-kit/Cargo.toml b/kits/bottlerocket-kernel-kit/Cargo.toml index 1fb6455d..2faed7b8 100644 --- a/kits/bottlerocket-kernel-kit/Cargo.toml +++ b/kits/bottlerocket-kernel-kit/Cargo.toml @@ -17,11 +17,13 @@ kernel-6_1 = { path = "../../packages/kernel-6.1" } kernel-6_12 = { path = "../../packages/kernel-6.12" } kmod-6_1-nvidia-r570 = { path = "../../packages/kmod-6.1-nvidia-r570" } kmod-6_1-nvidia-r580 = { path = "../../packages/kmod-6.1-nvidia-r580" } +kmod-6_12-amdgpu = { path = "../../packages/kmod-6.12-amdgpu" } kmod-6_12-nvidia-r570 = { path = "../../packages/kmod-6.12-nvidia-r570" } kmod-6_12-nvidia-r580 = { path = "../../packages/kmod-6.12-nvidia-r580" } nvidia-migmanager = { path = "../../packages/nvidia-migmanager" } nvlsm = { path = "../../packages/nvlsm" } linux-firmware = { path = "../../packages/linux-firmware" } +linux-firmware-amd = { path = "../../packages/linux-firmware-amd" } microcode = { path = "../../packages/microcode" } libkcapi = { path = "../../packages/libkcapi" } shim = { path = "../../packages/shim" } diff --git a/packages/kmod-6.12-amdgpu/.gitignore b/packages/kmod-6.12-amdgpu/.gitignore new file mode 100644 index 00000000..e7a9c134 --- /dev/null +++ b/packages/kmod-6.12-amdgpu/.gitignore @@ -0,0 +1 @@ +*.rpm diff --git a/packages/kmod-6.12-amdgpu/COPYING b/packages/kmod-6.12-amdgpu/COPYING new file mode 100644 index 00000000..a635a38e --- /dev/null +++ b/packages/kmod-6.12-amdgpu/COPYING @@ -0,0 +1,20 @@ +The Linux Kernel is provided under: + + SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note + +Being under the terms of the GNU General Public License version 2 only, +according with: + + LICENSES/preferred/GPL-2.0 + +With an explicit syscall exception, as stated at: + + LICENSES/exceptions/Linux-syscall-note + +In addition, other licenses may also apply. Please see: + + Documentation/process/license-rules.rst + +for more details. + +All contributions to the Linux Kernel are subject to this COPYING file. diff --git a/packages/kmod-6.12-amdgpu/Cargo.toml b/packages/kmod-6.12-amdgpu/Cargo.toml new file mode 100644 index 00000000..79f6c850 --- /dev/null +++ b/packages/kmod-6.12-amdgpu/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "kmod-6_12-amdgpu" +version = "0.1.0" +edition = "2021" +publish = false +build = "../build.rs" + +[package.metadata.build-package] +package-name = "kmod-6.12-amdgpu" + +[lib] +path = "../packages.rs" + +[[package.metadata.build-package.external-files]] +url = "https://repo.radeon.com/amdgpu/30.10.2/el/10/main/x86_64/amdgpu-dkms-6.14.14-2226257.el10.noarch.rpm" +sha512 = "ffe054d3673f729786a32cf8a67d69b942348eb12d800073a7efc873fcba8a760485a003ed1bfb5273eda5f7d514263c80a97243371d36bf69ea986137f8c41e" +force-upstream = true + +[build-dependencies] +kernel-6_12 = { path = "../kernel-6.12" } diff --git a/packages/kmod-6.12-amdgpu/kmod-6.12-amdgpu.spec b/packages/kmod-6.12-amdgpu/kmod-6.12-amdgpu.spec new file mode 100644 index 00000000..6e8eefb3 --- /dev/null +++ b/packages/kmod-6.12-amdgpu/kmod-6.12-amdgpu.spec @@ -0,0 +1,72 @@ +%global kernel_major 6.12 +%global kernel_sources %{_cross_usrsrc}/kernels/%{kernel_major} +%global _cross_kver %{kernel_major}.55 +%global _cross_kmoddir %{_cross_libdir}/modules/%{_cross_kver} +%global _ko ko + +Name: %{_cross_os}kmod-6.12-amdgpu +Version: 30.10 +Release: 1%{?dist} +Summary: AMD GPU drivers for the 6.12 kernel +License: GPL-2.0 WITH Linux-syscall-note +URL: https://www.amd.com/ + +Source0: https://repo.radeon.com/amdgpu/30.10.2/el/10/main/x86_64/amdgpu-dkms-6.14.14-2226257.el10.noarch.rpm +Source1: COPYING + +BuildRequires: %{_cross_os}kernel-6.12-devel +Requires: %{_cross_os}kernel-6.12 +Requires: %{_cross_os}linux-firmware-amd + +%description +%{summary}. + +%prep +# Extract DKMS source from RPM +rpm2cpio %{S:0} | cpio -idmu './usr/src/amdgpu-*' +find usr/src/ -mindepth 1 -maxdepth 1 -type d -exec mv {} amdgpu \; +rm -r usr + +# Apply Bottlerocket DKMS configuration +pushd amdgpu + +# Configure DKMS +KERNELVER=%{_cross_kver} amd/dkms/configure --with-linux=%{kernel_sources} + +popd + +%build +pushd amdgpu + +# Build using the DKMS Makefile with static configuration +make modules KERNELVER=%{_cross_kver} kernel_build_dir=%{_cross_usrsrc}/kernels/6.12 CC=%{_cross_target}-gcc ARCH=%{_cross_karch} CROSS_COMPILE=%{_cross_target}- EXTRA_CFLAGS=-DPACKAGE_VERSION=\\\"%{version}\\\" + +popd + +%install +# Install license file +install -d %{buildroot}%{_cross_licensedir}/%{name} +install -p -m 0644 %{S:1} %{buildroot}%{_cross_licensedir}/%{name}/ + +# Install AMD GPU kernel modules to correct location +install -d %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu +install -p -m 644 amdgpu/amd/amdkcl/amdkcl.ko %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/ +install -p -m 644 amdgpu/ttm/amdttm.ko %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/ +install -p -m 644 amdgpu/amddrm_ttm_helper.ko %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/ +install -p -m 644 amdgpu/amddrm_buddy.ko %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/ +install -p -m 644 amdgpu/amddrm_exec.ko %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/ +install -p -m 644 amdgpu/scheduler/amd-sched.ko %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/ +install -p -m 644 amdgpu/amd/amdxcp/amdxcp.ko %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/ +install -p -m 644 amdgpu/amd/amdgpu/amdgpu.ko %{buildroot}%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/ + +%files +%license %{_cross_licensedir}/%{name}/COPYING +%{_cross_attribution_file} +%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/amdkcl.%{_ko} +%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/amdttm.%{_ko} +%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/amddrm_ttm_helper.%{_ko} +%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/amddrm_buddy.%{_ko} +%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/amddrm_exec.%{_ko} +%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/amd-sched.%{_ko} +%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/amdxcp.%{_ko} +%{_cross_kmoddir}/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.%{_ko} diff --git a/packages/linux-firmware-amd/Cargo.toml b/packages/linux-firmware-amd/Cargo.toml new file mode 100644 index 00000000..4ed83e93 --- /dev/null +++ b/packages/linux-firmware-amd/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "linux-firmware-amd" +version = "0.1.0" +edition = "2021" +publish = false +build = "../build.rs" + +[package.metadata.build-package] +package-name = "linux-firmware-amd" + +[lib] +path = "../packages.rs" + +[[package.metadata.build-package.external-files]] +url = "https://www.kernel.org/pub/linux/kernel/firmware/linux-firmware-20251021.tar.xz" +sha512 = "5352f6a97325f2209961383d041e6650c8f755fb4b68a72aaff2fb30a4304811e7ed9e2fd8cd435be82db73650034e238eba629e49f11abd37f845d8ecececdb" +force-upstream = true + +[[package.metadata.build-package.external-files]] +url = "https://www.kernel.org/pub/linux/kernel/firmware/linux-firmware-20251021.tar.sign" +sha512 = "05587b4307e75e28efafe15662fa520b94f20691cfd2da1a6dfe38f6037cd46ef0d626a74cc004dd3ebaf3173364f54ddc829fa564700d62d64df1452ae8ff4e" +force-upstream = true diff --git a/packages/linux-firmware-amd/gpgkey-4CDE8575E547BF835FE15807A31B6BD72486CFD6.asc b/packages/linux-firmware-amd/gpgkey-4CDE8575E547BF835FE15807A31B6BD72486CFD6.asc new file mode 100644 index 00000000..5f9ace98 --- /dev/null +++ b/packages/linux-firmware-amd/gpgkey-4CDE8575E547BF835FE15807A31B6BD72486CFD6.asc @@ -0,0 +1,79 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBE6HwcoBEADEsPaBiaRbGU2GLvWupHRLz7weXiVk21bFrh7lno2YPtvOqDR9 +TP4BIzk2+53AhWadF0dhzKI1NeG2od8fofEHMMbI467/7gzEB78Rv4+3Srwz1Zu0 +bMFJPcdtAvBaJvHB6wP6mCl0eGCFIX9dN2ktr3GW6Z+mxxCeD+7Sm43Lt7PXU6Ff +W9sMmwxgV/ytXGEsZjM0MIcxUpTKX1WAEAK6Sjlv5No7tphHGR6B4eWWRXTB+CUE +gYsVRfx0LI1cHiZCWYb5P65iy29IxSzy/8/jcTVuFKUyVMxNolfzF9HonL7iRCel +oGDRGcCSPhftuCVC6dfBT1/XDHC9LuYVVfJQ1lT/yooBDkWmFoT3HWW2OjCECCVe +wsTS0C42xGpNab6iytaG2L6AWZh27XMi4V9rGGjaskmbpa4Inu3/SIClxXqc68yz +u1MRwViH09mcQIk7PlpQEGVaNCi5/1/on78sqUFrM3RNVMP3vNWtpP3Pjhpi2uQm +nsheeOZ8A1kaQ33lg7aNnPO4FKk1Fs0C8/BCJsiaFZW7vKWkus0u3hubavUrfBaT +6nCUWijdKVzWdrlj4GAEHWnsDBYBqAXjOLwPX7LOIGFy9+gjdgCVY84YTQsKP1mF +cp7b7ZFI6MnTnZnlKdk3C4la4LFhWGRV6ULOvhDtyA9rZpYIGffMCd6f6QARAQAB +tB9Kb3NoIEJveWVyIDxqd2JveWVyQGtlcm5lbC5vcmc+iQJOBBMBCAA4FiEETN6F +deVHv4Nf4VgHoxtr1ySGz9YFAmQsF2YCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgEC +F4AACgkQoxtr1ySGz9amHw/+M09gNDF2H0uh/6UOhf9HD1l6DrDY9Av51Ben3VYz +e68zqGADIWhdSGQUUPKC5oG/vK7GqqBd0ZipkDroxgV8f2eWFfDg5IajRFr45nLs +5rGMWB3Xp3tvVPfogfnuFu5RJcQuODu4wIk0x9nX/z9YRsQbofrsS3WHJGgZTl1L +tIN6/FuCMarnEF+cSCLxYAUF/rEUkJpVw8x9khBFf1jdHJDCga2Q29FuAXWrNaDd +inc6jyN4Xuh/+KOtcr0ggvHplzi8y+neGY4OKk3GszIojbYI1z/xniKl3N8Sb5zC +u7ZEGE2F6WsijhdrtSl7iJPAUCY/FMk8z4SJVKKelxpIB/ggUl6O90YWDgmPepkk +YJMGxXAx/qgnPeBPKhuZotyUM/HmbA8+GSMuX9cMpUEYGDEy5EHwdER1kFldGD2m +h8VSy/oasjSuO1UPkS+dZAHIvVVRHI7Fu2JMbYmuUn3xdkHh4hGgkOPzYvVBh6MB +w/DJkb3oNA1aA2nSyOrpZ2M/9i7qO7+bqqktr1+ns0f4C07dqgHAROhoOyrRDnOW +6nmAeNjxUMjFyVBfx8pbEdCbo64vPwQihJydV2P9fi8P1o4PpTh1aINPsterhGyh +QAcFjKBwAO3YzCfwhPOzHi0fOE377oo4B6RQDmtUgeBWSPWnSoAlIjsYDumNoHd5 +PpK0Jkpvc2ggQm95ZXIgPGp3Ym95ZXJAZmVkb3JhcHJvamVjdC5vcmc+iQI4BBMB +AgAiBQJOjbQ3AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCjG2vXJIbP +1iEFEAC9HKFw9obHCATY4yIfHV8+/W17qBkhyL/6jo1JWKacd4BxDRir3nP8OyCt +jbJ9f9XyRwg58ZDbjbeUPwCIU8a6OyMm61hi4HcrVaQTkflT1ZNN5uZXdxCsGPLr +SwvHdPbhBwtXNUk/7H087NU1zZf4Sv3rVxEhUpqVAuKPC+mQW7IC4wQPxo24XBRl +BfknJxuiOpuiCwD5N1Vcoqg/d4CVLiM3bnGQUyjDBJML6mTyJ7iMR96nBU8bdAxL +2AkcTS0CIQq6j+7EvlcLhWV4AsCGmVj6Wfs1lXP/vi4ZkQJkVdoBuViI8MVthh3o +2xS4QFiK4Opi48Lg7Ix75PHN0jr7laZojgrEgFv/U8aixc+piOVXmH30TTlFsZSl +44Kp/s7K9Ukgti5svmm9z1teDUZAIlZsVaATPHb2Ewgog/4SHLr7U/AGupKCEf/o +MM10IrS+6ID6o/A51h90DT7vR6wlszQ8Ip2djM1oVuA38nnXnQR8GPVIf15ZOPSR +KbR+VBiPZKR6Qjdtv7dvRdoH5vpvIvD7GoSkAdqY1WPlgDUKiCEIO2+iWOn9fG+O +00UxhVvmKHw+TFPimS7y5C8NL+TQYZp7rA0o1zOckyKajTCyzZXmoHGrCqmwCXEk +ncS8BNtDjjJo5bNpn1Xi6z4edunSaLsY0tnEVB74sChN3ZhbObQeSm9zaCBCb3ll +ciA8amJveWVyQHJlZGhhdC5jb20+iQI4BBMBAgAiBQJOibPYAhsDBgsJCAcDAgYV +CAIJCgsEFgIDAQIeAQIXgAAKCRCjG2vXJIbP1n14D/9iy/cBm55cRa8CM0gxhXQx +uKJpb1+yO0YywC3mg1m3E4FsxephMjqcKACSXp1PLlFbOgQg3K2NrQFvirPS8YPW +8YPfW1PhvnBA0Iik5vZjXyhdXzEuLsZraLoMu3u5BJJ3M/Vg4EmLYJiM0pndewat +nfBrmb/AZlllyjhhLIUparuOqYSutvGclzWOn+4pkN4nhkK/YjuCwsic+t8Lv2pl +BfxTTlxrWPnfkKdpSv4orVAEuiZwFkaoFrfHqPOP1qyjBWXrHfQPoqDoTVxzIn+F +TgnLuAQqU9LDMsLRHxz+dMfZubZUDul9tQndgM/nC4B3CGAil6BE4/Ad9fNao8eK +aWuLwnOBR2PHbThHvOLjfRfNcfH/BZaOhlBzk7M7vxrIIHv/2B1M5hkpepaeQNaD +O1gsgMzuFIYcvilWESW8V23W/cA95PsdneucAAwHeiJX7JxjR8wBTyKO7vIBBozw +WqS7eevkxyVd1qcyD/0w9JFl+zYlRLyo0LA4aK+eN5LjGhgC3+WyeHaZmF+ikq0y +I/FjiSIH71sm9RCwvnKST5HTkGjFypE5vQ7Un8Ned787/h1Y3dZvc/tpLztcv4Vp +tJq+uy3Oveqbup+Y38nbkxUPNmMZPXgPqRVmJ8Dl79h6KUcee7GAYI6GTLfE1YvT +CL9aihtrVOulNCNIPeJsOLQfSm9zaCBCb3llciA8andib3llckByZWRoYXQuY29t +PokCOAQTAQIAIgUCTomzwgIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ +oxtr1ySGz9b87g/9E9lm2S8GiSQcqMmrreB405EyvbY2voozTA1UwBhgOzMsLOSb +ChzUg0ZhaFymacnEJY5I9TI9gt6SCPlMDR5iuZu4i9qO0dYEzUz7vJaVmJgZNZwW +j8uyWFzPQ+oAW34a+3LgnyuM1n1+wL8OkuzVjkAp/Ej+MiqdfLIdmejR5g/a0nAe +NQlCnrxQyG/zJ9h9taYHLzj4msxrYd5M4+2JbsBLLNx02/HM/qs4uR53hg4cELdL +8hh9CxGVZKA/IU4IZt7DbOhloNuRVXjJcd+367tp17gPUssbgVU71O6q4cb1RuQZ +UuFvKDK0yWugDikkRL7WplVTM2JT316V6DRce1m2RGBojklleK20Rwn4zJFxITBj +gP489vHFrMHQT/4+pKd2EokxNl2C3IIpDeWvRL4hDWzN06kWLun7whZLfUaqOkIV +t2uAFgGnOU81wTk+/INaI5NaTFEX3ZSTfKge+KQBO4tUx+vLH90PaZbPz3CHUlF3 +3gLlgcs9y+4E3CtUYq7VZzkkExsfP4YrilpH0Bfr8v5EtjG/W0E4Yp1kYWnQbYEQ +8JhxBF5lKyfNrH9joP6lBTCfyk6iV3w9BOs2R52+utXDAcnkQf1agHkNLDYhvh6b +6/GidXc29O/SfErNuso/D2Gbds0aTqsKovN+r4yQ9pT0mCKHqYo8P+4Pnqy0Hkpv +c2ggQm95ZXIgPGp3Ym95ZXJAZ21haWwuY29tPokCOAQTAQIAIgIbAwYLCQgHAwIG +FQgCCQoLBBYCAwECHgECF4AFAk6Ia58ACgkQoxtr1ySGz9ZXfw/8D9PqabtHKoHU +mNUY0SDRpRGdr/GryUu/y1JyCH7fEHRtUr/czK7vhRlC0C5FkjPGs1Uk5Clh8eEa +xqXapT5HXFyJCRaSZnXnxcES1gbwA83RagL1bhJg1tzkyfLuPFsaLz/xIlzzYyNR +iVyFowHGmH+gao3KpmjIVTESz/Cow989ABg9mgDyCsSP/1E8czr2AQ4sFHCp9gUj +aorON8gldwKzdueTe9Sm+mVbaMbnVbu7Wab6UH8lLWx7kFy+JSM/XXcyDtVu2nDd +f+2YJum7Uu6rRymzfdLFR0jQ2YTLypKy8ticUuhG4qKplea6Jep20WRftkEFwKF8 +IFjiLRjTRbO0rAmp+svGC29AOJKp6kbpEpcnfnQuMjQohhhiyYjbmRU7v0VH6Fwz +FRbY1LPJfjCVJzNNADMKz4gXfugOyKBoATY+3aFCC3aWynEubnM4+n2ferlAb8di +sBT/XYolypJcybODb/NgoHO2xtSFsrRqEPwIBlHieEgms0RJJoUYJ87V3jP5xcPV +ZqbBAseiToj/8nE31oDqQdA8iTpL47Oehe3ytoibkXbsFKLNVP7JUv0xFLkbcr0S +01M7pMptLUyxtf2Uhw5nTZ3YRJNmGmG0gsgACaT68yFVOJVhq4BBaxmGYKOKCUPX +Xm/7ct1BV6w7XEIFCedi2sSDTDckboU= +=YqbJ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/packages/linux-firmware-amd/linux-firmware-amd.spec b/packages/linux-firmware-amd/linux-firmware-amd.spec new file mode 100644 index 00000000..9ed4d490 --- /dev/null +++ b/packages/linux-firmware-amd/linux-firmware-amd.spec @@ -0,0 +1,43 @@ +%global debug_package %{nil} + +%global fwdir %{_cross_libdir}/firmware + +# Many of the firmware files have specialized binary formats that are not supported +# by the strip binary used in __spec_install_post macro. Work around build failures +# by skipping striping. +%global __strip /usr/bin/true + +Name: %{_cross_os}linux-firmware-amd +Version: 20251021 +Release: 1%{?dist} +Summary: AMD GPU firmware files for the Linux kernel +License: Redistributable +URL: https://www.kernel.org/ + +Source0: https://www.kernel.org/pub/linux/kernel/firmware/linux-firmware-%{version}.tar.xz +Source1: https://www.kernel.org/pub/linux/kernel/firmware/linux-firmware-%{version}.tar.sign +Source2: gpgkey-4CDE8575E547BF835FE15807A31B6BD72486CFD6.asc + +%description +%{summary}. + +%prep +%{gpgverify} --data=<(xzcat %{S:0}) --signature=%{S:1} --keyring=%{S:2} +%autosetup -n linux-firmware-%{version} -p1 + +%build + +%install +mkdir -p %{buildroot}/%{fwdir} +mkdir -p %{buildroot}/%{fwdir}/updates + +# Use zstd compression for firmware files to reduce size on disk. This relies on +# kernel support through FW_LOADER_COMPRESS (and FW_LOADER_COMPRESS_ZSTD for kernels >=5.19) +install -d %{buildroot}/%{fwdir} +./copy-firmware.sh --zstd --ignore-duplicates %{buildroot}/%{fwdir} + +%files +%dir %{fwdir} +%{fwdir}/* +%license LICENCE.* LICENSE.* GPL* WHENCE +%{_cross_attribution_file}