Releases: microsoft/mu_basecore
v2024050000.1.2
What's Changed
-
[CHERRY-PICK] Added all mock function in MockUefiLib under MdeModulePkg @v-sbolisetti (#1206)
Change Details
## Description
this is a cherry-pick of cd58170
- Backport to release branch?
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Unit tests component can call these mock functions success
Integration Instructions
N/A
🐛 Bug Fixes
-
[Cherry-Pick] Fix naming convention in FirmwareVolume2 gmock @TsunFeng (#1207)
Change Details
## Description
Fix naming convention for FirmwareVolume2 gmock.
- Rename
FV_ReadFile
->FvReadFile
- Rename
FV_WriteFile
->FvWriteFile
cherry-pick of
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Unit tests component can call these mock functions success
Integration Instructions
N/A
- Rename
Full Changelog: v2024050000.1.1...v2024050000.1.2
v2023110013.0.1
What's Changed
-
[CHERRY-PICK] UnitTestFrameworkPkg: Use TianoCore mirror of subhook s… @makubacki (#1210)
Change Details
## Description
Change subhook url from https://github.com/Zeex/subhook to https://github.com/tianocore/edk2-subhook because old url is no longer available.
Also align .gitmodules file to use consistent LF line endings.
Signed-off-by: Michael D Kinney [email protected]
(cherry picked from edk2 commit 95d8a1c255cfb8e063d679930d08ca6426eb5701)- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- Build and CI
Integration Instructions
- Update all repos to use this new submodule URL for subhook
since the original repo is no longer available.
Full Changelog: v2023110013.0.0...v2023110013.0.1
v2024050000.1.1
What's Changed
-
[Cherry-Pick] StandaloneMmPkg: Initialize 'WillReturn' variable @apop5 (#1200)
Change Details
## Description
The local variable 'WillReturn' was being used without prior initialization in some code paths.
This patch ensures that 'WillReturn' is properly initialized to prevent undefined behavior.cherry-picked from edk2 tianocore/edk2@30b6d08
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
A platform using StandaloneMM failed to dispatch some handlers. It was tracked back to needing this edk2 cherry-pick is needed to handle the paths through the code.
Integration Instructions
N/A
-
[CHERRY-PICK] Bring in more mocks from release/202311 @VivianNK (#1197)
Change Details
## Description
Cherry-picked from dev/202405: #1182
Add mock functions under MockUefiLib and Create Mock for CapsuleLib, PerformanceLib and GenericMemoryTestProtocol
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Unit tests component can call these mock functions success
Integration Instructions
N/A
</blockquote> <hr> </details>
-
[CHERRY-PICK] Added missing fix for ProductDataFormatter missed from 202311 (#1195) @kenlautner (#1196)
Change Details
## Description
A fix for the ProductDataFormatter script was missed during the transition from 202311 to 202405. This just adds it back.
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 physical hardware. Product Data is correctly being found.
Integration Instructions
N/A
</blockquote> <hr> </details>
Full Changelog: v2024050000.1.0...v2024050000.1.1
v2024050000.1.0
What's Changed
-
[Cherry-Pick] MdePkg: Add Gmocks for libraries @VivianNK (#1189)
Change Details
## Description
Cherry-picked from dev (0ba6a3d)
Mock Libraries:
MdePkg\Test\Mock\Library\GoogleTest\MockCpuLib
MdePkg\Test\Mock\Library\GoogleTest\MockPciSegmentLib
MdePkg\Test\Mock\Library\GoogleTest\MockReportStatusCodeLib
MdePkg\Test\Mock\Library\GoogleTest\MockSmmServicesTableLibMock Protocol:
MdePkg\Test\Mock\Include\GoogleTest\Protocol\MockMpService.hSigned-off-by: jack Hsieh [email protected]
Cc: Maintainer Shruti Gupta [email protected]
Cc: Reviewer Shruti Gupta [email protected]- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Mocks used by unit tests
Integration Instructions
N/A
-
[Cherry-Pick] [RB\&FF] MdeModulePkg/HiiDatabaseDxe: Remove assert for VarStoreId = 0 @apop5 (#1186)
Change Details
Description
It is legal for the VarStoreId of a question to
be 0 per the UEFI spec:
"Specifies the identifier of a previously
declared variable store to use when storing the
question’s value. A value of zero indicates
no associated variable store."Instead of hitting an assert just skip this
question as there is no value to return.</blockquote> <hr> </details>
-
[Rebase \& FF] MdePkg: Add gmock for PcdLib @VivianNK (#1179)
Change Details
## Description
Cherry-pick from dev/202405:
a45519aFor 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
Consumed in a GoogleTest
Integration Instructions
N/A
-
[REBASE\&FF] Cherry-pick EDKII commits @Javagedes (#1172)
Change Details
## Description Cherry-pick the following commits from EDKII / backport from dev/202405:
- tianocore/edk2@30e53f8 into release/202405
- tianocore/edk2@1715d672 into release/202405.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
-
[CHERRY-PICK] MdePkg: Add mocks for AcpiTable and more @VivianNK (#1167)
Change Details
## Description
Create mock for AcpiTable, FirmwareVolume2 and
AcpiSystemDescriptionTable protocols.Cherry-picked from dev/202405:
fe6a1f9- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Mock consumed in local unit test.
Integration Instructions
N/A
🚀 Features & ✨ Enhancements
-
[CHERRY-PICK] MdeModulePkg: Gcd: Only Update gMemoryMap Attributes if Correct GCD Type @os-d (#1175)
Change Details
## Description
Currently whenever gDS->SetMemorySpaceCapabilities() is called, it attempts to set the corresponding attributes in the gMemoryMap descriptor. However, gMemoryMap only contains entries from GCD types EfiGcdMemoryTypeSystemMemory and EfiGcdMemoryTypeMoreReliable, so for all other types a failure is reported in the code. This is a failure that is expected, so it does not provide value and can lead to real failures being ignored.
This patch updates the gDS->SetMemorySpaceCapabilities() code to only call into updating gMemoryMap if the GCD type is SystemMemory or MoreReliable, to avoid spurious errors being reported. This also avoids the expensive operation of searching through gMemoryMap for entries we know we will fail to find.
Cherry-picked from edk2 via dev/202405.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A.
Integration Instructions
N/A.
</blockquote> <hr> </details>
-
[REBASE\&FF] CryptoPkg: Require exact crypto version match @Javagedes (#1160)
Change Details
## Description
Crypto versioning is not currently backwards compatible. This change updates the check to require an exact match of the crypto version.
Cherry-pick from dev/202405: 34455f5
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
Full Changelog: v2024050000.0.2...v2024050000.1.0
v2023110013.0.0
What's Changed
-
[REBASE\&FF] Cherry-pick EDKII commits @Javagedes (#1170)
Change Details
## Description
Cherry-pick the following commits from EDKII:
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
</blockquote> <hr> </details>
⚠️ Breaking Changes
-
[Rebase \& FF] Fix PI status code @kuqin12 (#1187)
Change Details
## Description
We upstreamed the correct PI status code to PI spec and should get rid of MU_CHANGE to avoid conflict.
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 only involves definition migration.
Integration Instructions
For applicable components, platform needs to update these definitions in their code.
EFI_SW_EC_MEMORY_TYPE_INFORMATION_CHANGE
->EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
EFI_SW_EC_RELEASE_ASSERT
->EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
</blockquote> <hr> </details>
Full Changelog: v2023110012.1.0...v2023110013.0.0
v2024050000.0.2
What's Changed
-
[CHERRY-PICK][REBASE\&FF] ImageValidation.py: Support gitignore style syntax for file exclusion @Javagedes (#1154)
Change Details
## Description
Cherry-pick of #1140 into dev/202405
This commit is also in release/202308
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
- Squash into 6310e1e
How This Was Tested
Cherry-pick of #1140 into dev/202405
Integration Instructions
Cherry-pick of #1140 into dev/202405
</blockquote> <hr> </details>
-
[CHERRY-PICK] .pytool/ImageValidation: Print invalid dir paths @makubacki (#1155)
Change Details
## Description
-
Print directory paths considered invalid to aid debugging
-
Build native OS file paths using os.path.join for walk dirs
-
Clean up trailing whitespace throughout the file
-
Impacts functionality?
-
Impacts security?
-
Breaking change?
-
Includes tests?
-
Includes documentation?
How This Was Tested
- Local build with the plugin
- Tested invalid directory printing by adding an invalid arch to
TARGET_ARCH
(so the directory doesn't exist in build output).
Integration Instructions
N/A - Minor tweaks
-
-
[Cherry-Pick] Support Report Status Code in the UefiPxe driver. @apop5 (#1138)
Change Details
## Description
Report PXE error status via Status Code, with this design, it will be flexible to register a status code handler via gEfiRscHandlerProtocolGuid to output the customized error code to other telemetry service.
The subclass code is
EFI_IO_BUS_IP_NETWORK
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
🐛 Bug Fixes
-
[REBASE\&FF] MdeModulePkg/SMM: Initialize 'WillReturn' variable @Javagedes (#1159)
Change Details
## Description
The local variable 'WillReturn' was being used without prior initialization in some code paths.
This patch ensures that 'WillReturn' is properly initialized to prevent undefined behavior.Cherry-pick from EDKII tianocore/edk2@30b6d08
Cherry-pick from dev/202405 36f763d- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Cherry-pick from EDKII tianocore/edk2@30b6d08
Integration Instructions
Cherry-pick from EDKII tianocore/edk2@30b6d08
</blockquote> <hr> </details>
Full Changelog: v2024050000.0.1...v2024050000.0.2
v2023110012.1.0
What's Changed
-
[202311] ImageValidation.py: Support gitignore style syntax for file exclusion @Javagedes (#1141)
Change Details
## Description
Add gitignore style syntax for file exclusion
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Ensured existing syntax (filename only) continues to work. Ensured gitignore style syntax now works.
Integration Instructions
N/A
-
Mock Functions for ReportStatusCodeHandler Library \& RegistryNotify , ConnectController in MockUefiBootServicesTableLib @v-sbolisetti (#1122)
Change Details
## Description
Added Mock Functions for ReportStatusCodeHandler Library & RegistryNotify , ConnectController in MockUefiBootServicesTableLib
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Unit tests component can call these mock functions success
Integration Instructions
N/A
-
Add mock functions under MockUefiRuntimeServicesTableLib, MockUefiRuntimeServicesTableLib and Create Mock for DxeServicesTableLib @YiTa-AMI (#1109)
Change Details
## Description
Add mock functions under MockUefiRuntimeServicesTableLib, MockUefiRuntimeServicesTableLib and Create Mock for DxeServicesTableLib
For details on how to complete 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
Unit tests component can call these mock functions success
Integration Instructions
N/A
-
[CHERRY-PICK] MdeModulePkg/FaultTolerantWriteDxe: Fix buffer overrun issue @os-d (#1134)
Change Details
## Description
-
This PR aims to prevent a buffer overrun issue found in FtwGetLastWriteHeader function.As per the current code, when there is a malformed blocks (with all bytes as 0s) then
Offset += FTW_WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites, FtwHeader->PrivateDataSize)
would access beyond FtwWorkSpaceSize. -
Also added the signature check to validate work space
-
Impacts functionality?
-
Impacts security?
-
Breaking change?
-
Includes tests?
-
Includes documentation?
How This Was Tested
Tested on failing platform.
Integration Instructions
N/A.
-
-
[202311] ImageValidation.py: Don't parse entire image @Javagedes (#1126)
Change Details
## Description
This commit modifies the PE parsing functionality to only parse the headers of the image, rather than the entire image. This change is made to improve performance and also the probability of failing to parse the entire image. This comes after this commit (erocarrera/pefile#365) in pefile resulted in efi image parsing failures, breaking the build.
This commit also wraps the parsing of the image in a try-except block to catch any exceptions that may be raised during parsing, to cleanly exit.
See: microsoft/mu_tiano_platforms#1025 and erocarrera/pefile#421
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Validated pipelines build on mu_tiano_platforms
Integration Instructions
N/A
-
Add mock functions under MockUefiLib and Create Mock for CapsuleLib, PerformanceLib, MockUefiBootManagerLib and GenericMemoryTestProtocol @YiTa-AMI (#1111)
Change Details
## Description
Add mock functions under MockUefiLib and Create Mock for CapsuleLib, PerformanceLib and GenericMemoryTestProtocol
For details on how to complete 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
Unit tests component can call these mock functions success
Integration Instructions
N/A
-
[202311] ImageValidation: Determine profile from inf MODULE\_TYPE @Javagedes (#1125)
Change Details
## Description
In previous iterations, the profile was determined by parsing the makefile, looking for MODULE_TYPE. As each OS / tool chain may use a different makefile type, this was not a reliable method. This updates the plugin to read the INF for the compiled efi file to determine the MODULE_TYPE and thus the profile.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Validated on qemuq35 that the module type was successfully parsed.
Integration Instructions
N/A
🚀 Features & ✨ Enhancements
-
[2311][Rebase \& FF] STM Support @makubacki (#1113)
Change Details
## Description
Adds SMM Transfer Monitor (STM) infrastructure changes.
Commit Summary
-
MdeModulePkg/TpmMeasurementLibNull: Add MM_CORE_STANDALONE
-
BaseTools: Add the GenStm C tool
-
Impacts functionality?
-
Impacts security?
-
Breaking change?
-
Includes tests?
-
Includes documentation?
How This Was Tested
- Build with GenStm
- Generate an aux file using the build rule
- Link the TpmMeasureLibNull instance to a Standalone MM Core module
Integration Instructions
- No change is needed unless this support is needed
- Review the GenStm arguments in help output for more details
-
Full Changelog: v2023110012.0.0...v2023110012.1.0
v2024050000.0.1
What's Changed
-
[202405] Add Cumulative CodeQL changes. @apop5 (#1137)
Change Details
## Description
Cumulative CodeQL fixes for the release 202405 Branch.
13dff4f
f26f86d
e97c273
564f262
769b019
4828ebb
4c372a2
5f165d2
006dc1f
c99d59f
f648481
c70d96e
7c60e33
2deccbe
2c4db39
ec7a96c
45219b5
b47eb1f
1cd17c1
fec2cd9
326dde3
a420f66
4f4cc7d
d2e5518
9496601
83ec756
192d343
55ad1f2
e71970b
be03b5b
b9d04a0
f495191
6acf82c
2c6ee99
8398844
f90d7a8
5464d16
4c082e3
f8616ec
070d25d
442aab8
fe7078e
e0b2964
798cfa3
92dc249
0c3eaac- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Ran Local CI.
Booted on physical system.Integration Instructions
N/A
-
[CHERRY-PICK] MdeModulePkg/FaultTolerantWriteDxe: Fix buffer overrun issue @os-d (#1131)
Change Details
## Description
-
This PR aims to prevent a buffer overrun issue found in FtwGetLastWriteHeader function.As per the current code, when there is a malformed blocks (with all bytes as 0s) then
Offset += FTW_WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites, FtwHeader->PrivateDataSize)
would access beyond FtwWorkSpaceSize. -
Also added the signature check to validate work space
-
Impacts functionality?
-
Impacts security?
-
Breaking change?
-
Includes tests?
-
Includes documentation?
How This Was Tested
Cherry-picked from edk2.
Integration Instructions
N/A.
</blockquote> <hr> </details>
-
-
[202405] ImageValidation.py: Don't parse entire image @Javagedes (#1127)
Change Details
## Description
This commit modifies the PE parsing functionality to only parse the headers of the image, rather than the entire image. This change is made to improve performance and also the probability of failing to parse the entire image. This comes after this commit (erocarrera/pefile#365) in pefile resulted in efi image parsing failures, breaking the build.
This commit also wraps the parsing of the image in a try-except block to catch any exceptions that may be raised during parsing, to cleanly exit.
See: microsoft/mu_tiano_platforms#1025 and erocarrera/pefile#421
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Validated pipelines build on mu_tiano_platforms
Integration Instructions
N/A
-
[202405] ImageValidation: Determine profile from inf MODULE\_TYPE @Javagedes (#1124)
Change Details
## Description
In previous iterations, the profile was determined by parsing the makefile, looking for MODULE_TYPE. As each OS / tool chain may use a different makefile type, this was not a reliable method. This updates the plugin to read the INF for the compiled efi file to determine the MODULE_TYPE and thus the profile.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Validated on qemuq35 that the module type was successfully parsed.
Integration Instructions
N/A
</blockquote> <hr> </details>
📖 Documentation Updates
-
Update ReadMe.rst to add mock-related breaking changes @VivianNK (#1130)
Change Details
## Description
Release notes for 202311 -> 202405
Cmocka mocks and stubs were moved so file paths using them need to be updated.Remove markdown syntax for links.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
N/A
Integration Instructions
N/A
Full Changelog: v2024050000.0.0...v2024050000.0.1
v2024050000.0.0
Initial Release notes of 202405 contain a full list of mu changes on top of edk2-stable202405
PR associated with the commit can be found at the bottom of the information pane reached by clicking on the commit hash
What's Changed
🚀 Features & ✨ Enhancements
-
UefiCpuPkg: CpuPageTableLib: Remove Empty Test Suite
-
Create mocks for PlatformHookLib and PciLib (#1094)
-
[CHERRY-PICK] UefiCpuPkg/PiSmmCpuDxeSmm: Consume PcdCpuSmmApSyncTimeout2
-
[CHERRY-PICK] UefiCpuPkg: Refine the PCD usage comment
-
[Cherry-Pick] UefiCpuPkg: Add PcdCpuSmmApSyncTimeout2 PCD (#1096)
-
Create the Google Test mocks for SmmBase2 Protocol.
-
Add mock functions under MockPciIoProtocol and Create Mock for Smbio, UsbIo and NvmExpressPassthru protocol
-
Create Mock for IsaHc protocol
-
Added MockServiceBinding and Add mock functions under MockUefiBootServicesTableLib, MockUefiLib and MockUefiDevicePathLib
-
Add deprecation warning support to OverrideValidation plugin (#742)
-
Update BaseCryptLib tests to reference the PCDs before running (#1034)
-
Added MockUefiDevicePathLib and gBS_AllocatePool under MockUefiBootServicesTableLib
-
Added mock functions on UefiLib
-
Added mock functions for TimerLib
-
Added mock functions for PciExpressLib
-
Added mock functions for UefiBootServicesTableLib
-
BaseTools/Plugin/HostBasedUnitTestRunner: Fix invalid escape in HostBasedUnitTest.py (#899)
-
Set EFI_MEMORY_SP as System Memory (#886)
-
Added MockPciIoProtocol and MockLocalApicLib (#890)
-
GitHub Action: Bump robinraju/release-downloader from 1.10 to 1.11 (#1116)
-
pip: Update all pip-requirements to latest. (#1120)
-
Repo File Sync: 202405 Branch Transition Updates. (#1119)
-
CodeQlFilters.yml: Add global CodeQL filter file to repo.
-
ShellPkg: CodeQL Fixes.
-
UefiCpuPkg: CodeQL Fixes.
-
MdeModulePkg: CodeQL Fixes.
-
MdePkg: CodeQL Fixes.
-
NetworkPkg: CodeQL Fixes.
-
StandaloneMmPkg: CodeQL Fixes.
-
Updated Release notes. (#1107)
-
BaseTools/build_rule.template: Add FILE_GUID to the environment for Rust modules (#1108)
-
MdeModulePkg: Correct the placement of the variable policy locking
-
MdePkg: Create Google mock for ReadOnlyVariable2
-
Revert "MdeModulePkg: Updates Debug Statements for Mem/Page.c"
Change Details
...
v2023110012.0.0
What's Changed
-
Create mocks for PlatformHookLib and PciLib @TsunFeng (#1094)
Change Details
## Description
Create mocks for PlatformHookLib and PciLib
- 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, ...
- Security - Does the change have a direct security impact on an application,
- 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, ...
- Breaking change - Will anyone consuming this change experience a break
- 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, ...
- Documentation - Does the change contain explicit documentation additions
How This Was Tested
Unit tests component can call PlatformHookLib and PciLib mock functions success
Integration Instructions
N/A
- Impacts functionality?
-
[Cherry-Pick][Rebase \& FF] UefiCpuPkg: Consume PcdCpuSmmApSyncTimeout2. @apop5 (#1097)
Change Details
## Description
In addition to what was said in the Cherry-Pick in #1096.
It looks like Edk2 picked up these changes, reverted them, and then added them back because Ovmf packages had already started consuming them.
The changes should not impact existing platforms, because the changes only modify PiSmmCpuDxeSmm.
- 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, ...
- Security - Does the change have a direct security impact on an application,
- 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, ...
- Breaking change - Will anyone consuming this change experience a break
- 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, ...
- Documentation - Does the change contain explicit documentation additions
How This Was Tested
Local CI.
Integration Instructions
N/A
- Impacts functionality?
-
[Cherry-Pick] UefiCpuPkg: Add PcdCpuSmmApSyncTimeout2 PCD @apop5 (#1096)
Change Details
## Description Cherry-Picking PCD definition from edk2. This does not change the basecore functionality to consume this pcd.
Provide the capability for platform to specifies the 2nd timeout value in microseconds for the BSP/AP in SMM to wait for one another to enter SMM.
The added interface can enhance the flexibility of timeout configuration. In some cases, certain processors may not be able to enter SMI, and prolonged waiting could lead to kernel soft/hard lockup. We have now defined two timeouts. The first timeout can be set to a smaller value to reduce the waiting period. Processors that are unable to enter SMI will be woken up through SMIIPL to enter SMI, followed by a second waiting period. The second timeout can be set to a larger value to prevent delays in processors entering SMI case due to the long instruction execution.
Cc: Ray Ni [email protected]
Cc: Rahul Kumar [email protected]
Cc: Gerd Hoffmann [email protected]- 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, ...
- Security - Does the change have a direct security impact on an application,
- 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, ...
- Breaking change - Will anyone consuming this change experience a break
- 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, ...
- Documentation - Does the change contain explicit documentation additions
How This Was Tested
Local CI
Integration Instructions
N/A
- Impacts functionality?
⚠️ Breaking Changes
-
[REBASE\&FF][CHERRY-PICK] ImageValidation: Add default configuration @Javagedes (#1104)
Change Details
Previously, ImageValidation was an "opt-in" plugin by setting a build variable `PE_VALIDATION_PATH`, however with this pull request, Image Validation will be on by default, with some default configuration that can be changed with a custom configuration yaml file.
The default requirements are:
- All efi binaries must not be both write and execute
- All efi binaries must have an image base of 0x0
- All dxe phase binaries must be 4k section aligned, with the one exception of AARCH64 DXE_RUNTIME_DRIVERS, which must be 64k aligned.
compiled binaries that need to be opted out of, can do so by adding an
IGNORE_LIST
in the configuration file{ "IGNORE_LIST": ["Shell.efi", "etc"] }
A cherry-pick of #1100 into release/202311
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Confirmed successful execution of the plugin on Windows with QemuQ35 and Ubuntu with QemuSbsa
Integration Instructions
Platforms that begin to fail this test will need to generate a configuration yaml file, and set a stuart build variable,
PE_VALIDATION_PATH
to it. It is suggested to do this in the Platform'sPlatformBuild.py
.The Correct Integration is to evaluate the binary and why it is not meeting the requirements. The platform can elect to update the compilation of the binary to meet the requirements, add or override validation rules for certain MODULE_TYPEs, or simply add the binary to the ignore list. Please review the Plugin's readme.md file for more details on doing any of these things.
-
BaseTools/build\_rule.template: Set additional Rust module linker flags @makubacki (#1098)
Change Details
## Description
This change sets the ImageBase in the PE header for Rust modules to
0
so they do not have a preferred base. This is similar to the EFI images produced by the edk2 build system. The subsystem type is also set toefi_boot_service_driver
instead of the default target specification value ofEFI_APPLICATION
. Details for changing the subsystem type are here:https://doc.rust-lang.org/nightly/rustc/platform-support/unknown-uefi.html#requirements
Ideally, these values would be set as individual
target.<triple>.rustflags
in.cargo/config.toml
. However, we override the/MAP
argument using-C linker-args
inbuild_rule.txt
to the build output directory. This must be set dynamically since the output directory and module name are based on per module values.Since the cargo configuration file does not support reading environment variables and setting an environment there in a
[env]
section would be too late to impact the commands that run inbuild_rules.txt
(cargo is called from cargo make based on those rules), this is the simplest approach to retain the map file path in addition to the new changes.In the future, this may be moved to a common target specification so the values are available without these changes.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- Checked
ImageBase
andSubsystem
of EFI images in output directory
to confirm expected values.
Integration Instructions
This ...