Releases: microsoft/mu_plus
v2024050001.0.1
What's Changed
-
[CHERRY-PICK] MsCorePkg: Move MockDeviceBootManagerLib Path @VivianNK (#605)
Change Details
## Description
Change PR572 MockDeviceBootManagerLib Path to match Guideline
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
Unit tests component can call these mock functions success
Integration Instructions
N/A
-
[Cherry-Pick] MfciPkg: Correct Mfci script for switchover to using edk2toollib Variable Services @apop5 (#601)
Change Details
## Description
When switching over to using edk2toollib's UefiVariable, SetVariable was not updated to only expect a single return value.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested on a system verifying the python error no longer occurs.
Integration Instructions
N/A
</blockquote> <hr> </details>
-
[CHERRY-PICK] Remove MemoryOutsideEfiMemoryMapIsInaccessible Test @os-d (#594)
Change Details
## Description
MemoryOutsideEfiMemoryMapIsInaccessible was attempting to test that memory outside the EFI_MEMORY_MAP was marked EFI_MEMORY_RP or unmapped, however this is not a valid test as we expect there to be ranges outside of the EFI_MEMORY_MAP, such as GCD non-existent memory and non-runtime MMIO ranges. This patch removes the test.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Cherry-picked from dev.
Integration Instructions
N/A.
</blockquote> <hr> </details>
-
[CHERRY-PICK] AARCH64 AdvLoggerPkg CI @os-d (#589)
Change Details
## Description
AdvLoggerPkg.dsc was not setup to run CI for AARCH64 and as a result the ARM64 parts of this pkg were broken. This commit fixes the various build and CI breaks and enables CI for AARCH64 in AdvLoggerPkg.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CP'd from dev.
Integration Instructions
N/A.
</blockquote> <hr> </details>
Full Changelog: v2024050001.0.0...v2024050001.0.1
v2024050001.0.0
What's Changed
-
Add DxeCore AdvancedLogger GoogleTest @VivianNK (#569)
Change Details
## Description
Add GoogleTest for AdvancedLogger DxeCore Lib
Add mock for AdvancedLoggerHdwPortLib
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI
Integration Instructions
N/A
-
AdvLoggerPkg: Add GoogleTest for AdvancedLoggerPeiLib @VivianNK (#555)
Change Details
## Description Add GoogleTest for AdvancedLoggerPeiLib. Add a mock for the AdvancedLoggerPpi to be used in the GoogleTest.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Local CI. Building the test locally.
Integration Instructions
N/A
-
Add MockDeviceBootManagerLib @YiTa-AMI (#572)
Change Details
## Description
Create Mock for DeviceBootManagerLibNull
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
⚠️ Breaking Changes
-
[CHERRY-PICK][REBASE \& FF] Adding PcdAdvancedLogger Changes to 202405 @Raymond-MS (#566)
Change Details
## Description
Cherry picking commits from 202311 to 202405 related to the PcdAdvancedLogger.
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
Built and tested in 202311 branch
Integration Instructions
Users of PcdAdvancedLoggerPeiInRam will need to remove that PCD from
DSCs. It is not expected there are users as the PCD does not work,
although platforms may have specifically set it to FALSE.
🐛 Bug Fixes
-
AdvLoggerPkg: Exit from write call if signature mismatch @VivianNK (#565)
Change Details
## Description
Current behavior allows the PPI to be used if there is a signature or version mismatch. This fix returns from the function to exit gracefully and prevent memory corruption.
Create a bug to track this behavior elsewhere in Advanced Logger Library: #567
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Local CI and unit test.
Integration Instructions
N/A
📖 Documentation Updates
-
[CHERRY-PICK][REBASE \& FF] Adding PcdAdvancedLogger Changes to 202405 @Raymond-MS (#566)
Change Details
## Description
Cherry picking commits from 202311 to 202405 related to the PcdAdvancedLogger.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Built and tested in 202311 branch
Integration Instructions
N/A
Full Changelog: v2024050000.0.0...v2024050001.0.0
v2023110003.0.0
What's Changed
⚠️ Breaking Changes
-
Removed All References to PcdAdvancedLoggerPeiInRam @Raymond-MS (#540)
Change Details
## Description
The PCD PcdAdvancedLoggerPeiInRam does not work and is being removed. For Intel systems, the PEI phase uses cache-as-ram and determines that there is no way to allocate memory. This PCD was supposed to signal to the logger that it could allocate memory, however, it would error as memory allocation was not allowed in that phase.
- 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
Ran the CI build for all packages in mu_plus for the X64 architecture. All tests passing.
Integration Instructions
Users of PcdAdvancedLoggerPeiInRam will need to remove that PCD from DSCs. It is not expected there are users as the PCD does not work, although platforms may have specifically set it to FALSE.
- Impacts functionality?
🐛 Bug Fixes
-
DxePagingAuditTestApp: Remove MemoryOutsideEfiMemoryMapIsInaccessible Test @os-d (#532)
Change Details
## Description
MemoryOutsideEfiMemoryMapIsInaccessible was attempting to test that memory outside the EFI_MEMORY_MAP was marked EFI_MEMORY_RP or unmapped, however this is not a valid test as we expect there to be ranges outside of the EFI_MEMORY_MAP, such as GCD non-existent memory and non-runtime MMIO ranges. This patch removes the test. Closes #531.
- 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
Tested on Q35.
Integration Instructions
N/A.
- Impacts functionality?
📖 Documentation Updates
-
DxePagingAuditTestApp: Remove MemoryOutsideEfiMemoryMapIsInaccessible Test @os-d (#532)
Change Details
## Description
MemoryOutsideEfiMemoryMapIsInaccessible was attempting to test that memory outside the EFI_MEMORY_MAP was marked EFI_MEMORY_RP or unmapped, however this is not a valid test as we expect there to be ranges outside of the EFI_MEMORY_MAP, such as GCD non-existent memory and non-runtime MMIO ranges. This patch removes the test. Closes #531.
- 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
Tested on Q35.
Integration Instructions
N/A.
- Impacts functionality?
-
Removed All References to PcdAdvancedLoggerPeiInRam @Raymond-MS (#540)
Change Details
## Description
The PCD PcdAdvancedLoggerPeiInRam does not work and is being removed. For Intel systems, the PEI phase uses cache-as-ram and determines that there is no way to allocate memory. This PCD was supposed to signal to the logger that it could allocate memory, however, it would error as memory allocation was not allowed in that phase.
- 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
Ran the CI build for all packages in mu_plus for the X64 architecture. All tests passing.
Integration Instructions
Users of PcdAdvancedLoggerPeiInRam will need to remove that PCD from DSCs. It is not expected there are users as the PCD does not work, although platforms may have specifically set it to FALSE.
- Impacts functionality?
-
Removed reference to PcdAdvancedHdwLoggerDisable in the README @Raymond-MS (#541)
Change Details
## Description
Removed reference to PcdAdvHdwLoggerDisable in the ReadMe MarkDown document.
In commit 3833901, PcdAdvancedSerialLoggerDisable in AdvLoggerPkg.dec was changed to PcdAdvancedLoggerHdwPortDisable but in the ReadMe was changed to PcdAdvancedHdwLoggerDisable.
This PCD was later removed from the .DEC in commit 8770182 but wasn't removed from the ReadMe due to the naming difference.
- 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 c...
- Impacts functionality?
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
-
[Cherry-Pick] MsGraphicsPkg: Correct positioning of trash can icon in Load Option's list box (#552)
-
[Cherry-Pick] Switch to use edk2-pytool-library UefiVariableSupportLib (#500)
-
[Cherry-Pick]Add debug level prefix for advanced logger memory message entries - Driver implementation (#525)
-
Rust Dependency: Update r-efi requirement from 4.3.0 to 5.0.0 (#558)
-
pip: Update all pip-requirements to latest. (#562)
-
Repo File Sync: 202405 Branch Transition Updates. (#561)
-
Updated Release Notes. (#551)
-
AdvLoggerPkg: Add Dxe AdvancedLoggerLib Unit Test (#537)
-
Modify AdvancedLoggerDxelib
-
Updated logic to allocate more data once it needs to query memory map (#547)
-
Fix a debug string format specifier. (#544)
-
UEFI HID DXE V2 to improve Idiomatic Rust patterns
-
Updated UefiStubLib location.
-
gMuEventPreExitBootServicesGuid has been depreciated in favor of the EDK2 standard gEfiEventBeforeExitBootServicesGuid.
-
gMuEventPreExitBootServicesGuid has been depreciated in favor of the EDK2 standard gEfiEventBeforeExitBootServicesGuid.
⚠️ Breaking Changes
-
Adding MuArmGicExLib and update the usage accordingly (#548)
v2023110002.0.2
What's Changed
-
[Cherry-Pick] Fix a debug string format specifier. @apop5 (#545)
Change Details
## Description
Fix an issue where the wrong format specifier was used for an ASCII string.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Observed that ID_NOT_FOUND string was properly formatted.
Integration Instructions
N/A
-
Switch to use edk2-pytool-library UefiVariableSupportLib @apop5 (#500)
Change Details
## Description
There are multiple copies of VariableSupportLib floating across repos, mostly only supporting Windows.
Functionality has been consolidated into edk2-pytool-library version 0.21.7. Support for Linux has been added.
Switch MfciPolicy.py, DecodeUefiLog.py and UefiVarAudit.py to use consolidated version from edk2-pytool-library.
Removed local copies of VariableSupportLib.py
- 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
Integration Instructions
N/A
- Impacts functionality?
🐛 Bug Fixes
-
MsGraphicsPkg: Correct positioning of trash can icon in Load Option's list box @julorenz117 (#552)
Change Details
## Description
Fixes #554
- Adjusted CellTrashcanBounds.Left to be CellBounds->Right - TrashcanHitAreaWidth
to ensure the trash can icon is displayed to the right of the list box. - Updated width parameter in SWM_RECT_INIT2 to use TrashcanHitAreaWidth instead
of CheckBoxHitAreaWidth for correct dimensions.
This resolves the issue of the trash can icon overlapping with the ListBox's deletable item's checkbox thus ensuring its related operations work correctly: activating/deactivating the Load Option or deleting it.
How This Was Tested
Verified that a Load Option allowed to be deleted, such as 'Windows Boot Manager', can now be deleted by pressing the trash icon in its proper position or activated via its check-box.
Integration Instructions
N/A
- Adjusted CellTrashcanBounds.Left to be CellBounds->Right - TrashcanHitAreaWidth
Full Changelog: v2023110002.0.1...v2023110002.0.2
v2023110002.0.1
What's Changed
-
Add debug level prefix for advanced logger memory message entries - Driver implementation @liqiqiii (#525)
Change Details
## Description
Add debug level prefix for advanced logger memory message entries - Driver implementation
This change added the existing metadata - debug level into the final
advanced logger memory entries through AdvancedFileLogger. This is a followup PR for 243bd18.
After this PR checked in, we can easily track the DEBUG_ERRORs through advanced logger files on UEFI that included this driver.
Added an extra space in the decodeuefilog.py to improve readability of the log.
For the for loop in the code, ran with perf_trace enabled, and influence is very low and can be ignored.
Updated the prefix of python script to match the design here.
Use [ERROR] instead of [DEBUG_ERROR], which could save overall log file sizes and memory buffer usage.- 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
Tested with two platforms that uses AdvancedFileLogger and can see debug level
prefixes in the logs in the EFI Partition and USB UefiLogs folder.
[MM_CORE] [ERROR] Image - MmSupervisorCore.pdbIntegration Instructions
N/A
- Impacts functionality?
Full Changelog: v2023110002.0.0...v2023110002.0.1
v2023110002.0.0
What's Changed
-
UEFI HID DXE V2 to improve Idiomatic Rust patterns @magravel (#504)
Change Details
- use more rust idiomatic naming convention - use `let else` syntax for better readability - Organize import with the same logic in every file. 1. crate from rust 2. crate from crate.io 3. crate from Microsoft 4. use from the same crate
For each item, place an "x" in between
[
and]
if true. Example:[x]
.
(you can also check items in the GitHub UI)- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Test that the keyboard was still working.
Integration Instructions
N/A
-
AdvLoggerPkg: AssertLib update PI Status Code to match PI spec @VivianNK (#530)
Change Details
## Description
Remove usage of custom Pi Status code to use one defined in spec,
EFI_SW_EC_ILLEGAL_SOFTWARE_STATE
.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI
Integration Instructions
For any telemetry report that used
EFI_SW_EC_RELEASE_ASSERT
, replace withEFI_SW_EC_ILLEGAL_SOFTWARE_STATE
-
MsGraphicsPkg: Fix issues in coordinate calculation @wenbhou (#512)
Change Details
## Description
Fix issues in coordinate calculation to solve On-screen keyboard render issue, and potential issues in other UI widgets.
See #518The SWM_RECT structure defines a standard bounding rectangle by specifying the left, top, right, and bottom coordinates. For any SWM_RECT instance, the width is calculated as
width = right - left + 1
, and the height is determined byheight = bottom - top + 1
. When the origin point of a rectangle is known, along with its width and height, the right coordinate can be derived usingright = left + width - 1
, and the bottom coordinate is given bybottom = top + height - 1
. Ensuring the correct application of these formulas prevents the On-Screen Keyboard (OSK) boundary from exceeding its defined limits.- 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
Boot to UEFI menu, all UI items rendered correctly and OSK functioned well.
Integration Instructions
N/A
- Impacts functionality?
⚠️ Breaking Changes
-
MsCorePkg: Update telemetry logging with PI Spec EFI Status Code @VivianNK (#524)
Change Details
## Description
Previously in MemoryTypeInformationChangeLib, we were using a custom Status Code. That code is being removed from MU_BASECORE in PR #1001 and we're using an existing code from PI Spec, EFI_SW_EC_ILLEGAL_SOFTWARE_STATE instead.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
CI
Integration Instructions
Upgrading to or already using mu_basecore release/202311, change any reference to the macro as follows:
Any instances ofEFI_SW_EC_MEMORY_TYPE_INFORMATION_CHANGE
will need to be replaced withEFI_SW_EC_ILLEGAL_SOFTWARE_STATE
🐛 Bug Fixes
-
UefiTestingPkg: DxePagingAuditTestApp Fix Inaccessible Memory Test @os-d (#528)
Change Details
## Description
Security.Misc.MemoryOutsideEfiMemoryMapIsInaccessible was failing because it was not checking the return status of
ValidateRegionAttributes, which could return EFI_NO_MAPPING to indicate a given range was not in the page table. There are two independent criteria that can be satisfied to indicate that a region is inaccessible: it is marked EFI_MEMORY_RP or it is not mapped in the page table. This test was only checking the first case and not the second case. With this update it now correctly checks both cases.- 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
Tested on Q35 and saw that the formerly failing test is now passing.
Integration Instructions
N/A.
- Impacts functionality?
Full Changelog: v2023110001.0.3...v2023110002.0.0
v2023110001.0.3
What's Changed
-
Add debug level prefix for advanced logger memory message entries @liqiqiii (#523)
Change Details
# Preface
Please ensure you have read the contribution docs prior
to submitting the pull request. In particular,
pull request guidelines.Description
This change added the existing metadata - debug level into the final advanced logger memory entries, it can differentiate the different debug levels, DEBUG_INFO, DEBUG_ERROR, etc.
We don't need to touch firmware as debug level info is already part of metadata, so we only need to update the decode script.
It's useful to be able to filter out the specific debug level msgs that we care about and make data processing of uefi logs possible.
For example, DEBUG_ERROR level prints are generally very important and worth analyzing. One blocking thing now is that we can't tell the difference between different debug level msgs because not all DEBUG_ERROR will have an "error:" as the prefix of the debug msg, and search for "error" will also be noisy as it's a commonly used word. After this PR checked in, we can easily track the DEBUG_ERRORs.For each item, place an "x" in between
[
and]
if true. Example:[x]
.
(you can also check items in the GitHub UI)- 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
Tested with a platform that uses advancedlogger and can seedebug level prefixes in the msg.
22:36:22.840 : [MM_CORE] [DEBUG_INFO]AdvancedLoggerGetLoggerInfo: LoggerInfo=70F37000
22:36:22.857 : [MM_CORE] [DEBUG_ERROR]ERROR - The FV at 0xFFE60000 is invalid!Integration Instructions
N/A
- Impacts functionality?
Full Changelog: v2023110001.0.2...v2023110001.0.3
v2023110001.0.2
What's Changed
-
MfciPkg: Removed TargetVerifyPhaseSuite Tests suite since it did not contain any tests. @apop5 (#522)
Change Details
## Description
MfciVerifyPolicyAndChangeRoTHostTest.c and MfciVerifyPolicyAndChangeHostTest.c both contained an additonal registered test suite that did not contain any tests.
MsWheaPkg also contained a test suite where the tests associated were not registered correctly.
This started failing after fd8a09795aa where empty test suites will now be reported as an error.
- 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 passed after change.
Integration Instructions
N/A
- Impacts functionality?
-
AdvLoggerPkg: Remove NVMe Check from File Logger File Creation @os-d (#517)
Change Details
## Description
Currently, File Logger will only create the UefiLogs directory on the ESP if the device is an NVMe device. This is an unneccesary restriction and is removed in this patch.
- 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
Tested on a system with a non-NVMe drive that failed to have the FileLogger directory created before this change and succeeds now.
Integration Instructions
If the integrating platform has a filesystem that does not support being logged to, it should set PcdAdvancedFileLoggerForceEnable to FALSE so that the directory is not attempted to be created.
- Impacts functionality?
-
Apply more idiomatic Rust patterns in RustAdvancedLoggerDxe @magravel (#498)
Change Details
## Description
Use more idiomatic rust pattern and remove the explicitly implementation of Sync and Send since these traits are automatically implemented.
Note: changes in
pointer.rs
are cause bycargo fmt
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Ran
cargo make test
Integration Instructions
N/A
-
MfciPkg \& MsCorePkg: Fix unit test compilation errors. @apop5 (#505)
Change Details
## Description
Unit tests started failing due to compilation errors. This stemmed from a bug fixed in microsoft/mu_basecore#891. Once this bug was fixed, the unit tests starting to be compiled which blocked pipelines.
For each item, place an "x" in between
[
and]
if true. Example:[x]
.
(you can also check items in the GitHub UI)- 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
Ran Local CI to verify unit tests change.
Integration Instructions
N/A
- Impacts functionality?
-
Add support for Digitizer touch input usages as pointer buttons @joschock (#496)
Change Details
## Description
This PR adds support for Digitizer switch usages (HID Usage Page 0xD, usages 0x42 through 0x46) as buttons in the AbsolutePointer implementation.
See https://usb.org/document-library/hid-usage-tables-15 for usage tables.
- Impacts functionality?
- Add support for Digitizer switch usages as buttons in the pointer interface.
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Functionally verified with a touch panel implementation that exposes these HID usages.
Integration Instructions
No special integration required.
</blockquote> <hr> </details>
- Impacts functionality?
-
Fixing precedence of "not" and bitwise operators @kuqin12 (#497)
Change Details
# Preface
Please ensure you have read the contribution docs prior
to submitting the pull request. In particular,
pull request guidelines.Description
This change fixed the incorrect precendence where the "not" operator will be evaluated before the bitwise operator.
For each item, place an "x" in between
[
and]
if true. Example:[x]
.
(you can also check items in the GitHub UI)- 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
The test does not change result.
Integration Instructions
N/A
</blockquote> <hr> </details>
- Impacts functionality?
🔐 S...
v2023020006.1.3
What's Changed
🐛 Bug Fixes
-
[REBASE \& FF] Advanced Logger Cherry-Picks From 202311 @os-d (#520)
Change Details
## Description
This PR cherry-picks one full commit and one very small part of another commit from 202311:
Remove NVMe Check from File Logger
This is a complete cherry-pick from c024ed1. It adds support for File Logger to create the UefiLogs directory on non-NVMe devices.
Allocate AdvLogger Pre-Mem Pages as EfiBootServicesData
This is a part of be9a3d2. The rest of this commit is not taken because it is a new feature (a new version of the AdvLogger structure). This portion of the commit was taken because it is a bugfix for when ARM64 switched over to 64k runtime page allocation granularity. Because PeiCore has a hardcoded assumption it is operating pre-mem, which is not true for ARM64, we cannot allocate a minimum of 16 pages for a runtime type at the start of PeiCore (when AdvLogger is initialized there). We instead need to allocate as EfiBootServicesData (which does not have the runtime page allocation granularity) and reallocate as EfiRuntimeServicesData after permanent memory is installed.
- 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
N/A
Integration Instructions
N/A
- Impacts functionality?
Full Changelog: v2023020006.1.2...v2023020006.1.3