Releases: microsoft/mu_basecore
dev-v2025020000.0.1
What's Changed
-
Add Missed Mock Functions @apop5 (#1349)
Change Details
## Description Add mock functions under MockUefiLib and Create Mock for CapsuleLib, PerformanceLib, MockUefiBootManagerLib and GenericMemoryTestProtocol
Add mock functions under MockUefiLib and Create Mock for CapsuleLib, PerformanceLib and GenericMemoryTestProtocol
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Unit tests component can call these mock functions success
Integration Instructions
N/A
</blockquote> <hr> </details>
Full Changelog: dev-v2025020000.0.0...dev-v2025020000.0.1
release-v2025020000.0.0
Initial Release notes of 202502 contain a full list of mu changes on top of edk2-stable202405
PRs associated with the commits can be found at the bottom of the information pane reached by clicking on the commit hash
What's Changed## 🚀 Features & ✨ Enhancements
-
Repo File Sync: synced file(s) with microsoft/mu_devops (#1347)
-
[Squash on Rebase] Update release-basetools to use newer ubuntu. (#1343)
-
Add BuildReportEvaluation post build plugin (#1297)
-
Remove component that no longer exists.
-
Revert "Implement MmServicesTableLib for MM Core (#730)"
-
MdeModulePkg: PiSmmIpl: Fix physical address dereferencing
-
BaseTools: Change arm align value from 32 to 64
-
BaseTools: Update tools_def for aarch64
-
[Cherry-Pick]StandaloneMmPkg: MmCommunicationDxe: Add EFI_MM_COMMUNICATION3_PROTOCOL
-
[Cherry-Pick]StandaloneMmPkg: StandaloneMmIplPei: Add EFI_PEI_MM_COMMUNICATION3_PPI
-
[Cherry-Pick]MdeModulePkg: PiSmmIpl: Update MessageLength calculation for MmCommunicate
-
[Cherry-Pick] StandaloneMmPkg: StandaloneMmCore: Parsing new MM communicate header
-
MdeModulePkg/Core/PiSmmCore: Decouple MM core mailbox data
-
[Cherry-Pick] MdeModulePkg: PiSmmCore: Added parser of new MM communicate header
-
Revert "MdeModulePkg/Core/PiSmmCore: Decouple MM core mailbox data"
-
[Cherry-Pick] MdePkg: MmCommunication: Introduce EFI_PEI_MM_COMMUNICATION3_PPI to MdePkg
-
[Cherry-Pick]MdePkg: MmCommunication: Introduce EFI_MM_COMMUNICATION3_PROTOCOL to MdePkg
-
[Cherry-Pick] MdePkg: MmCommunication: Introduce EFI_MM_COMMUNICATE_HEADER_V3 to MdePkg
-
[Cherry-Pick] UefiCpuPkg: Add StmmCore for IntelMmSaveStateLib,SmmCpuPlatformHookLibNull.
-
BaseTools/UefiVarPatcher: Add plugin (#1326)
-
Squash on Rebase: Clean up Edk2 CI files.
-
Move STATIC_ASSERT abstraction to common file for BaseTools usage
-
Add CPU_INFORMATION_HEADER struct to STM_HEADER
-
BaseTools: Add GenStm
-
[CHERRY-PICK] StandaloneMmCorePerformanceLib.inf: Add gEfiEventExitBootServicesGuid
-
[CHERRY-PICK] MdeModulePkg/DxeCorePerformanceLib: Fix incorrect size calculation
-
[CHERRY-PICK] MdeModulePkg: Add Standalone MM perf library support
-
[CHERRY-PICK] MdeModulePkg: Add Standalone MM Core performance support
-
[CHERRY-PICK] MdeModulePkg/DxeCorePerformanceLib: Use EFI_MM_COMMUNICATE_HEADER
-
GitHub Action: Bump robinraju/release-downloader from 1.11 to 1.12 (#1318)
-
pip: bump edk2-pytool-library to 0.23.2, edk2-pytool-extensions to 0.29.2
-
RustToolChain: Bump RustToolChain from 1.80 to 1.84.
- Repo File Sync: synced file(s) with microsoft...
dev-v2025020000.0.0
Initial Release notes of 202502 contain a full list of mu changes on top of edk2-stable202405
PRs associated with the commits can be found at the bottom of the information pane reached by clicking on the commit hash
What's Changed## 🚀 Features & ✨ Enhancements
-
Repo File Sync: synced file(s) with microsoft/mu_devops (#1347)
-
[Squash on Rebase] Update release-basetools to use newer ubuntu. (#1343)
-
Add BuildReportEvaluation post build plugin (#1297)
-
Remove component that no longer exists.
-
Revert "Implement MmServicesTableLib for MM Core (#730)"
-
MdeModulePkg: PiSmmIpl: Fix physical address dereferencing
-
BaseTools: Change arm align value from 32 to 64
-
BaseTools: Update tools_def for aarch64
-
[Cherry-Pick]StandaloneMmPkg: MmCommunicationDxe: Add EFI_MM_COMMUNICATION3_PROTOCOL
-
[Cherry-Pick]StandaloneMmPkg: StandaloneMmIplPei: Add EFI_PEI_MM_COMMUNICATION3_PPI
-
[Cherry-Pick]MdeModulePkg: PiSmmIpl: Update MessageLength calculation for MmCommunicate
-
[Cherry-Pick] StandaloneMmPkg: StandaloneMmCore: Parsing new MM communicate header
-
MdeModulePkg/Core/PiSmmCore: Decouple MM core mailbox data
-
[Cherry-Pick] MdeModulePkg: PiSmmCore: Added parser of new MM communicate header
-
Revert "MdeModulePkg/Core/PiSmmCore: Decouple MM core mailbox data"
-
[Cherry-Pick] MdePkg: MmCommunication: Introduce EFI_PEI_MM_COMMUNICATION3_PPI to MdePkg
-
[Cherry-Pick]MdePkg: MmCommunication: Introduce EFI_MM_COMMUNICATION3_PROTOCOL to MdePkg
-
[Cherry-Pick] MdePkg: MmCommunication: Introduce EFI_MM_COMMUNICATE_HEADER_V3 to MdePkg
-
[Cherry-Pick] UefiCpuPkg: Add StmmCore for IntelMmSaveStateLib,SmmCpuPlatformHookLibNull.
-
BaseTools/UefiVarPatcher: Add plugin (#1326)
-
Squash on Rebase: Clean up Edk2 CI files.
-
Move STATIC_ASSERT abstraction to common file for BaseTools usage
-
Add CPU_INFORMATION_HEADER struct to STM_HEADER
-
BaseTools: Add GenStm
-
[CHERRY-PICK] StandaloneMmCorePerformanceLib.inf: Add gEfiEventExitBootServicesGuid
-
[CHERRY-PICK] MdeModulePkg/DxeCorePerformanceLib: Fix incorrect size calculation
-
[CHERRY-PICK] MdeModulePkg: Add Standalone MM perf library support
-
[CHERRY-PICK] MdeModulePkg: Add Standalone MM Core performance support
-
[CHERRY-PICK] MdeModulePkg/DxeCorePerformanceLib: Use EFI_MM_COMMUNICATE_HEADER
-
GitHub Action: Bump robinraju/release-downloader from 1.11 to 1.12 (#1318)
-
pip: bump edk2-pytool-library to 0.23.2, edk2-pytool-extensions to 0.29.2
-
RustToolChain: Bump RustToolChain from 1.80 to 1.84.
- Repo File Sync: synced file(s) with microsoft...
release-v2024050004.0.2
Initial Release notes of 202502 contain a full list of mu changes on top of edk2-stable202405
PRs associated with the commits can be found at the bottom of the information pane reached by clicking on the commit hash
What's Changed
-
Add CPU\_INFORMATION\_HEADER struct to STM\_HEADER @kenlautner (#1317)
Change Details
## Description
Created a new struct called CPU_INFORMATION_HEADER that is now being included in the STM_HEADER. It siphons space from the MSEG_HEADER which has a significant amount of padding. Currently CPU_INFORMATION_HEADER only contains a UINT32 representing the number of CPUs on the system but extra space is reserved for future fields.
Note that this reduces the MSEG_HEADER size to 1KB and the CPU_INFORMATION_HEADER to 1KB. This is to maintain the 4KB size requirement for the STM_HEADER.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Tested on Intel physical system that uses an STM. The system is able to operate with no issues with the change.
Integration Instructions
N/A
📖 Documentation Updates
-
BaseTools/UefiVarPatcher: Add plugin @makubacki (#1326)
Change Details
## Description
Adds a build plugin that runs in post-build to modify the UEFI variable store in the ROM image based on variable data in an XML if the plugin is enabled.
Details are in UefiVarPatcher/ReadMe.md.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- edk2-pytool-extensions unit tests
- Run plugin locally in mu_tiano_platforms
- Tested on a physical platform build
Integration Instructions
- See
BaseTools/Plugin/UefiVarPatcher/ReadMe.md
for details
dev-v2024050004.0.1
What's Changed
-
Complete MockBootServicesTableLib.cpp @VivianNK (#1304)
Change Details
## Description
Completed the MockUefiBootServicesTableLib.cpp with missing functions. Also created a EFI_SYSTEM_TABLE instance with MockSimpleTextIn and MockSimpleTextOut
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?
- Backport to release branch?
How This Was Tested
Local CI ran
Integration Instructions
N/A
-
StandaloneMmPkg: Add Google Mock Library for StandaloneMmMemLib @SeolforHsieh (#1287)
Change Details
## Description
Added StandaloneMmMemLib to be used by Googletests
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added StandaloneMmMemLib to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
</blockquote> <hr> </details>
-
MdePkg: Add all mock functions in the MockMmServicesTableLib @SeolforHsieh (#1279)
Change Details
## Description
Add all mock functions in the MockMmServicesTableLib
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Fill all functions in the MockMmServicesTableLib and able to successfully
include its functionsIntegration Instructions
N/A
</blockquote> <hr> </details>
-
MdePkg: Add Google Mock Protocol for MmCommunication2 @SeolforHsieh (#1288)
Change Details
## Description
Added MockMmCommunication2 to be used by Googletests
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added MockMmCommunication2 to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
</blockquote> <hr> </details>
-
[CHERRY-PICK] VS22 linker changes from edk2 [Rebase \& FF] @makubacki (#1284)
Change Details
## Description
Cherry picks a commit upstreamed (reworked from Mu original) and a similar commit made upstream to eliminate Mu delta.
[NEW] MdeModulePkg/HiiDatabaseDxe: Avoid struct assignment
Struct assignments are not permitted in EDK2, as they may be converted
by the compiler into calls to the 'memcpy' intrinsic, which is not
guaranteed to be available in EDK2.So replace the assignment with a call to CopyMem (), and -while at it-
replace the loop with a single CopyMem () call, as the loop operates on
items that are contiguous in memory.
[NON-FUNCTIONAL REFACTOR] MdeModulePkg/HiiDatabaseDxe: Prevent linker error
Prevent an issue where
memcpy()
instrinsic is being used after
recent MSVC linker update in windows-2022 VM image from 14.31.31103
to 14.32.31326.
[DROP MU_CHANGE TAGS] MdePkg/BaseMemoryLib: Prevent potential VS2022 linker failure
After updating between various VS2022 versions such as 17.4 to
17.5, , linker failures began to appear in several modules because
memset
is an unresolved symbol.The following functions in BaseMemoryLib/MemLibGeneric.c have their
loop pattern replaced with thememset
intrinsic function:InternalMemSetMem16()
InternalMemSetMem32()
InternalMemSetMem64()
An example of an error related to
InternalMemSetMem64()
in
VariableSmmRuntimeDxe is shown below:INFO - BaseMemoryLib.lib(MemLibGeneric.obj) : error LNK2001: unresolved external symbol memset INFO - <...>\VariableSmmRuntimeDxe.dll : fatal error LNK1120: 1 unresolved externals
This was reproduced in several environments including:
-
Public VM image:
https://github.com/actions/runner-images/blob/win22/20230226.1/images/win/Windows2022-Readme.md -
Locally when updating from 17.4.4 to 17.5.1
Note: This image (with 17.4) does not have this issue
https://github.com/actions/runner-images/blob/win22/20230219.1/images/win/Windows2022-Readme.mdThis change updates the type cast for the destination buffer to be
a pointer tovolatile
data to prevent this optimization with a
relatively minimum delta to prior implementation.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- VS22 build and CI.
- QEMU boot.
Integration Instructions
- N/A
🐛 Bug Fixes
-
[CHERRY-PICK] DebugMacroCheck: Do not show progress bar with zero items @makubacki (#1296)
Change Details
## Description
In the case that the total provided to the
_show_progress()
function is zero, do not show a progress bar to prevent abortsZeroDivisionError
when calculating the progress percentage.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- Test progress bar with zero and non-zero total
Integration Instructions
- N/A
-
MdeModulePkg/SmmCorePerformanceLib: Remove offset from comm buffer dest space @makubacki (#1285)
Change Details
## Description
A check validates that if perf records are being written to the comm buffer (not a buffer pointed to from the comm buffer) that enough space is available after the
SMM_BOOT_RECORD_COMMUNICATE
header in the comm buffer for the boot record size requested. That check currently removes the offset from the boot record size but that is not needed since the offset is applied to the source buffer and the record size is what is copied into the destination (comm buffer).- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- Send multiple rounds of perf data across the comm buffer using offsets across the calls.
Integration Instructions
- N/A
-
ShellPkg: Removed EmptyParamList and SfoParamList from MockShellLib.cpp @v-bhavanisu (#1280)
Change Details
## Description
Removed EmptyParamList and SfoParamList from MockShellLib.cpp, since these are already defined as externs under ShellLib.h.
Please refer to edk2 PR, where they suggested to remove EmptyParamList and SfoParamList, since it was giving GCC build Error.
tianocore/edk2#10582- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added MockShellLib to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
Full Changelog: dev-v2024050004.0.0...dev-v2024050004.0.1
release-v2024050004.0.1
What's Changed
-
Complete MockBootServicesTableLib.cpp @VivianNK (#1304)
Change Details
## Description
Completed the MockUefiBootServicesTableLib.cpp with missing functions. Also created a EFI_SYSTEM_TABLE instance with MockSimpleTextIn and MockSimpleTextOut
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?
- Backport to release branch?
How This Was Tested
Local CI ran
Integration Instructions
N/A
-
StandaloneMmPkg: Add Google Mock Library for StandaloneMmMemLib @SeolforHsieh (#1287)
Change Details
## Description
Added StandaloneMmMemLib to be used by Googletests
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added StandaloneMmMemLib to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
</blockquote> <hr> </details>
-
MdePkg: Add all mock functions in the MockMmServicesTableLib @SeolforHsieh (#1279)
Change Details
## Description
Add all mock functions in the MockMmServicesTableLib
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Fill all functions in the MockMmServicesTableLib and able to successfully
include its functionsIntegration Instructions
N/A
</blockquote> <hr> </details>
-
MdePkg: Add Google Mock Protocol for MmCommunication2 @SeolforHsieh (#1288)
Change Details
## Description
Added MockMmCommunication2 to be used by Googletests
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added MockMmCommunication2 to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
</blockquote> <hr> </details>
-
[CHERRY-PICK] VS22 linker changes from edk2 [Rebase \& FF] @makubacki (#1284)
Change Details
## Description
Cherry picks a commit upstreamed (reworked from Mu original) and a similar commit made upstream to eliminate Mu delta.
[NEW] MdeModulePkg/HiiDatabaseDxe: Avoid struct assignment
Struct assignments are not permitted in EDK2, as they may be converted
by the compiler into calls to the 'memcpy' intrinsic, which is not
guaranteed to be available in EDK2.So replace the assignment with a call to CopyMem (), and -while at it-
replace the loop with a single CopyMem () call, as the loop operates on
items that are contiguous in memory.
[NON-FUNCTIONAL REFACTOR] MdeModulePkg/HiiDatabaseDxe: Prevent linker error
Prevent an issue where
memcpy()
instrinsic is being used after
recent MSVC linker update in windows-2022 VM image from 14.31.31103
to 14.32.31326.
[DROP MU_CHANGE TAGS] MdePkg/BaseMemoryLib: Prevent potential VS2022 linker failure
After updating between various VS2022 versions such as 17.4 to
17.5, , linker failures began to appear in several modules because
memset
is an unresolved symbol.The following functions in BaseMemoryLib/MemLibGeneric.c have their
loop pattern replaced with thememset
intrinsic function:InternalMemSetMem16()
InternalMemSetMem32()
InternalMemSetMem64()
An example of an error related to
InternalMemSetMem64()
in
VariableSmmRuntimeDxe is shown below:INFO - BaseMemoryLib.lib(MemLibGeneric.obj) : error LNK2001: unresolved external symbol memset INFO - <...>\VariableSmmRuntimeDxe.dll : fatal error LNK1120: 1 unresolved externals
This was reproduced in several environments including:
-
Public VM image:
https://github.com/actions/runner-images/blob/win22/20230226.1/images/win/Windows2022-Readme.md -
Locally when updating from 17.4.4 to 17.5.1
Note: This image (with 17.4) does not have this issue
https://github.com/actions/runner-images/blob/win22/20230219.1/images/win/Windows2022-Readme.mdThis change updates the type cast for the destination buffer to be
a pointer tovolatile
data to prevent this optimization with a
relatively minimum delta to prior implementation.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- VS22 build and CI.
- QEMU boot.
Integration Instructions
- N/A
🐛 Bug Fixes
-
[CHERRY-PICK] DebugMacroCheck: Do not show progress bar with zero items @makubacki (#1296)
Change Details
## Description
In the case that the total provided to the
_show_progress()
function is zero, do not show a progress bar to prevent abortsZeroDivisionError
when calculating the progress percentage.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- Test progress bar with zero and non-zero total
Integration Instructions
- N/A
-
ShellPkg: Removed EmptyParamList and SfoParamList from MockShellLib.cpp @v-bhavanisu (#1280)
Change Details
## Description
Removed EmptyParamList and SfoParamList from MockShellLib.cpp, since these are already defined as externs under ShellLib.h.
Please refer to edk2 PR, where they suggested to remove EmptyParamList and SfoParamList, since it was giving GCC build Error.
tianocore/edk2#10582- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added MockShellLib to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
release-v2024050003.1.0
What's Changed
-
MdePkg: Add Google Mock Library for SmmMemLib @SeolforHsieh (#1265)
Change Details
## Description
Added MockSmmMemLib to be used by Googletests
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added MockSmmMemLib to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
</blockquote> <hr> </details>
-
BaseTools/ClangPdbToolChain: Improve CLANG\_BIN guidance @makubacki (#1278)
Change Details
## Description
Explain whether the default path or a user provided path was used. If the default path is used and not present, then indicate so and give the shell variable name to set to a custom installation bin directory.
Before
After
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- Test with clang path set to a valid and invalid path.
Integration Instructions
- N/A
-
[CHERRY-PICK] MdePkg/IndustryStandard: Adds SPMI macros @slo2024 (#1275)
Change Details
## Description
Adds macro which defines SPMI table revision
and interface type as per the specification.Cc: Michael D Kinney michael.d.kinney@intel.com
Cc: Liming Gao gaoliming@byosoft.com.cn
Cc: Zhiguang Liu zhiguang.liu@intel.com
Cc: Sami Mujawar Sami.Mujawar@arm.com
Cc: Pierre Gondois pierre.gondois@arm.com
Signed-off-by: Abdul Lateef Attar AbdulLateef.Attar@amd.com
(cherry picked from commit 0958b76)- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Built successfully
Integration Instructions
N/A
-
[CHERRY-PICK] Fix lcov 2.0 in HostBasedUnitTestRunner [Rebase \& FF] @makubacki (#1274)
Change Details
## Description
Fixes issues encountered with lcov 2.0 after moving to the new Ubuntu 24.04 image. Already encountered in the edk2 Fedora container. Commits made there after the 2411 stable tag are cherry-picked here.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- Container build with code coverage enabled in Ubuntu 24.04
Integration Instructions
- N/A
-
Added MockShellCommandLib @v-bhavanisu (#1264)
Change Details
## Description
Added MockShellCommandLib to be used by Googletests
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added MockShellCommandLib to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
-
[REBASE \& FF] MpDxe: Produce MpServices protocol as a standalone Mp dxe driver @vineelko (#1253)
Change Details
## Description
This PR creates a fork of MP services functionality into a standalone Dxe driver. It is necessary to bring up platforms which do not rely on UEFI C based CpuDxe code. Existing Cpu Dxe and its MP services code remains the same.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Q35 Qemu boots.
Integration Instructions
No changes needed.
</blockquote> <hr> </details>
-
[Cherry-Pick] MdePkg: Add rest mock functions for Mock UefiRuntimeServicesTableLib @v-frankchou (#1256)
Change Details
## Description Add rest mock functions for Mock UefiRuntimeServicesTableLib for google test.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Tested in module integrated with this MockUefiRuntimeServicesTableLib and the result is passed.
Integration Instructions
Include the MockUefiRuntimeServicesTableLib.inf in the LibraryClasses section of a dsc file.
</blockquote> <hr> </details>
-
[CHERRY-PICK] Move UFS spec headers into MdePkg/IndustryStandard files and update to UFS 4.0 @zurcher (#1254)
Change Details
# Description
(Cherry-pick from edk2. Commits should be applied as-is and not merged into a single commit.)
The spec-based header definitions for UFS drivers are currently in two identical private header files. This change set moves the definitions into the IndustryStandard folder with two separate files tracking relevant UFS spec documents. This will allow for future spec updates to be made in a single location, and allows for other drivers to access these definitions.
Additionally, this set updates Ufs.h to the UFS 4.0 spec.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added UfsBlockIoPei and UfsPassThruDxe to OvmfPkg, and built successfully.
Integration Instructions
Drivers can now include
<IndustryStandard/Ufs.h>
to interact with UFS interfaces such as<Protocol/UfsDeviceConfig.h>
.
🚀 Features & ✨ Enhancements
-
MdeModulePkg/UefiBootManagerLib: Register var policy on notify @makubacki (#1276)
Change Details
## Description
Variable policy is currently set in the constructor. In some system designs, variable policy might not be running when the constructor of this library is executed. To make the policy registration process more robust, move registration to a protocol notify.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- Verify notify is called on variable policy protocol installation and register policy successfully.
- Verify subsequent calls to the protocol gracefully exit by recognizing
EFI_ALREADY_STARTED
is returned fromRegisterBasicVariablePolicy()
.
Integration Instructions
N/A
dev-v2024050004.0.0
What's Changed
-
MdePkg: Add Google Mock Library for SmmMemLib @SeolforHsieh (#1265)
Change Details
## Description
Added MockSmmMemLib to be used by Googletests
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added MockSmmMemLib to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
</blockquote> <hr> </details>
-
BaseTools/ClangPdbToolChain: Improve CLANG\_BIN guidance @makubacki (#1278)
Change Details
## Description
Explain whether the default path or a user provided path was used. If the default path is used and not present, then indicate so and give the shell variable name to set to a custom installation bin directory.
Before
After
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- Test with clang path set to a valid and invalid path.
Integration Instructions
- N/A
-
[CHERRY-PICK] MdePkg/IndustryStandard: Adds SPMI macros @slo2024 (#1275)
Change Details
## Description
Adds macro which defines SPMI table revision
and interface type as per the specification.Cc: Michael D Kinney michael.d.kinney@intel.com
Cc: Liming Gao gaoliming@byosoft.com.cn
Cc: Zhiguang Liu zhiguang.liu@intel.com
Cc: Sami Mujawar Sami.Mujawar@arm.com
Cc: Pierre Gondois pierre.gondois@arm.com
Signed-off-by: Abdul Lateef Attar AbdulLateef.Attar@amd.com
(cherry picked from commit 0958b76)- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Built successfully
Integration Instructions
N/A
-
[CHERRY-PICK] Fix lcov 2.0 in HostBasedUnitTestRunner [Rebase \& FF] @makubacki (#1274)
Change Details
## Description
Fixes issues encountered with lcov 2.0 after moving to the new Ubuntu 24.04 image. Already encountered in the edk2 Fedora container. Commits made there after the 2411 stable tag are cherry-picked here.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
- Container build with code coverage enabled in Ubuntu 24.04
Integration Instructions
- N/A
-
Added MockShellCommandLib @v-bhavanisu (#1264)
Change Details
## Description
Added MockShellCommandLib to be used by Googletests
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Added MockShellCommandLib to GoogleTests and able to successfully include its functions
Integration Instructions
N/A
-
[Cherry-Pick][Rebase \& FF] Adding TPM ACPI table shell viewer and FF-A definition @kuqin12 (#1263)
Change Details
## Description
This change adds the patch series from EDK2 to support viewing the TPM ACPI table from UEFI shell. And also updated the ACPI definition according to ACPI spec.
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?
- Backport to release branch?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
[REBASE \& FF] MpDxe: Produce MpServices protocol as a standalone Mp dxe driver @vineelko (#1253)
Change Details
## Description
This PR creates a fork of MP services functionality into a standalone Dxe driver. It is necessary to bring up platforms which do not rely on UEFI C based CpuDxe code. Existing Cpu Dxe and its MP services code remains the same.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Q35 Qemu boots.
Integration Instructions
No changes needed.
</blockquote> <hr> </details>
-
Add resource descriptor hob v2 for memory attributes usage @kuqin12 (#1258)
Change Details
## Description
This change adds the implementation of supporting "resource descriptor hob type 2", which will extends the existing definition of resource descriptor hob with an attribute field.
This field can be used to provide the actual attributes needs to be set for the memory region, instead of relying on the state of the system.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
This change was tested on QEMU Q35 and SBSA systems and booted to Windows.
Integration Instructions
For platforms needing to propagate specific memory attributes (especially the cache attributes) to the DXE phase,
BuildResourceDescriptorWithCacheHob
should be used to produce resource descriptors (v2).
-
BaseTools/OverrideValidation: Sort files prior to hashing. @apop5 (#1145)
Change Details
## Description
Override validation allows hashing a directory through the -t parameter.
When generating an override validation hash for a directory, it was found that the order of the files can be different when running under linux vs under windows.
To address this discrepancy, a new module hash has been crated ModuleHash2Cal, which sorts the files prior to hashing.
Since existing projects use hashes based on ModuleHashCal, when performing override validation checking, check against the original ModuleHashCal and the ModuleHash2Cal prior to generating an override validation failure.
Generating a new hash value will only use the ModuleHash2Cal.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested changes on a project using existing project (to ensure backward compatibility)
Tested changes on the project under linux that was failingTested latest modifications on mu_feature_mm_supv to ensure no regression.
Integration Instructions
N/A
-
[Cherry-Pick] MdePkg: Add rest mock functions for Mock UefiRuntimeServicesTableLib @v-frankchou (#1256)
Change Details
## Description Add rest mock functions for Mock UefiRuntimeServicesTableLib for google test.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Tested in module integrated with this MockUefiRuntimeServicesTableLib and the result is passed.
Integration Instructions
Include the MockUefiRuntimeServicesTableLib.inf in the LibraryClasses section of a dsc file.
</blockquote> <hr> </details>
release-v2024050003.0.1
What's Changed
-
[Rebase \& FF] STM Support @kenlautner (#1251)
Change Details
## Description
Adds SMM Transfer Monitor (STM) infrastructure changes.
Cherry-picks the following commits:
c851695 - BaseTools: Add the GenStm C tool9b6df1c - MdeModulePkg/TpmMeasurementLibNull: Add MM_CORE_STANDALONE
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?
- Backport to release branch?
How This Was Tested
Tool tested and is confirmed to function correctly.
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Added MockHiiLib, MockShellLib, MockHiiDatabase protocol @v-bhavanisu (#1248)
Change Details
## Description
Added MockHiiLib, MockShellLib, MockHiiDatabase protocol to be used by GoogleTests
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?
- Backport to release branch?
How This Was Tested
Consumed these mocks in Googletests of other repos and build successful
Integration Instructions
N/A
</blockquote> <hr> </details>
🐛 Bug Fixes
-
[CHERRY-PICK] StandaloneMmPkg: Call PeCoffLoaderUnloadImage When Unloading Image @os-d (#1252)
Change Details
## Description
Today, StandaloneMmCore calls PeCoffLoaderRelocateImage() when loading images, which calls PeCoffLoaderRelocateImageExtraAction(). On AARCH64, this sets the image memory protections accordingly, RO + E on code sections, RW + NX on data sections.
However, if an image fails to start (i.e. its entry point returns a failure) StandaloneMmCore does not call the corresponding PeCoffLoaderUnloadImage, which calls PeCoffLoaderUnloadImageExtraAction, which on AARCH64 undoes the memory protections on the image, setting the whole memory region back to RW + NX. The core then frees this memory and the next allocation attempts to use it, which results in a data abort if a read only memory region is attempted to be written to. Theoretically, other instances of the PeCoffExtraActionLib could take other actions and so regardless of architecture, the contract with the PeCoffLoader should be maintained.
This patch calls PeCoffLoaderUnloadImage when an image's entry point returns a failure, before freeing the image memory. This meets the contract and follows the DXE core behavior.
Cherry-picked (with a little massaging due to uncherry-picked changes in edk2) from: tianocore/edk2@21cbba1
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Tested on an AARCH64 platform where a Standalone MM driver was returning an error, causing the system to crash. With this patch, the system can boot.
Integration Instructions
N/A.
</blockquote> <hr> </details>
dev-v2024050003.0.1
What's Changed
-
[Rebase \& FF] STM Support @kenlautner (#1251)
Change Details
## Description
Adds SMM Transfer Monitor (STM) infrastructure changes.
Cherry-picks the following commits:
c851695 - BaseTools: Add the GenStm C tool9b6df1c - MdeModulePkg/TpmMeasurementLibNull: Add MM_CORE_STANDALONE
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?
- Backport to release branch?
How This Was Tested
Tool tested and is confirmed to function correctly.
Integration Instructions
N/A
</blockquote> <hr> </details>
-
Added MockHiiLib, MockShellLib, MockHiiDatabase protocol @v-bhavanisu (#1248)
Change Details
## Description
Added MockHiiLib, MockShellLib, MockHiiDatabase protocol to be used by GoogleTests
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?
- Backport to release branch?
How This Was Tested
Consumed these mocks in Googletests of other repos and build successful
Integration Instructions
N/A
</blockquote> <hr> </details>
🐛 Bug Fixes
-
[CHERRY-PICK] StandaloneMmPkg: Call PeCoffLoaderUnloadImage When Unloading Image @os-d (#1252)
Change Details
## Description
Today, StandaloneMmCore calls PeCoffLoaderRelocateImage() when loading images, which calls PeCoffLoaderRelocateImageExtraAction(). On AARCH64, this sets the image memory protections accordingly, RO + E on code sections, RW + NX on data sections.
However, if an image fails to start (i.e. its entry point returns a failure) StandaloneMmCore does not call the corresponding PeCoffLoaderUnloadImage, which calls PeCoffLoaderUnloadImageExtraAction, which on AARCH64 undoes the memory protections on the image, setting the whole memory region back to RW + NX. The core then frees this memory and the next allocation attempts to use it, which results in a data abort if a read only memory region is attempted to be written to. Theoretically, other instances of the PeCoffExtraActionLib could take other actions and so regardless of architecture, the contract with the PeCoffLoader should be maintained.
This patch calls PeCoffLoaderUnloadImage when an image's entry point returns a failure, before freeing the image memory. This meets the contract and follows the DXE core behavior.
Cherry-picked (with a little massaging due to uncherry-picked changes in edk2) from: tianocore/edk2@21cbba1
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Backport to release branch?
How This Was Tested
Tested on an AARCH64 platform where a Standalone MM driver was returning an error, causing the system to crash. With this patch, the system can boot.
Integration Instructions
N/A.
</blockquote> <hr> </details>
Full Changelog: dev-v2024050003.0.0...v2024050003.0.1