surface-arm64: add Snapdragon X Elite profile (Surface Laptop 7, arm64, upstream kernel, TPM enrollment)#2
Open
corning-croak-cable wants to merge 15 commits into
Open
Conversation
…t Fedora package name)
Signed-off-by: foil-copy-overrate <foil-copy-overrate@duck.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Surface ARM64 - Snapdragon X Elite (Surface Laptop 7)
Adds a
surface-arm64mkosi profile producing bootable ParticleOS images forthe Microsoft Surface Laptop 7 (Snapdragon X Elite / x1e80100, arm64).
Scope
Files
Design decisions (see ADR.md)
1. Upstream kernel (no linux-surface)
The
x1e80100-microsoft-romulus13.dtsandromulus15.dtsdevice trees are mergedupstream since kernel 6.12. Fedora rawhide aarch64 ships them as part of
kernel-core.linux-surface provides no aarch64 packages, so patched kernel is not an option.
Trade-off accepted: camera (MIPI/IPU6) and full audio not functional until upstreamed.
Source: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/x1e80100-microsoft-romulus13.dts
2.
SignExpectedPcr=no(overrides rootSignExpectedPcr=yes)The Qualcomm fTPM on X Elite is not available during the initrd phase when the
kernel attempts PCR measurements for UKI hash policy. This causes a boot-time hang
or enrollment failure.
Disabling PCR-prediction signing keeps disk encryption working (tpm2-tools + tpm_crb)
without binding to boot state. Weaker policy, but the image boots.
Source: community testing; linux-surface/linux-surface#1590
3. No MokManager -
sbctlfirstboot + direct UEFI db enrollmentSurface UEFI enforces NX (No-Execute) mode in the firmware environment.
Most current MokManager builds allocate executable memory without NX-compatible APIs,
causing a black screen hang at the Microsoft logo when key enrollment is triggered.
ParticleOS already avoids this: UKI + systemd-boot with no shim means MokManager
is never invoked. The
surface-sb-enroll.servicefirstboot unit:sbctl create-keysto generate PK/KEK/db signing keysParticleOS-PK.cer(DER format) for UEFI enrollment/var/lib/surface-sb-enroll/ENROLL_SECURE_BOOT.mdThe user then enrolls the Platform Key directly in Surface UEFI (no MokManager, no shim).
Source: linux-surface/linux-surface#1590
4.
SuspendState=freeze(s2idle only)Snapdragon X Elite does not expose S3 (suspend-to-RAM) on Linux via PSCI/ACPI.
Setting
mem_sleep_default=deep(used in the x86surfaceprofile) would fail silently.Build commands
Hardware status (kernel 6.15+)