** Description changed:
[Impact]
- Enable DRTM (Dynamic Root of Trust for Measurement) on the linux-nvidia
kernel, giving Grace-based
- platforms hardware-measured boot-integrity
- attestation. Adds:
+ Enable DRTM (Dynamic Root of Trust for Measurement) on the linux-nvidia
kernel,
+ giving Grace-based platforms hardware-measured boot-integrity attestation.
Adds:
- ARM64 Secure Launch (DRTM): on `drtm=on` the kernel (as DLME) requests a
dynamic launch, measures ACPI/DTB/cmdline/initrd into the TPM (PCR 18),
validates the EFI systab/memory map, asserts SMMU DMA protection, and
disables
EFI runtime services.
- - Trusted KASLR: under launch, the linear-map and kernel-image KASLR are
seeded
- from the firmware TRNG (`TRNG_RND64`) instead of the attacker-visible FDT
seed.
- FIRME attestation driver (`nvidia_firme`): TSM report + measurement-register
backends (configfs/sysfs).
[Test Plan]
On DRTM-capable Grace/GB200 (TF-A/EL3 Secure Launch service + TPM):
- - Boot `drtm=on` and confirm the launch engaged: `dmesg | grep -i slaunch`
- shows `DRTM Secure Launch detected`, the ACPI/DTB/cmdline/initrd measurement
- chain, and `SMMU DMA protection verified`; `modprobe nvidia_firme` loads.
- - Boot without `drtm=on` → boots via the standard EFI stub (feature inert when
- not requested).
+ 1. Boot `drtm=on` and confirm the launch engaged: `dmesg | grep -i slaunch`
+ shows `DRTM Secure Launch detected`, the ACPI/DTB/cmdline/initrd
measurement
+ chain, and `SMMU DMA protection verified`; `modprobe nvidia_firme` loads.
+ 2. Boot without `drtm=on` → boots via the standard EFI stub (feature inert
when
+ not requested).
- Validated on Grace/GB200/GB300.
+ Validated on Grace/GB200/GB300
[Where problems could occur]
- - The Secure Launch code is gated behind the `drtm=on` command-line
parameter, so
- without it the kernel behaves as before. The configuration changes it
requires,
- though, apply to every arm64 build.
-
- - Trusted KASLR requires disabling memory hotplug (`MEMORY_HOTPLUG=n`), which
also
- disables the features built on it: ZONE_DEVICE, DAX and NVDIMM, HMM device
- memory, GPU shared virtual memory, PCI peer-to-peer DMA, VFIO DMABUF and
- virtio-mem. This is an intentional trade-off, limited to arm64; amd64 keeps
- memory hotplug.
-
- - The image also ships uncompressed (`EFI_ZBOOT=n`), adding about 48 MB to
`/boot`
- and the package per flavour, because GRUB on Grace can't load the
compressed one.
+ The Secure Launch code is gated behind the `drtm=on` command-line parameter,
so
+ without it the kernel behaves as before. The one change that applies to every
+ arm64 build regardless is the kernel image: it ships uncompressed
+ (`EFI_ZBOOT=n`), adding about 48 MB to `/boot` and the package per flavour.
[Other Info]
+
+ The trusted-KASLR patches (`ARM64_SECURE_LAUNCH_KASLR`) are included in the
+ series but left disabled: enabling them requires `MEMORY_HOTPLUG=n`, which is
+ incompatible with the coherent-memory and GPUDirect features on GB200/GB300.
+ Enabling the kernel-image KASLR without disabling hotplug needs a config split
+ (the image and linear-map variants currently share one Kconfig symbol) and is
+ deferred to a follow-up.
References:
- Arm DRTM Architecture (DEN0113) — dynamic-launch/DLME interface this
implements: https://developer.arm.com/documentation/den0113/latest/
- - Arm TRNG Firmware Interface (DEN0098) — SMCCC `TRNG_RND64`, trusted-entropy
- source for KASLR: https://developer.arm.com/documentation/den0098/latest/
+ - Arm TRNG Firmware Interface (DEN0098) — SMCCC `TRNG_RND64`, used by the
+ trusted-KASLR patches:
https://developer.arm.com/documentation/den0098/latest/
- Trusted Firmware-A DRTM service — firmware side that performs the launch:
https://trustedfirmware-a.readthedocs.io/en/latest/design_documents/drtm_poc.html
- ARM64 Secure Launch upstreaming (LPC 2024, TrenchBoot):
https://lpc.events/event/18/contributions/1814/attachments/1482/3132/arm_securelaunch_lpc_2024.pdf
** Description changed:
[Impact]
Enable DRTM (Dynamic Root of Trust for Measurement) on the linux-nvidia
kernel,
giving Grace-based platforms hardware-measured boot-integrity attestation.
Adds:
- ARM64 Secure Launch (DRTM): on `drtm=on` the kernel (as DLME) requests a
dynamic launch, measures ACPI/DTB/cmdline/initrd into the TPM (PCR 18),
validates the EFI systab/memory map, asserts SMMU DMA protection, and
disables
EFI runtime services.
- FIRME attestation driver (`nvidia_firme`): TSM report + measurement-register
backends (configfs/sysfs).
[Test Plan]
On DRTM-capable Grace/GB200 (TF-A/EL3 Secure Launch service + TPM):
1. Boot `drtm=on` and confirm the launch engaged: `dmesg | grep -i slaunch`
shows `DRTM Secure Launch detected`, the ACPI/DTB/cmdline/initrd
measurement
chain, and `SMMU DMA protection verified`; `modprobe nvidia_firme` loads.
2. Boot without `drtm=on` → boots via the standard EFI stub (feature inert
when
not requested).
Validated on Grace/GB200/GB300
[Where problems could occur]
The Secure Launch code is gated behind the `drtm=on` command-line parameter,
so
without it the kernel behaves as before. The one change that applies to every
arm64 build regardless is the kernel image: it ships uncompressed
(`EFI_ZBOOT=n`), adding about 48 MB to `/boot` and the package per flavour.
[Other Info]
The trusted-KASLR patches (`ARM64_SECURE_LAUNCH_KASLR`) are included in the
- series but left disabled: enabling them requires `MEMORY_HOTPLUG=n`, which is
- incompatible with the coherent-memory and GPUDirect features on GB200/GB300.
- Enabling the kernel-image KASLR without disabling hotplug needs a config split
- (the image and linear-map variants currently share one Kconfig symbol) and is
- deferred to a follow-up.
+ series but left disabled: enabling them requires `MEMORY_HOTPLUG=n`.
References:
- Arm DRTM Architecture (DEN0113) — dynamic-launch/DLME interface this
implements: https://developer.arm.com/documentation/den0113/latest/
- Arm TRNG Firmware Interface (DEN0098) — SMCCC `TRNG_RND64`, used by the
trusted-KASLR patches:
https://developer.arm.com/documentation/den0098/latest/
- Trusted Firmware-A DRTM service — firmware side that performs the launch:
https://trustedfirmware-a.readthedocs.io/en/latest/design_documents/drtm_poc.html
- ARM64 Secure Launch upstreaming (LPC 2024, TrenchBoot):
https://lpc.events/event/18/contributions/1814/attachments/1482/3132/arm_securelaunch_lpc_2024.pdf
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2161563
Title:
Enable ARM64 Secure Launch (DRTM)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia/+bug/2161563/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs