v2023.2.6
What's Changed
🚀 Features & ✨ Enhancements
-
Add Standalone MM Support (And Other Enhancements) [Rebase \& FF] @makubacki (#52)
Change Details
## Description
Closes #46
Note:
CryptoStandaloneMm
is intentionally only built forX64
due to
build limitations in MM Supervisor dependencies forIA32
.- CryptoBinPkg/CryptoBingPkg.dsc: Remove MU_CHANGE and MSCHANGE tags
This file is not tracking an upstream file. Diff markers are not
needed.- MultiFlavorBuild.py: Default to VS2022 instead of VS2019
If a tool chain is not specified, use VS2022 instead of VS2019. It
is the pipeline build tool chain and installed more commonly now.- Update to the latest MU_BASECORE
Moves MU_BASECORE to the latest MU_BASECORE. This is a relatively
large move including about 207 Mu Basecore commits.Some integration related changes are included.
- CryptoBinPkg: Add CryptoStandaloneMm
Adds a Standalone MM driver to the shared crypto binary release.
- CryptoBinPkg: Add MM Supervisor submodule
Adds the Project Mu MM Supervisor repo as a submodule and updates the
library instances for CryptoStandaloneMm to use the supervisor library
instances where relevant.- MultiFlavorBuild.py: Fix SyntaxWarning on new Python versions
Properly escapes the backslash character to prevent SyntaxWarning
due to an invalid escape sequence.- CryptoBinPkg: Merge LibraryClasses sections in DSC
Merges the two [LibraryClasses] sections together resolving duplicates
and sorting contents for easier inspection and diff.
NOTE: The Mu Basecore submodule will be updated after several PRs are
completed in that repo required for this PR. Right now, this PR
is using a temporary branch with all of those changes consolidated.- Impacts functionality?
- Functionality - Does the change ultimately impact how firmware functions?
- Examples: Add a new library, publish a new PPI, update an algorithm, ...
- Impacts security?
- Security - Does the change have a direct security impact on an application,
flow, or firmware? - Examples: Crypto algorithm change, buffer overflow fix, parameter
validation improvement, ...
- Security - Does the change have a direct security impact on an application,
- Breaking change?
- Breaking change - Will anyone consuming this change experience a break
in build or boot behavior? - Examples: Add a new library class, move a module to a different repo, call
a function in a new library class in a pre-existing module, ...
- Breaking change - Will anyone consuming this change experience a break
- Includes tests?
- Tests - Does the change include any explicit test code?
- Examples: Unit tests, integration tests, robot tests, ...
- Includes documentation?
- Documentation - Does the change contain explicit documentation additions
outside direct code modifications (and comments)? - Examples: Update readme file, add feature readme file, link to documentation
on an a separate Web page, ...
- Documentation - Does the change contain explicit documentation additions
How This Was Tested
- Local build including package assembly of all crypto flavors
- mu_cryto_release pipeline run with changes (61774).
- Integration of generated binaries on QemuQ35Pkg (using Standalone MM crypto binary)
- Integration of generated binaries on a physical Intel platform (using Standalone MM crypto binary)
Integration Instructions
- Use the new Standalone MM binary if using the Project Mu MM Supervisor
on a platform where shared crypto is needed for Standalone MM.
A new build rule may be needed in a platform FDF to integrate Standalone MM binaries. An
example to use the Standalone MM shared crypto driver is shown below:[Rule.Common.MM_STANDALONE.BINARY] FILE MM_STANDALONE = $(NAMED_GUID) { SMM_DEPEX SMM_DEPEX Optional |.depex PE32 PE32 |.efi UI STRING="$(MODULE_NAME)" Optional VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) }
Note that the Standalone MM binaries are built against the Project Mu
MM Supervisor.
Full Changelog: v2023020000.0.2...v2023020000.1.0