Skip to content

Releases: microsoft/mu_basecore

v2025110002.0.3

Choose a tag to compare

@mu-automation mu-automation released this 19 Jun 19:41
c0c7ed5

What's Changed

  • .github: Switch Mu PR Validation workflow to main branch @makubacki (#1824)
    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.


  • [REBASE \& FF] [CHERRY-PICK] Revert Mu Change In Favor of edk2 Commits @os-d (#1823)
    Change Details
      ## Description

    This reverts a MU_CHANGE and cherry-picks the relevant edk2 commits.

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

    How This Was Tested

    See edk2 PR.

    Integration Instructions

    Callers of FfsFindSectionDataWithHook() must update the call to add the AuthenticationStatus parameter. For existing use cases, this can always be NULL. If the authentication status is desired to be returned, then a UINT32 pointer may be passed here.




  • [release/202511] Update BaseTools ext dep to v2025110002.0.2 @[mu-automation[bot]](https://github.com/apps/mu-automation) (#1822)
    Change Details
      This PR updates the BaseTools external dependency to version v2025110002.0.2.

Full Changelog: v2025110002.0.2...v2025110002.0.3

v2025110002.0.2

Choose a tag to compare

@mu-automation mu-automation released this 12 Jun 22:04

What's Changed

  • [REBASE \& FF] Add per-streamId isolation for SmmuDxe @eeshanl (#1812)
    Change Details
      ## Description

    Add per-StreamID isolation for SmmuDxe

    Replaces SmmuDxe's previous "shared page table root" model with per-StreamID stage-2 isolation in ArmPkg and adds the supporting plumbing in MdeModulePkg and EmbeddedPkg so non-PCIe and handle-less DMA agents can participate.

    Every DMA-capable device gets its own stage-2 page-table root and VMID, mappings made for one device are invisible to any other, and translation related faults are surfaced immediately via GIC EVTQ/GERR ISRs.

    Commits

    1. Revert "Add gEdkiiNonDiscoverableDeviceUniqueIdProtocolGuid ..." - superseded by a RegisterNonDiscoverableMmioDevice parameter in the next commit.
    2. MdeModulePkg: Add UniqueId to NonDiscoverableDeviceRegistrationLib - RegisterNonDiscoverableMmioDevice now takes a platform UniqueId, surfaced as PciIo->GetLocation() = (Seg=0xFF, Bus=UniqueId>>5, Dev=UniqueId&0x1F, Func=0). Breaking change.
    3. MdeModulePkg: Add SetAttributeById to IoMmu Protocol - (IommuBase, DmaId, Mapping, IoMmuAccess) entry point for handle-less callers. Protocol revision bumped to 0x00010001. IoMmuLib NULL-checks; IoMmuLibNull is a no-op.
    4. MdeModulePkg: Add Handle to NON_DISCOVERABLE_PCI_DEVICE - passes the controller handle (instead of NULL) to IoMmuSetAttribute, so the IOMMU producer can resolve the StreamID via HandleProtocol → PciIo → GetLocation → IORT.
    5. EmbeddedPkg/DmaLib: Use IoMmuSetAttributeById with IommuBase/DmaId - DmaMap takes two new params, forwarded to SetAttributeById. IommuBase == 0 is the explicit opt-out. Breaking change.
    6. ArmPkg/SmmuDxe: Add per-StreamID isolation for each DMA capable device -
      • SmmuStreamContext holds {PageTableRoot, Vmid} per StreamID per SMMU; both allocated lazily and the STE promoted INVALID → STAGE_2_TRANSLATE via break-before-make on first SetAttribute*.
      • Aliases share the primary's root + VMID one page-table update covers DMA from all StreamIDs of one logical device.
      • DeviceHandleToStreamId: real PCIe → IORT RC; Seg=0xFF → platform SMMU_NC_DEVICE_ENTRY HOB → IORT Named Component.
      • GIC EVTQ/GERR ISRs surface faults immediately; opportunistic drain on every SetAttribute*.
      • ExitBootServices is per-SMMU: bypass for SMMUs with RMR streams, abort for the rest.
      • SMMU_CONFIG gains NcDeviceListSize/Offset; new SMMU_NC_DEVICE_ENTRY {UniqueId, ObjName[32]} maps platform UniqueIds → IORT NC names.

    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

    Tested on SBSA (OpenDevicePartnership/patina-qemu#261), QemuArmVirtPkg, and physical arm platform.

    Integration Instructions

    1. Build the IORT. Include one SMMUv3 node, the necessary ITS / Root Complex nodes for PCIe, and one EFI_ACPI_IORT_TYPE_NAMED_COMP node per non-discoverable DMA-capable device. Each Named Component's ID mappings must produce the StreamIDs the device emits and reference the owning SMMUv3 node.

    2. (Optional) Register any non-PCI/NonDiscoverable devices with a stable UniqueId via RegisterNonDiscoverableMmioDevice (UniqueId, ...). SmmuDxe reconstructs that UniqueId from PciIo->GetLocation() later, so values must be unique across the platform.

    3. Build the SMMU_CONFIG HOB in your platform SecPlatformSmmuConfigLib. Append (in any order) the IORT blob, the optional NC device lookup table for NonDiscoverable devices, and the optional SMMU disable list, then point the offsets/sizes in the SMMU_CONFIG header at them:

      STATIC CONST SMMU_NC_DEVICE_ENTRY  NcDeviceTable[] = {
        // { UniqueId, IORT NC ObjectName }
        { 0x1, "USB"       },
        { 0x2, "SATA_AHCI" },
      };
      
      SmmuConfig = AllocateZeroPool (sizeof (SMMU_CONFIG)
                                     + sizeof (IortData)
                                     + sizeof (NcDeviceTable));
      SmmuConfig->VersionMajor       = CURRENT_SMMU_CONFIG_VERSION_MAJOR;
      SmmuConfig->VersionMinor       = CURRENT_SMMU_CONFIG_VERSION_MINOR;
      SmmuConfig->IortSize           = sizeof (IortData);
      SmmuConfig->IortOffset         = sizeof (SMMU_CONFIG);
      SmmuConfig->NcDeviceListSize   = sizeof (NcDeviceTable);
      SmmuConfig->NcDeviceListOffset = sizeof (SMMU_CONFIG) + sizeof (IortData);
      
      CopyMem ((UINT8 *)SmmuConfig + SmmuConfig->IortOffset,
               &IortData,    sizeof (IortData));
      CopyMem ((UINT8 *)SmmuConfig + SmmuConfig->NcDeviceListOffset,
               NcDeviceTable, sizeof (NcDeviceTable));
      
      BuildGuidDataHob (&gSmmuConfigHobGuid,
                        SmmuConfig,
                        sizeof (SMMU_CONFIG)
                        + sizeof (IortData)
                        + sizeof (NcDeviceTable));
    4. Do not install the IORT yourself SmmuDxe installs it as an ACPI table after parsing.

    5. Disable specific SMMUs (optional). Append a UINT64[] of SMMU base addresses to put in bypass mode and point SmmuDisabledListOffset / SmmuDisabledListSize at it.

    6. Handle-less DMA agents (optional). Firmware components that have no UEFI device handle (and therefore are not in the IORT) call IoMmuLib::IoMmuSetAttributeById (IommuBase, DmaId, ...) directly. Pass IommuBase == 0 to opt out of IOMMU programming entirely.

    See ArmPkg/Drivers/SmmuDxe/README.md for the end-to-end flow diagrams, HOB layout, and the per-StreamID isolation walkthrough.

    Breaking changes

    • RegisterNonDiscoverableMmioDevice gains a leading UniqueId parameter. All existing call sites must be updated to pass a value that is unique across the platform.

    • gEdkiiNonDiscoverableDeviceUniqueIdProtocolGuid is removed. Any out-of-tree consumer of that protocol must switch to the new UniqueId parameter on RegisterNonDiscoverableMmioDevice.

    • DmaMap gains IommuBase + DmaId parameters. Pass 0/0 to keep pre-existing behaviour (no IOMMU programming); supply real values to opt into per-StreamID isolation for handle-less DMA agents.

    • EDKII_IOMMU_PROTOCOL_REVISION bumped to 0x00010001. The new SetAttributeById field is optional. Legacy producers leave it NULL, and consumers that call it through IoMmuLib::IoMmuSetAttributeById get EFI_UNSUPPORTED and must gracefully fall back.

      </blockquote>
      <hr>
      
  • NvmExpressDxe: Add PcdNvmeGenericTimeout to configure timeout per platform @maheeraeron (#1813)
    Change Details
      ## Description

    Changes the NvmExpressDxe driver to reference PcdNvmeGenericTimeout for generic timeouts, allowing platforms to define their own timeout value.

    mu_msvm is dependent on this change. In Azure, some virtual machines' backing storage resolve to remote storage backends. Traditionally, we have seen that SCSI devices waiting on remote storage can take far longer than 5 seconds. Others have previously agreed that NVMe devices using the same backing remote storage can also suffer from this.

    mu_msvm previously had a fork of NvmExpressDxe that overrode this value to 120 seconds. Now, mu_msvm has agreed to use the upstream NvmExpressDxe driver, but this change is lacking, and thus we lack full parity with our old fork currently.

    Using a PCD prevents other consumers of this driver from having to make their own override. Instead, MsvmPkg for mu_msvm, for example, could simply redefine PcdNvmeGenericTimeout to be 120 seconds in the MsvmPkgX64.dsc and MsvmPkgAARCH64.dsc

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

    How This Was Tested

    Tested with CI validation

    Integration Instructions

    N/A




Full Changelog: v2025110002.0.1...v2025110002.0.2

v2025110002.0.1

Choose a tag to compare

@mu-automation mu-automation released this 08 Jun 21:49

What's Changed

  • [CHERRY-PICK] MdeModulePkg/Library: introduce ArmFfaConsoleDebugLib @kuqin12 (#1816)
    Change Details
      ## Description

    This patch adds ArmFfaConsoleDebugLib. A debug library that utilizes FF-A Console Log API to print debug messages to the console.

    This is useful in context of running the StandaloneMm payload as a S-EL0 SP on top of SPMC where StandaloneMm isn't allowed to access console device or no console device (e.x) Hafnium.

    NOTE:
    FFA_CONSOLE_LOG* could be used by secure partition only.

    (cherry picked from commit ddc7ed1)

    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

    This was tested on QEMU AArch64 platform and verified ports are routed through Hafnium.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • [REBASE \& FF] Cherry-Pick Recent BaseTools Changes and Untangle GenStm Interaction @os-d (#1811)
    Change Details
      ## Description

    This series of commits attempts to untangle some mu_changes in BaseTools for GenStm with the upstream in order to pull down the change to clean BaseTools before building them. This could have been deferred to the next integration, but folks have wanted the basetools clean and this work had to be done at some point; likely would have been forgotten at the next integration, so I did it now. It can certainly be deferred.

    This PR does the following:

    • Revert a commit centralizing a STATIC_ASSERT definition in BaseTools for use by GenStm - should be merged into original GenStm commit
    • Revert a commit adding CPU_INFORMATION_HEADER to GenStm - should be merged into the original GenStm commit
    • Revert the original GenStm commit - this did a partial BaseTools clean that can be removed now we are doing a full clean
    • Cherry-pick clang build support for BaseTools. This makes a cleaner diff for the next cherry-pick.
    • Cherry-pick BaseTools clean
    • Cherry-pick original GenStm commit, dropping redundant BaseTools partial clean
    • Squash the CPU_INFORMATION_HEADER and STATIC_ASSERT commits into the original GenStm commit. No reason to carry those separately and they complicate the story of maintaining an override for GenStm.

    The final situation is only Edk2ToolsBuild.py is changed.

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

    How This Was Tested

    BaseTools build. A GenStm test would be appreciated.

    Integration Instructions

    N/A.




  • [Cherry-Pick] MdeModulePkg: StatusCodeHandler Stmm remove assert @apop5 (#1814)
    Change Details
     

    Description

    In StandaloneMM mode, IsStatusCodeUsingSerialPort is expecting to find gMmStatusCodeUseSerialHobGuid, and will assert if it is not found.

    Change the logic so that if the Guided Hob is not found, to let the function return FALSE and progress to proceed.

    (cherry picked from commit 4743d8d)

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

    How This Was Tested

    Assert prior to change, no assert after the change.

    Integration Instructions

    No integration necessary.




Full Changelog: v2025110002.0.0...v2025110002.0.1

v2025110001.0.12

Choose a tag to compare

@mu-automation mu-automation released this 02 Jun 21:20

What's Changed

  • [REBASE \& FF] Add PEI Memory Bins @os-d (#1759)
    Change Details
      ## Description

    Due to the slow speed of review in edk2 and the platform need for this feature now, tianocore/edk2#12086 is being brought to Mu first.

    This also reverts a Mu change around memory bins that was rejected upstream in favor of a different approach brought in with the PEI bins.

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

    How This Was Tested

    Physical and virtual platforms with a variety of scenarios, detailed in edk2 PR.

    Integration Instructions

    To opt into PEI memory bins a platform must, in any order:

    • Set gEfiMdeModulePkgTokenSpaceGuid.PcdPeiMemoryBinsEnable to TRUE in their DSC.
    • Produce the Memory Type Information HOB in SEC or pre-mem PEI.
    • Optionally produce the Resource Descriptor HOB owned by gEfiMemoryTypeInformationGuid in SEC or pre-mem PEI. This must
      not be produced post-mem or DXE will ignore the PEI memory bins because of conflicting Resource Descriptor HOBs.


  • [release/202511] Update BaseTools ext dep to v2025110001.0.11 @[mu-automation[bot]](https://github.com/apps/mu-automation) (#1806)
    Change Details
      This PR updates the BaseTools external dependency to version v2025110001.0.11.

  • [REBASE \& FF] Revert Mu Commits in Favor of edk2 Commits @os-d (#1810)
    Change Details
      ## Description

    This reverts the Mu version of the MmCommunicationDxe Comm Buffer Init fix and cherry-picks the edk2 version as well as cherry-picking the VA_LIST ABI change.

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

    How This Was Tested

    N/A.

    Integration Instructions

    N/A.




  • [CHERRY-PICK] MdeModulePkg: Add platform limit for size in Resizable BAR @Gowtham-Manikandan (#1808)
    Change Details
      ## Description

    Added PcdPcieResizableBarMaxSize to avoid build issues in latest BKC integration.


    Resizable BAR driver selects max available BAR size to configure for use. It may happen that some PCIe device declare support for size that exceeds processor address width. Platform needs a way to define the max size it can accept. This change introduce PCD called PcdPcieResizableBarMaxSize. It is dynamic PCD where platform can provide its limit for BAR size. Such PCD can be also controlled with a configuration knob.

    (cherry picked from commit 24eddc6)

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

    How This Was Tested

    Tested by local build of OKS Platform

    Integration Instructions

    N/A




  • [CHERRY-PICK] MdePkg/BaseLib: Add AsmReadFsBase and AsmWriteFsBase for X86-64 @Gowtham-Manikandan (#1804)
    Change Details
      ## Description

    The commit that adds Asm(Read|Write)FsBase to BaseLib for x86-64.
    (cherry picked from commit e2b0e20)

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

    How This Was Tested

    Call AsmWriteFsBase() and use AsmReadFsBase() to check if the value is written to FSBASE.

    Integration Instructions

    N/A




Full Changelog: v2025110001.0.11...v2025110001.0.12

v2025110002.0.0

Choose a tag to compare

@mu-automation mu-automation released this 02 Jun 21:56

What's Changed

⚠️ Breaking Changes

  • [2511] MdeModulePkg/Variable: Remove Mu RT cache buffer allocation changes [Rebase \& FF] @makubacki (#1781)
    Change Details
      ## Description

    Project Mu had changes to move UEFI variable runtime cache allocation to DXE instead of PEI. The Project Mu MM model allows the runtime buffer allocations to be unblocked for MM access in DXE and allocating in DXE did not cause RT buffer fragmentation in the memory map to better accommodate hibernate resume.

    With PEI memory buckets being added in #1759 to Project Mu beginning with the 2511 branch, the upstream flow to allocate the RT cache buffer in PEI can be restored

    This PR reverts commits that added DXE runtime cache buffer allocation support individually, so it is clear exactly what is reverted and these changes can be skipped on future Mu release branches.


    1. Revert "[CHERRY-PICK] MdeModulePkg/VariableSmmRuntimeDxe: Fix EFI_UNSUPPORTED leak (#1668)"
    2. Revert "MdeModulePkg/Variable: Add PCD to control RT cache allocation (#1588)"
    3. Revert "MdeModulePkg/VariableSmmRuntimeDxe: Disable var RT cache on alloc failure"
    4. Revert "MdeModulePkg/Variable: Move RT cache buffer allocation to DXE"
    • Impacts functionality?
    • Impacts security?
    • Breaking change?
    • Includes tests?
    • Includes documentation?

    How This Was Tested

    • Boot on QEMU Q35 and a physical Intel platform with the change (and PEI memory buckets present)
    • Compared resulting files with edk2 variable code taking into account other unrelated Mu changes

    Integration Instructions

    • gEfiMdeModulePkgTokenSpaceGuid.PcdMigrateVariableRuntimeCacheBufferAllocation is removed from MdeModulePkg.dec so delete any references in that in platform code.
    • It is recommended to ensure the PEI memory buckets PR referenced in this PR's description is included in the Mu Basecore code used by the platform so PEI memory buckets can be used to reduce runtime memory fragmentation.


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

v2025110001.0.11

Choose a tag to compare

@mu-automation mu-automation released this 20 May 17:43

What's Changed

  • ArmPkg: MmCommunicationDxe: Fix Comm Buffer Init @os-d (#1803)
    Change Details
      ## Description

    Currently, MmCommunicationDxe expects the MM comm buffer to either be not added by the platform or added and allocated by the platform. However, not all platforms follow this pattern.

    This commit makes the handling more generic by checking to see if a GCD descriptor exists that covers this range. If it does, the capabilities are updated as needed. If only a partial desc exists for this range, the driver will fail as that is a platform misconfiguration.

    If the descriptor does not exist, the driver will add the buffer.

    Then, for all successful cases, the attributes are updated on the buffer to what the driver expects them to be.

    This will be taken to edk2 in parallel.

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

    How This Was Tested

    Tested on an aarch64 platform that was producing the HOB but not having it allocated. This fixed it.

    Integration Instructions

    Platforms must either not produce a resource descriptor HOB for the MM Communicate Buffer or must produce a HOB fully covering the region.




  • [release/202511] Update BaseTools ext dep to v2025110001.0.9 @[mu-automation[bot]](https://github.com/apps/mu-automation) (#1800)
    Change Details
      This PR updates the BaseTools external dependency to version v2025110001.0.9.

Full Changelog: v2025110001.0.10...v2025110001.0.11

v2025110001.0.10

Choose a tag to compare

@mu-automation mu-automation released this 18 May 16:54

What's Changed

  • Revert the previous TPM table revert.. @kuqin12 (#1798)
    Change Details
      ## Description

    The TPM over FFA table revert was not necessary. Bringing back the bug fix to the mainline.

    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

    This is a one-to-one reversion.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

🐛 Bug Fixes

  • [SQUASH ON REBASE] ArmPlatformPkg: MemoryInitPeiLib: Fix V2 HOB Attribute @os-d (#1801)
    Change Details
      ## Description

    Commit 5e381f8 updated the V2 resc desc HOB parsing in MemoryInitPeiLib, but if splitting the system memory HOB to accommodate the FD HOB, the attribute chosen for the leftover system memory HOB was the resource attributes, not the memory attributes.

    This fixes this by preserving the memory attribute correctly.

    This should be squashed with b8960d8, 5e381f8, and
    fb5e75c on rebase.

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

    How This Was Tested

    Tested on a physical platform where the Patina readiness tool was failing because invalid attributes were set in a HOB field. After this change it passes.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v2025110001.0.9...v2025110001.0.10

v2025110001.0.9

Choose a tag to compare

@mu-automation mu-automation released this 14 May 17:13

What's Changed

  • [TPM] Revert TPM over FFA revision changes @kuqin12 (#1797)
    Change Details
      ## Description

    Some OS versions used in special environments are not ready for this change. Thus we need to revert the breaking change.

    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

    This change is being tested.

    Integration Instructions

    Change the PcdTpm2AcpiTableRev back to 4.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v2025110001.0.8...v2025110001.0.9

v2025110001.0.8

Choose a tag to compare

@mu-automation mu-automation released this 13 May 23:42

What's Changed

  • Fix: BaseCryptLibOnOneCrypto @Flickdm (#1787)
    Change Details
      ## Description

    This PR should be rebased and merged to keep the commit history because it also has a fewer other smaller but nice to have changes that should go in with this.

    This is a workaround to not use VA_LIST in X509ConstructCertificateStackV - which goes against the UEFI specification and is broken today when using a CLANGPDB compiled binary vs a GCC5 DxeCore. This change will unblock our partner teams but the long term fix is to deprecate the (now unused) function X509ConstructCertificateStackV.

    This pull request refactors and improves the implementation of the X509ConstructCertificateStack functions in the OneCrypto library, making them more robust and better tested. The main changes include replacing a macro-based implementation with an explicit function, adding comprehensive unit tests for various input scenarios, and fixing a logic bug in the error handling macro. These changes enhance the reliability and maintainability of the certificate stack construction logic.

    X509 Certificate Stack Construction Refactor and Bug Fixes

    Implementation improvements:

    • Replaced the macro-based implementation of X509ConstructCertificateStackV with an explicit function that iterates through the variadic arguments, validates certificate sizes, and appends certificates to the stack, improving clarity and error handling. (CryptoPkg/Library/BaseCryptLibOnOneCrypto/OneCryptoLib.c)
    • Updated X509ConstructCertificateStack to call the new X509ConstructCertificateStackV function and return its result, ensuring consistent logic and error propagation. (CryptoPkg/Library/BaseCryptLibOnOneCrypto/OneCryptoLib.c)

    Bug fixes:

    • Fixed a logic bug in the CryptoServiceNotAvailable macro: changed the condition from && to || to correctly handle cases where the protocol pointer is NULL, preventing possible null pointer dereference. (CryptoPkg/Library/BaseCryptLibOnOneCrypto/OneCryptoLib.c)
      Testing improvements:
    • Added a comprehensive suite of unit tests for X509ConstructCertificateStack, covering scenarios such as null input, single and multiple certificates, appending certificates, invalid certificates, zero-size certificates, empty lists, and direct variadic calls. (CryptoPkg/Test/UnitTest/Library/BaseCryptLib/X509Tests.c)

    Metadata update:

    • Added the "id": "onecrypto-bin" field to the OneCrypto_ext_dep.json file, improving package identification. (CryptoPkg/Binaries/OneCrypto_ext_dep.json)

    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

    QemuSbsaPkg && Platform Testing

    Integration Instructions

    <Describe how these changes should be integrated. Use N/A if nothing is required.>

      </blockquote>
      <hr>
    </details>
    
  • [CHERRY-PICK] StandaloneMmPkg: StandaloneMmIplPei: Guard S3 hob with PcdAcpiS3Enable @kuqin12 (#1795)
    Change Details
      ## Description

    The current module checks the value of gEfiAcpiVariableGuid hobs and could assert if there is no such hob available.

    However, these hobs are only available if a platform elects to support S3. Thus this change moves the hob copy logic behind a PCD check to prevent unnecessary asserts.

    (cherry picked from commit 1fe2504)

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

    How This Was Tested

    This was tested on QEMU Q35 and booted to Windows desktop.

    Integration Instructions

    N/A




  • [Rebase \& FF] .pytool: Image Validation Plugin: Drop Zero ImageBase Requirement @vineelko (#1793)
    Change Details
      ## Description
    • Zero ImageBase requirement is dropped from Image validation plugin as it is not enforced by most PE loaders in UEFI.
    • Patina in particular dropped support for producing .efi files with zero ImageBase
    • This also improves the debugging experience when using WinDbg

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

    How This Was Tested

    Q35

    Integration Instructions

    NA




Full Changelog: v2025110001.0.7...v2025110001.0.8

v2025110001.0.7

Choose a tag to compare

@mu-automation mu-automation released this 12 May 04:07
6f6a7c6

What's Changed

  • [release/202511] Update BaseTools ext dep to v2025110001.0.6 @[mu-automation[bot]](https://github.com/apps/mu-automation) (#1789)
    Change Details
      This PR updates the BaseTools external dependency to version v2025110001.0.6.

  • [CHERRY-PICK] MdePkg: Add PCIe capability structures for DPC and DLF @AnirudhSrinivasula (#1791)
    Change Details
      Add definitions for Downstream Port Containment (DPC) Extended Capability. Add definitions for Data Link Feature (DLF). Update existing definitions for Process Address Space ID (PASID).

    (cherry picked from commit b65f976)

    Description

    Cherry-pick the Pci30.h, PciExpress21.h, PciExpress31.h, PciExpress40.h for latest Intel Server Release

    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

    Tested in latest Intel Server platforms

    Integration Instructions

    None

      </blockquote>
      <hr>
    </details>
    

🐛 Bug Fixes

  • MdeModulePkg: DxeIplPeim Move Decompress to MsCorePkg/Core/GuidedSectionExtractPeim @apop5 (#1792)
    Change Details
      ## Description

    There are scenarios where PEIMs contained in compressed FVs are needed to complete
    the PEI stage (such as DxeIpl being in a compressed FV). GuidedSectionExtractPeim
    makes decompression available after memory is discovered instead of needing to
    wait for dxeipl to be given control. The functionality being remove here is entirely
    in GuidedSectionExtractPeimDisables, and requires platforms to include the PEIM
    out of hte MsCorePkg when they require decompression of Fvs.

    This change was split off the commit:
    7a38833

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

    How This Was Tested

    Physical platform encountered where multiple installations of Extract Guided section
    PPIs triggered errors.

    Integration Instructions

    If a break is encountered, verify that the MsCorePkg's GuidedSectionExtractPeim is included
    in the platforms DSC/FDF.




Full Changelog: v2025110001.0.6...v2025110001.0.7