Skip to content

v2025110002.0.0

Choose a tag to compare

@mu-automation mu-automation released this 25 Jun 18:24
· 5 commits to refs/heads/release/202511 since this release
38867aa

What's Changed

  • Drop mu\_pi and mu\_rust\_helpers crate dependencies (and fix build due to incoming r-efi v7) [Rebase \& FF] @makubacki (#907)
    Change Details
      ## Description

    A series of commits with two goals:

    1. mu_rust_helpers moved to r-efi v7 in eefef09. The minor version was updated which caused many crates depending on mu_rust_helpers to pick up the change automatically per semantic versioning while there other dependencies stayed on r-efi v6. This could lead to type mismatches (and did in this repo). So, this prevents that.
    2. Support the longer-term goal of deprecating mu_rust_helpers and mu_pi (as described in #906) by removing their usage in this repo.

    MuTelemetryHelperLib: Fix r-efi v7 GUID constant conflict

    mu_rust_helpers re-exports mu_uefi_guid, which updated to r-efi v7.

    Its guid::ZERO and guid::CALLER_ID constants are compiled against
    r-efi v7, while patina (and the rest of the tree) remain on r-efi v6,
    producing mismatched-type errors when those constants are used in v6
    contexts.

    This makes the move to the patina crate's GUID constants. The patina
    version used here is still on r-efi v6, so its patina::guids::ZERO
    and patina::guids::CALLER_ID constants are compiled against r-efi
    v6.

    This is also a step toward removing the mu_rust_helpers dependency
    from this crate.


    MuTelemetryHelperLib: Use patina instead of mu_pi

    Replaces the mu_pi status code types and error-code constants with the
    equivalent definitions from the patina crate (patina::pi::status_code
    and patina::pi::protocols::status_code).

    This removes the mu_pi dependency from the crate and the workspace.


    MsWheaPkg: Remove mu_rust_helpers dependency

    Makes the remaining changes needed to replace mu_rust_helpers with
    the patina crate. This is part of the effort to remove mu_rust_helpers
    as it is being deprecated.


    Remove mu_rust_helpers as a workspace dependency

    Makes the remaining changes needed in UefiHidDxeV2 to use
    patina::function instead of mu_rust_helpers::function so the
    crate dependency can be removed from the workspace.


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

    How This Was Tested

    • Run cargo make tasks
    • CI

    Integration Instructions

    • N/A - Replace mu_rust_helpers and mu_pi functionality with equivalent functionality from the patina crate. The patina crate was already a dependency.


  • AdvLoggerPkg: Gate hardware port writes at OS runtime @chaokai-ching (#902)
    Change Details
      ## Description

    AdvancedLoggerWrite unconditionally wrote debug output to the hardware serial
    port at both boot time and OS runtime (after ExitBootServices). Some platforms'
    serial implementations cannot be safely called at OS runtime.

    This change adds an opt-in FeatureFlag PCD
    PcdAdvancedLoggerHdwPortRuntimeDisable (default FALSE):

    • Default (FALSE): behavior is unchanged — hardware port writes remain
      enabled at runtime, so existing platforms are unaffected.
    • TRUE: a platform whose serial cannot be safely called after
      ExitBootServices restricts hardware port writes to boot time only, while
      early-boot and boot-time serial output is preserved.

    Runtime is detected via the logger info block's AtRuntime field when
    available. The DXE runtime AdvancedLoggerLib instance clears its logger info
    pointer at ExitBootServices, so it consults a module-scoped
    ADVANCED_LOGGER_RUNTIME build flag plus a gAdvancedLoggerAtRuntime flag to
    distinguish post-EBS runtime from early boot when the logger info block is NULL.

    • Impacts functionality? Only when the new PCD is set TRUE (default FALSE = no change)
    • Impacts security?
    • Breaking change? No — default preserves existing behavior
    • Includes tests? Not included; hardware-port gating path has no existing host-test coverage. Can add a GoogleTest if desired.
    • Includes documentation? PCD documented in AdvLoggerPkg.dec

    How This Was Tested

    Built an ARM AARCH64 platform (DEBUG); all AdvancedLoggerLib instances
    compile. Verified on ARM AARCH64 hardware with a temporary driver that forces a
    serial write on the first post-SetVirtualAddressMap runtime call:

    • PCD default (FALSE): the firmware faults on the runtime serial write
      (reproduces the unsafe-at-runtime behavior).
    • PCD TRUE: the runtime write is suppressed and the system boots cleanly,
      while boot-time serial output is unaffected.

    Integration Instructions

    None required by default. Platforms whose serial implementation cannot be
    called safely at OS runtime should set
    gAdvLoggerPkgTokenSpaceGuid.PcdAdvancedLoggerHdwPortRuntimeDisable to TRUE.




  • .github: Switch Mu PR Validation workflow to main branch @makubacki (#897)
    Change Details
      ## Description

    These workflow files were previously using a dedicated branch for development of the Mu PR Validation workflow. It has been stable for a couple of months now, so we can switch back to using the main branch which has the latest changes.

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

    How This Was Tested

    • Compare branch content (main <-> add_mu_pr_val_workflow_e2e_val)

    Integration Instructions

    • N/A. Only affects GitHub repo workflow.


⚠️ Breaking Changes

  • Patina 22.1.0 integration (r-efi 7) [Rebase \& FF] @makubacki (#908)
    Change Details
      ## Description

    Two commits to integrate the latest patina v22.1.0 (and fix the build).


    Cargo.toml: Add AdvLoggerPkg/Crates/RustAdvancedLoggerDxe as a member

    Library crates are currently being listed in the members section, so
    the line about binary crates is removed.

    RustAdvancedLoggerDxe is currently being built as a dependency, but
    this commit adds it as a member for consistency with other crates.


    Bump r-efi to 7 to match patina's update

    patina 22.1.0 moved its r-efi dependency up to version 7, but the
    workspace was still pinned to ^6.

    Cargo then pulled in both r-efi 6 and 7 at the same time, and since
    types from different major versions don't unify, that broke
    cargo make check and cargo make test.

    This moves the workspace to r-efi 7.


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

    How This Was Tested

    • cargo make tasks
    • Repo CI

    Integration Instructions

    • If library crates are used from this repo, it is recommended to move to r-efi 7.


🐛 Bug Fixes

  • MsCorePkg: Fix double components specifier for AARCH64 @makubacki (#901)
    Change Details
      ## Description

    [Components.AARCH64, Components.AARCH64] should just be [Components.AARCH64] in MsCorePkg.dsc.

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

    How This Was Tested

    • Local MsCorePkg CI build

    Integration Instructions

    • N/A


  • MsCorePkg: Remove the non-existent header files in aarch64 @qaz6750 (#899)
    Change Details
      ## Description

    As stated in #895, this header file no longer exists, and the issue has been fixed in X64. However, Aarch64 was overlooked, so it should be applied to AArch64 as well.

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

    How This Was Tested

    N/A

    Integration Instructions

    N/A




Full Changelog: v2025110001.0.0...v2025110002.0.0