Skip to content

_laptop: add Microsoft Surface Pro 12in (1st Ed., X1P42100) - #8

Open
franzelverbier wants to merge 1 commit into
aarch64-laptops:mainfrom
franzelverbier:add-surface-pro-12in
Open

_laptop: add Microsoft Surface Pro 12in (1st Ed., X1P42100)#8
franzelverbier wants to merge 1 commit into
aarch64-laptops:mainfrom
franzelverbier:add-surface-pro-12in

Conversation

@franzelverbier

Copy link
Copy Markdown

Adds a _laptop entry for the Microsoft Surface Pro 12in (1st Ed.) — Snapdragon X Plus,
X1P42100, board compatible microsoft,surface-pro-12in. It was not represented here.

There is no mainline support for this device, so every status is Branch: it runs on
linux-next plus Harrison van der Byl's patches
and a series carried at
surface-pro-12-linux.

Worth a look: virtualisation is Branch, not N

EL2 + KVM works, with nested virtualisation, via slbounce
(Qualcomm Secure Launch). A Windows 11 ARM64 guest runs under KVM on the device.

Two comments carry warnings rather than status

Both cost days here, and both are the kind of thing that belongs in a table rather than
scattered across forum threads:

  • Wi-Fi at EL2 needs the PCIe SMMUv3 (iommu@15400000) set to status = "okay"; the
    shipped Windows device tree leaves it "reserved", and no MSI is delivered at all until
    it is fixed. The trap: arm-smmu.force_stage=1 belongs to the SMMUv1/v2 driver and
    never touches the SMMUv3, so it cannot be used to rule it out — I filed exactly that
    false negative and lost days to it.

  • Virtualisation depends entirely on the tcblaunch.exe version. Only 24H2 RTM
    26100.1742 works here; a 23H2 and a Canary build both fail with no symptom other than the
    absence of the green banner under sltest. And sltest.efi requires the path as an
    argument — without one it prints its usage and returns, which looks exactly like a failed
    transition.

Audio at EL2 has its own note: TrustZone refuses the PAS service once Linux owns EL2, so the
DSPs are started from UEFI before ExitBootServices with
qebspil and then attached by the kernel rather
than started.

One thing I could not verify

I was unable to render the page locally: _layouts/laptop.md does
{% include layout_laptop.liquid %}, but _includes/ only contains status.liquid.
layout_laptop.liquid does not exist on main and, as far as I can tell, never has —
git log --all -- _includes/layout_laptop.liquid returns nothing, and the minima theme
does not provide it.

If that is right, the three existing _laptop pages cannot render either, and this is a
pre-existing issue rather than something introduced here. I may well be missing something
about the build; happy to be corrected, and happy to adjust the entry to whatever format the
refactor on rsilva/change-layout-information settles on.

Field values follow _includes/status.liquid, so Branch maps to status-branch.

Snapdragon X Plus, compatible microsoft,surface-pro-12in. No mainline support
yet -- everything runs on an out-of-tree tree, so all statuses are "Branch".

Notable: virtualisation works. EL2 + KVM via slbounce, with nested virt and a
Windows 11 ARM64 guest running under KVM.

Two entries carry warnings that cost days of debugging and are worth having in
the table rather than in a forum post:

- Wi-Fi at EL2 needs the PCIe SMMUv3 set to "okay"; the shipped Windows device
  tree leaves it "reserved". And arm-smmu.force_stage=1 belongs to the SMMUv1/v2
  driver, so it cannot be used to rule the SMMUv3 out.

- Virtualisation depends entirely on the tcblaunch.exe version, whose only
  failure symptom is the absence of the green banner under sltest.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant