Skip to content

v2023.2.6

Compare
Choose a tag to compare
@github-actions github-actions released this 18 Jan 00:54
· 20 commits to refs/heads/release/202302 since this release

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 for X64 due to
    build limitations in MM Supervisor dependencies for IA32.

    1. CryptoBinPkg/CryptoBingPkg.dsc: Remove MU_CHANGE and MSCHANGE tags

    This file is not tracking an upstream file. Diff markers are not
    needed.

    1. 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.

    1. 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.

    1. CryptoBinPkg: Add CryptoStandaloneMm

    Adds a Standalone MM driver to the shared crypto binary release.

    1. 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.

    1. MultiFlavorBuild.py: Fix SyntaxWarning on new Python versions

    Properly escapes the backslash character to prevent SyntaxWarning
    due to an invalid escape sequence.

    1. 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, ...
    • 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, ...
    • 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, ...

    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