Skip to content

Add wolfTrust AArch64 support with QEMU virt and Versal ports - #29

Open
aidangarske wants to merge 469 commits into
mainfrom
wolfTrust-dev2
Open

aidangarske wants to merge 469 commits into
mainfrom
wolfTrust-dev2

Conversation

@aidangarske

@aidangarske aidangarske commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Adds AArch64 (Cortex-A) support to wolfTrust.

  • EL3 monitor: SMCCC 1.2, PSCI 1.1, FF-A SPMD
  • S-EL1 SPMC running the FF-M core with Secure Partitions at S-EL0
  • FF-A 1.2: discovery, direct and indirect messaging, notifications, interrupts, memory share/lend/donate with fragmentation
  • FF-A power management messages: the SPMD tells the SPMC of every CPU_SUSPEND, CPU_OFF, SYSTEM_OFF and SYSTEM_RESET and completes it only on SUCCESS
  • PSA client for the Normal world over FF-A
  • Ports: QEMU virt (GICv2 and GICv3) and xlnx-versal-virt
  • Both crypto engines (native, hsm)
  • FF-M isolation level 3 on QEMU virt: a private keystore band each for vault, crypto and attestation, interrupt and peripheral ownership, SPM stack guard, SVC, FP and execute-never hardening
  • Shared AArch64 level 3 layer in port/common/aarch64 (layout, platform hooks, layout tool), gated by WT_ISOLATION_LEVEL, so a new board supplies only its addresses
  • QEMU twins of the M33MU isolation negatives (bandneg, restartneg, svcneg, fpneg, mspovfneg, xnneg, manifestneg2/3, periphspneg, hsmpinneg, devattestqcbor) with a required level 3 scenario set
  • Host suites, QEMU scenario runner, Normal-world test payloads, CI matrix
  • Arm FF-A ACS harness with recorded spec patches
  • Docs: porting (level 3 required for new ports), FF-A compatibility register, testing, Cortex-A level 3 claim

Induced by merge into this branch

Closes #42, #43, #44, #66, #67, #68, #69, #70

DEFERRED

Copilot AI lite review requested due to automatic review settings September 28, 2026 20:43
@aidangarske aidangarske changed the title Add the AArch64 TF-A replacement: EL3 monitor, S-EL1 SPMC, and S-EL0 partitions over FF-A 1.2 Add wolfTrust AArch64 support with QEMU virt and Versal ports Sep 28, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot wasn't able to review this pull request because it exceeds the maximum number of lines (20,000). Try reducing the number of changed lines and requesting a review from Copilot again.

@aidangarske
aidangarske marked this pull request as draft September 28, 2026 21:08
@aidangarske aidangarske self-assigned this Sep 28, 2026
@aidangarske
aidangarske force-pushed the wolfTrust-dev2 branch 2 times, most recently from 7388dac to a609db0 Compare September 30, 2026 16:52
@aidangarske aidangarske added ci:aarch64 Run the full AArch64 QEMU matrix on the PR (core AArch64 change) ci:all Run every M33MU scenario of every port on the PR (core change) labels Sep 30, 2026
@aidangarske
aidangarske marked this pull request as ready for review October 3, 2026 19:22
@aidangarske
aidangarske requested review from danielinux and wolfSSL-Fenrir-bot and removed request for danielinux October 3, 2026 19:28
wolfSSL-Fenrir-bot

This comment was marked as low quality.

@aidangarske
aidangarske requested a review from danielinux October 6, 2026 15:59
aidangarske and others added 21 commits November 5, 2026 13:04
Execute TPM commands synchronously and complete PKCS11 requests without a worker or polling. Remove the extra provider firmware builds and retain native/HSM selection inside the existing Secure partitions. Share stateless crypto code while keeping callback, RNG, initialization and PIN policy state private.
Add SPM-mediated PKCS#11 and TPM 2.0 interfaces
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:aarch64 Run the full AArch64 QEMU matrix on the PR (core AArch64 change) ci:all Run every M33MU scenario of every port on the PR (core change)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document the enforced isolation boundaries and state the level 3 claim

5 participants