Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 2 additions & 0 deletions kits/bottlerocket-kernel-kit/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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" }
Expand Down
1 change: 1 addition & 0 deletions packages/kmod-6.12-amdgpu/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.rpm
20 changes: 20 additions & 0 deletions packages/kmod-6.12-amdgpu/COPYING
Original file line number Diff line number Diff line change
@@ -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.
20 changes: 20 additions & 0 deletions packages/kmod-6.12-amdgpu/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can skip this and treat it like a normal source.


[build-dependencies]
kernel-6_12 = { path = "../kernel-6.12" }
72 changes: 72 additions & 0 deletions packages/kmod-6.12-amdgpu/kmod-6.12-amdgpu.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
%global kernel_major 6.12
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can move this into the kernel-6.12 build so its just included with the rest of the kernel built in one shot.

%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}
22 changes: 22 additions & 0 deletions packages/linux-firmware-amd/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[package]
name = "linux-firmware-amd"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had expected this to just be a sub-package of linux-firmware instead of a new top level package. Can we move this logic into the existing package?

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
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
Xm/7ct1BV6w7XEIFCedi2sSDTDckboU=
=YqbJ
-----END PGP PUBLIC KEY BLOCK-----
43 changes: 43 additions & 0 deletions packages/linux-firmware-amd/linux-firmware-amd.spec
Original file line number Diff line number Diff line change
@@ -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}/*
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we want everything, I think there is a specific set of firmware we want that is only amdgpu related.

%license LICENCE.* LICENSE.* GPL* WHENCE
%{_cross_attribution_file}
Loading