| Host Type & Toolchain | Build Status | Test Status | Code Coverage |
|---|---|---|---|
| Windows_VS2022 | |||
| Ubuntu_GCC5 |
This repository is part of Project Mu. Please see Project Mu for details https://microsoft.github.io/mu.
For more details about the repository, refer to RepoDetails.md.
| Status: | In Development |
|---|---|
| Entered Development: | 2026/08/21 (Date EDK2 started accepting changes which were not in a previous release) |
| Anticipated Stabilization: | Feb 2027 |
- Header include guards
- Many headers replaced named
#ifndef/#defineinclude guards with#pragma once. Normal inclusion is unchanged, but consumers must not test or define another header's former guard macro to detect or suppress it.
- Many headers replaced named
- ArmPkg
ArmExceptionLibandDefaultExceptionHandlerLibwere moved fromArmPkgand merged intoUefiCpuPkg/CpuExceptionHandlerLib. Replace calls toDefaultExceptionHandler()withDumpCpuContext(), addUefiCpuPkg.decas a package dependency, and update platform DSC library mappings.Library/MmuLib/BaseMmuLib.infwas removed. Standalone MM consumers should migrate toLibrary/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.infand update their library class usage as needed.
- BaseTools
GenFvsupports selective rebasing through the newXip=TRUE/FALSEFDF rule keyword. WhenFvForceRebase=TRUEand any file in an FV usesXip=TRUE, only files markedXip=TRUEare rebased; platforms adopting selective rebasing must update the relevant FDF rules.- Visual Studio 2015 and 2017 toolchain support was removed. Windows builds and CI must use VS2019, VS2022, or VS2026.
- The deprecated
GCC48,GCC49, andGCC5toolchain definitions were removed. Platforms using these toolchain tags must migrate toGCC. - X64 images built with GCC, CLANGDWARF, CLANGPDB, VS2022, or VS2026 now use 4 KiB section alignment by default. SEC, PEI_CORE, and PEIM XIP images retain their previous alignment through module-specific linker flags. Platforms with firmware-size constraints or loaders that assume smaller alignment must review their generated images.
- CryptoPkg
Library/BaseCryptLibOnProtocolPpi/DxeCryptLib.inf,SmmCryptLib.inf, andStandaloneMmCryptLib.infwere removed as part of the OneCrypto transition. Replace them with the corresponding instances underLibrary/BaseCryptLibOnOneCryptoand add the required OneCrypto binary drivers and loaders to the platform DSC.Library/BaseCryptLibOnProtocolPpi/RuntimeDxeCryptLib.infandLibrary/BaseCryptLibMbedTls/UnitTestHostBaseCryptLib.infwere removed with no direct OneCrypto replacement. Runtime and host-test consumers must remove these mappings and select a crypto instance supported by their execution environment.- Projects requiring PEI hashing support through the CryptoLib should use
Library\BaseCryptLibOnProtocolPpi\PeiCryptLib.infand include the
- EmbeddedPkg
- The
PrePiLibAPIs changed:FfsFindSectionDataWithHook()now takes anAuthenticationStatusoutput parameter andFfsProcessFvFile()now takes aParentVolumeHandleparameter.
- The
- MdeModulePkg
PartitionDxe,DxeTpm2MeasureBootLib, andDxeTpmMeasureBootLibnow depend on the newGptLiblibrary class. Platforms that build these modules must mapGptLibtoMdeModulePkg/Library/GptLib/GptLib.infin their DSC files.Library/RealTimeClockLibNull/RealTimeClockLibNull.infwas removed with no direct replacement. Platforms that mappedRealTimeClockLibto this null instance must use a platform RTC implementation or provide their own null implementation if unsupported RTC behavior is still required.- The
InternalEventServicesprotocol andPcdInternalEventServicesEnabledwere removed, includingINTERNAL_EVENT_SERVICES_PROTOCOL_GUID,WAIT_FOR_EVENT_INTERNAL,WaitForEventInternal, andgInternalEventServicesProtocolGuid. The related private DXE Core interfacesCoreWaitForEventInternal()andInternalEventServicesInit()were also removed. Consumers must use the standard boot-servicesWaitForEvent()interface atTPL_APPLICATIONand refactor waits at higher TPLs into event-driven callbacks. - The
NonDiscoverableDeviceUniqueIdprotocol was removed, includingEDKII_NON_DISCOVERABLE_DEVICE_UNIQUE_ID_PROTOCOL_GUID,NON_DISCOVERABLE_DEVICE_UNIQUE_ID_PROTOCOL_REVISION,MAX_NON_DISCOVERABLE_PCI_DEVICE_ID,NON_DISCOVERABLE_DEVICE_UNIQUE_ID_PROTOCOL, andgEdkiiNonDiscoverableDeviceUniqueIdProtocolGuid. Stop installing the protocol; non-discoverable PCI devices now receive IDs from discovery order. Consumers that require stable device identity must use a platform-owned identification mechanism instead of the ID returned byEFI_PCI_IO_PROTOCOL.GetLocation(). - The private DXE Core
GetBucketMemoryType()interface was removed fromCore/Dxe/Mem/Imem.h. Out-of-tree DXE Core changes must use the current memory-map and memory-protection infrastructure instead of calling this removed helper. Universal/Variable/RuntimeDxe/RuntimeDxeUnitTest/VariableRuntimeDxeUnitTest.infwas removed. Test DSC files must remove this module. Its private test headers, assertion GUID#definevalues, SCT shim macros, and test function declarations were also removed; use the remaining focused variable unit tests or platform-owned conformance tests for equivalent coverage.
- MdePkg
Library/BaseMmuLibNull/BaseMmuLibNull.infand theMmuLiblibrary class were removed. Platforms must remove nullMmuLibmappings. The header and itsMmuSetAttributes(),MmuClearAttributes(), andMmuGetAttributes()interfaces were also removed; consumers must migrate to the architecture-specific MMU library or the CPU, memory-attribute, or MM memory-attribute protocol appropriate to their execution environment.- The
Cpu2protocol and the BaseLibEnableInterruptsAndSleep()API were removed, includingEFI_CPU2_PROTOCOL_GUID,EFI_CPU2_PROTOCOL,EFI_CPU_ENABLE_AND_WAIT_FOR_INTERRUPT,EnableAndForWaitInterrupt, andgEfiCpu2ProtocolGuid. CPU drivers must stop producing this protocol. For normal DXE idle handling, usegIdleLoopEventGuidand perform the architecture-specific sleep operation from the CPU driver's idle-loop callback, as inUefiCpuPkg/CpuDxe. EFI_SW_DXE_CORE_EC_IMAGE_LOAD_FAILUREwas removed fromPi/PiStatusCode.h. Code emitting this MU-specific status code must remove the report or define and use a platform-owned status-code value; there is no direct replacement inPiStatusCode.h.
- SecurityPkg
- TPM2 helper functions were moved from
Tpm2CommandLibto the newTpm2HelpLiblibrary class. Platforms that build affected modules must mapTpm2HelpLibtoSecurityPkg/Library/Tpm2HelpLib/Tpm2HelpLib.infin their DSC files.
- TPM2 helper functions were moved from
- StandaloneMmPkg
Library/FvLib/FvLib.infwas removed. Consumers should map theFvLiblibrary class toMdePkg/Library/FvLib/FvLib.infand addMdePkg/MdePkg.decas a package dependency if needed.Library/StandaloneMmCoreEntryPointNull/StandaloneMmCoreEntryPointNull.infwas removed. MapStandaloneMmCoreEntryPointtoMdePkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inffor X64 orArmPkg/Library/ArmStandaloneMmCoreEntryPoint/ArmStandaloneMmCoreEntryPoint.inffor AARCH64.
- ManageabilityPkg
- ManageabilityPkg now exists in mu_basecore. Platforms are encouraged to switch to this over mu_feature_ipmi.
See EDK II Breaking Changes for complete descriptions, affected consumers, and migration guidance.
- At the start of 202608, mu_basecore contains 267 commits on top of edk2-stable202608. Full MU changes list can be viewed in the changelog.
Reference platforms which consume release/202608 are available in mu_tiano_platforms.
Please note that this version of EDK2 has specific requirements when it comes to TF-A support. Platforms that consume this version of EDK2 must ensure their TF-A contains this set of patches. Failure to contain the appropriate patches will result in a failure to boot.
This project has adopted the Microsoft Open Source Code of Conduct https://opensource.microsoft.com/codeofconduct/
For more information see the Code of Conduct FAQ https://opensource.microsoft.com/codeofconduct/faq/ or contact opencode@microsoft.com with any additional questions or comments.
Contributions are always welcome and encouraged! Please open any issues in the Project Mu GitHub tracker and read https://microsoft.github.io/mu/How/contributing/
For documentation:
Copyright (c) 2019, TianoCore and contributors. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Subject to the terms and conditions of this license, each copyright holder and contributor hereby grants to those receiving rights under this license a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except for failure to satisfy the conditions of this license) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer this software, where such license applies only to those patent claims, already acquired or hereafter acquired, licensable by such copyright holder or contributor that are necessarily infringed by:
- their Contribution(s) (the licensed copyrights of copyright holders and non-copyrightable additions of contributors, in source or binary form) alone; or
- combination of their Contribution(s) with the work of authorship to which such Contribution(s) was added by such copyright holder or contributor, if, at the time the Contribution is added, such addition causes such combination to be necessarily infringed. The patent license shall not apply to any other combinations which include the Contribution.
Except as expressly stated above, no rights or licenses from any copyright holder or contributor is granted under this license, whether expressly, by implication, estoppel or otherwise.
DISCLAIMER
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.