Skip to content

Feature: AARCH64 Single Copy - #264

Merged
Doug Flick (Flickdm) merged 5 commits into
microsoft:mainfrom
Flickdm:feat/onecrypto-aarch64-single-copy
Aug 3, 2026
Merged

Feature: AARCH64 Single Copy#264
Doug Flick (Flickdm) merged 5 commits into
microsoft:mainfrom
Flickdm:feat/onecrypto-aarch64-single-copy

Conversation

@Flickdm

@Flickdm Doug Flick (Flickdm) commented Jul 6, 2026

Copy link
Copy Markdown
Member

Description

This pull request introduces a new AARCH64 "single-copy" integration mode for OneCryptoPkg, enabling DXE to load the OneCrypto binary directly from StandaloneMM via MM communication, and updates documentation and build files to reflect this architecture. It adds new modules and protocols to support this mode, clarifies the packaging and loading flow, and updates references to dependencies.

AARCH64 Single-Copy Integration Mode

  • Added new DXE loader (OneCryptoLoaderDxeFromMm) and MM image provider (OneCryptoImageProviderStandaloneMm) modules to support fetching and loading OneCrypto from secure-world MM using EFI_MM_COMMUNICATION2_PROTOCOL. [1] [2] [3]
  • Introduced new GUIDs and message formats for image provider communication (OneCryptoImageProviderGuid.h, OneCryptoImageProviderMessage.h). [1] [2]
  • Updated documentation (Architecture.md, FAQs.md) to describe the new single-copy mode, detail the dual integration modes on AARCH64, and explain packaging and flow differences. [1] [2] [3] [4] [5] [6] [7]

Packaging and Build System Updates

  • Added a new GUID for a dedicated, LZMA-compressed OneCrypto container FV to support deterministic image location in the new mode (OneCryptoFileGuid.h).
  • Updated dependency references for MU_BASECORE in build scripts (CISettings.py, DriverBuild.py). [1] [2]

These changes enable more robust and space-efficient deployment of OneCrypto on AARCH64 platforms, especially those with secure/non-secure separation, and provide extensive documentation for integrators and developers.

For details on how to complete these options and their meaning refer to CONTRIBUTING.md.

  • Impacts functionality?
  • Impacts security?
  • Breaking change?
  • Includes tests?
  • Includes documentation?

How This Was Tested

Physical Platform and QemuArmVirtPkg

Integration Instructions

See OneCryptoPkg/Docs/Architecture.md

@mu-automation mu-automation Bot added language:python Pull requests that update Python code impact:non-functional Does not have a functional impact labels Jul 6, 2026
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch 2 times, most recently from 98f6e5b to 9997144 Compare July 7, 2026 00:08
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch 3 times, most recently from 16703b0 to 30dfc1e Compare July 15, 2026 00:07
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch 3 times, most recently from a9ffc48 to e83123d Compare July 23, 2026 19:06
@Flickdm Doug Flick (Flickdm) added this to the v1.0.2-OneCrypto milestone Jul 23, 2026
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch 7 times, most recently from bb878e3 to 8ab87fc Compare July 23, 2026 22:10
@Flickdm
Doug Flick (Flickdm) marked this pull request as ready for review July 23, 2026 22:27
@mu-automation mu-automation Bot added the type:documentation Improvements or additions to documentation label Jul 23, 2026
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch from 8ab87fc to 0210312 Compare July 24, 2026 00:51
Comment thread OneCryptoPkg/Docs/Architecture.md Outdated
Comment thread OneCryptoPkg/OneCryptoLoaders/OneCryptoImageProviderMm.c
Comment thread OneCryptoPkg/OneCryptoPkg.dsc
Comment thread OneCryptoPkg/OneCryptoPkg.dsc Outdated
Comment thread OneCryptoPkg/OneCryptoPkg.dsc Outdated
Comment thread OpensslPkg/Library/BaseCryptLib/Pk/CryptX509.c
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch 4 times, most recently from 7453b20 to 38e742f Compare July 27, 2026 06:01
Comment thread OneCryptoPkg/Include/Private/OneCryptoImageProviderMessage.h Outdated
Comment thread OneCryptoPkg/Include/Private/OneCryptoImageProviderMessage.h Outdated
Comment thread OneCryptoPkg/OneCryptoLoaders/Integration/OneCryptoImageProviderStandaloneMm.inf Outdated
Comment thread OneCryptoPkg/OneCryptoLoaders/OneCryptoImageProviderMm.c
Comment thread OneCryptoPkg/OneCryptoLoaders/OneCryptoImageProviderMm.c
Comment thread OneCryptoPkg/OneCryptoLoaders/OneCryptoLoaderDxeFromMm.c
Comment thread OneCryptoPkg/OneCryptoLoaders/OneCryptoLoaderDxeFromMm.c
Comment thread OneCryptoPkg/OneCryptoLoaders/OneCryptoLoaderDxeFromMm.c Outdated
Comment thread OneCryptoPkg/OneCryptoLoaders/OneCryptoLoaderDxeFromMm.c Outdated
Comment thread OneCryptoPkg/OneCryptoLoaders/OneCryptoLoaderDxeFromMm.c
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch from 38e742f to 9c9b001 Compare July 31, 2026 17:18
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch 3 times, most recently from a38eb8f to cc503af Compare July 31, 2026 17:55
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch from cc503af to 4d1e56b Compare July 31, 2026 17:57
@Flickdm
Doug Flick (Flickdm) enabled auto-merge (rebase) August 3, 2026 16:50
Comment thread OneCryptoPkg/OneCryptoPkg.dsc Outdated
@Flickdm

Copy link
Copy Markdown
Member Author

Not really, but the CRC is also just completely useless in RELEASE because there is really nothing I can do if it fails

@os-d

Copy link
Copy Markdown
Contributor

Not really, but the CRC is also just completely useless in RELEASE because there is really nothing I can do if it fails

Sure, but you might say never load a driver that fails the CRC. You won't boot, but also you won't execute garbage which has security implications.

But, in general, I think constraining your dependencies is more important than skipping useless work, unless there is a real perf reason.

@Flickdm

Copy link
Copy Markdown
Member Author

Sure I'll make the change - I'm not really against it - but I was trying to restrict it to only DEBUG which was a lot easier when I assumed I could use the same debug libs across AARCH64 which is no longer the case

Comment thread OneCryptoPkg/Include/Private/OneCryptoImageProviderMessage.h
Comment thread OneCryptoPkg/Include/Private/OneCryptoImageProviderMessage.h Outdated
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch 2 times, most recently from 425f317 to 89fd7ac Compare August 3, 2026 21:09
Add the MM-side image provider protocol, message format, provider
implementation, and package declarations needed to locate and serve
OneCrypto image bytes from StandaloneMM.

Signed-off-by: Doug Flick <dougflick@microsoft.com>
Add the AARCH64 DXE loader that fetches OneCrypto image bytes from
StandaloneMM over MM communication and update package wiring to build
and package the new handoff path.

Signed-off-by: Doug Flick <dougflick@microsoft.com>
Update the OneCrypto bundler to include the AARCH64 MM handoff
artifacts and add the integration INF used to package the MM image
provider in the binary drop.

Signed-off-by: Doug Flick <dougflick@microsoft.com>
Document the AARCH64 MM-to-DXE handoff flow, loader roles, and
packaging expectations for the single-copy OneCrypto path.

Signed-off-by: Doug Flick <dougflick@microsoft.com>
…ugLib

AARCH64 single-copy uses ArmFfaConsoleDebugLib (FF-A console debug for the StandaloneMM secure partition), which is present on microsoft/mu_basecore release/202511. Bump the pinned commit to pick it up. No fork required.

Signed-off-by: Doug Flick <dougflick@microsoft.com>
@Flickdm
Doug Flick (Flickdm) force-pushed the feat/onecrypto-aarch64-single-copy branch from 89fd7ac to 94827c0 Compare August 3, 2026 21:09
@Flickdm
Doug Flick (Flickdm) enabled auto-merge (rebase) August 3, 2026 21:09
@Flickdm
Doug Flick (Flickdm) merged commit 248f907 into microsoft:main Aug 3, 2026
40 checks passed
@Flickdm
Doug Flick (Flickdm) deleted the feat/onecrypto-aarch64-single-copy branch August 3, 2026 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

impact:non-functional Does not have a functional impact language:python Pull requests that update Python code type:documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants