Releases: microsoft/mu_basecore
v2022080002.1.3
What's Changed
-
[CHERRY-PICK] [202208] SpellCheck: force no color codes @Javagedes (#531)
Change Details
## Description
The SpellCheck plugin runs cspell, which uses ANSI color codes when displaying results. When ANSI color codes are used in a terminal that does not support ANSI, the color codes are displayed as text, which causes the rest of SpellCheck plugin to fail as the expected path is not a real path as it starts and ends with color codes:
i.e.
\�[90m.\Path\To\File.txt�[39m
instead of.\Path\To\File.txt
This change forces cspell to not colorize the output.
- 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, ...
- 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, ... - 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, ...
How This Was Tested
CI
Integration Instructions
N/A
</blockquote> <hr> </details>
Full Changelog: v2022080002.1.2...v2022080002.1.3
v2023020002.2.0
What's Changed
-
Use gMuEventPreExitBootServicesGuid for SnpDxe to issue PxeShutdown @JoeLopez333 (#522)
Change Details
## Description Fixes https://github.com//issues/520
SnpDxe registers for an ExitBootServices callback and runs the PXE_OPCODE_SHUTDOWN and PXE_OPCODE_STOP commands for any network controllers that the driver is attached to. If the Bus Master Enable bit is cleared by PciBusDxe before this point, then completions returned by the network cards will be unreadable to their drivers during the shutdown sequence.
Register the SnpDxe callback for gMuEventPreExitBootServicesGuid instead of gEfiEventExitBootServicesGuid to ensure the correct ordering:
- ExitBootServices event
- Network card shutdown sequence is completed
- BME is disabled on PCI bridges (if configured)
- 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
verified on ARM platform with two network cards
Integration Instructions
N/A
</blockquote> <hr> </details>
-
MdeModulePkg/NvmExpressDxe: Add robustness changes with rebase [Rebase \& FF] @makubacki (#523)
Change Details
## Description
PR #516 was accidentally squashed instead of rebased. For future source
history clarity, this PR replaces that with the rebased set of commits.The actual content remains the same.
- 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?
-
WinRcPath: improve performance @Javagedes (#512)
Change Details
## Description
WinRcPath generally takes about 2 seconds to run, due to calling multiple .bat files behind the scenes. This change reduces this time to ~0 seconds due to the following changes:
-
It will attempt to load the path from the cache, which is located a $(WORKSPACE)/Conf/.rc_path. If the loading is a success and the rc_path still exists, it will use it.
-
If the cache did not exist, or the path provided by the cache does not exist, it will find the rc path via the .bat files. If that succeeds, it will write the path to the cache.
- 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
- Confirmed the plugin will create a cache file on first run and use it in later runs
- Confirmed updating the path in the cache to a wrong value will invoke the typical means to find the cache and save the correct path into the cache
Integration Instructions
N/A
</blockquote> <hr> </details>
-
-
FlattenPdbs: improve performance @Javagedes (#511)
Change Details
## Description
FlattenPdbs generally takes anywhere from .8 to 1.5 seconds for a given platform. This change reduces this time to .3 to .4 seconds due to the following changes:
-
Only copy pdbs in the the OUTPUT folder. The original code did not check what folder the pdb was in, and would copy the same pdb multiple times due to the same file siting in OUTPUT and DEBUG folders.
-
Performs a hardlink rather than copying the file. This improves performance as a hardlink is treated as it's own file, but points the same physical file on disk. This means we create just the file metadata, and don't need to copy the data the file contains. A reference counter ensures that deleting the file in one place does not not delete the file on disk (unless it is the last reference), so the other hardlinks are not affected.
-
The above change also allows the code to check the ino value (a unique identifier for a file on disk) and skip the making of a hardlink if it is already linked. This is a small optimization as running a build only rebuilds modules that have changed.
- 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
- Verified performance improvements
- Verified non-changed files are not copied to the bdb folder
- verified changed files are copied to the pdb folder
- Verified files deleted in the pdb folder are replaced
Integration Instructions
N/A
</blockquote> <hr> </details>
-
-
Set OpenCppCoverage working dir to avoid files in root @cfernald (#507)
Change Details
## Description
Set the working dir for OpenCppCoverage. OpenCppCoverage will ALWAYS create a file called LastCoverageResults.log in it's current working directory, regardless of it's working_dir parameter. This change makes sure this file is opened in the build dir instead.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested with local builds
...
v2023020002.1.5
What's Changed
-
Update IORT SMMUv3 IORT node flags for HTTU to include dirty state support @JoeLopez333 (#500)
Change Details
# Preface
Please ensure you have read the contribution docs prior
to submitting the pull request. In particular,
pull request guidelines.Description
Fixes #498
The flag for HTTU override in an SMMUv3 node in the IORT table is currently define in MU_BASECORE/MdePkg/Include/IndustryStandard/IoRemappingTable.h:63 as:
#define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1
The length of this field is actually 2 bits. Possible values are:
0b0000: Hardware update of the Access flag and dirty state are not supported.
0b0001: Support for hardware update of the Access flag for Block and Page descriptors.
0b0010: As 0b0001, and adds support for hardware update of the Access flag for Block and Page descriptors. Hardware update of dirty state is supported.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 on Arm64 platform
Integration Instructions
update flags in IORT table if consuming this flag definition
- Impacts functionality?
-
BaseTools: Detect library class mismatch [REBASE\&FF] @Javagedes (#499)
Change Details
## Description Performs a check that will verify that the library instance implements the specified library by ensuring a LIBRARY_CLASS definition exists in the INF [Defines] section matches the library.
That is to say, for the following example:
TestLib|Path/To/BaseTestLib.inf
, that BaseTestLib.inf has
LIBRARY_CLASS = TestLib
defined in the [Defines] section.Changes the previous check for library overrides to be a warning instead
of 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
Built multiple platforms to confirm warning showed properly.
Integration Instructions
While no Integration is required, a new build warning will be seen in the build log. The warning is in the following format:
$(DSC_PATH): warning: $(INF) does not support LIBRARY_CLASS $(LIBRARY_CLASS)
where$(DSC_PATH)
is the DSC being built,$(INF)
is the INF described in the DSC, and$(LIBRARY_CLASS)
is the name of the library class that the INF is attempting to represent. (i.e.,$(LIBRARY_CLASS)|$(INF)
orTestLib|Path\to\BaseTestLib.inf
).To resolve these errors, verify the library class is real (The Library class should have a header file associated with it in the DEC of the defining package). If it is real, then ensure the library instance truly implements the library class and add it to the DEFINE section of the library INF. If not, update the DSC to use the correct library class.
If this warning appears, it will appear at the beginning of the build command:
INFO - Processing meta-data .
INFO - Architecture(s) = IA32 X64
INFO - Build target = DEBUG
INFO - Toolchain = VS2022
INFO -
INFO - Active Platform = c:\src\Path\Platform.dsc
INFO - build...
INFO - c:\src\Path\Platform.dsc(...): warning: c:\src\Path\BaseTestLib.inf does not support LIBRARY_CLASS TestLib
- Impacts functionality?
🔐 Security Impacting
-
CryptEc.c CodeQL Fix @TaylorBeebe (#492)
Change Details
## Description
Free calls could have been called with NULL arguments.
- 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?
Full Changelog: v2023020002.1.4...v2023020002.1.5
v2023020002.1.4
What's Changed
-
Revert "Stop USB enumeration in case a malformed descriptor is found (#410)" @makubacki (#493)
Change Details
## Description
This reverts commit 714d41b.
Some devices are dependent on this functionality and can be important
sources of input during boot. Until a more robust solution is devised
that can support these devices, this change is reverted.- 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
Verified a USB mass storage device that failed to enumerate with
the change can be enumerated after reverting it.Integration Instructions
N/A
- Impacts functionality?
Full Changelog: v2023020002.1.3...v2023020002.1.4
v2022080002.1.2
What's Changed
-
Revert "Stop USB enumeration in case a malformed descriptor is found (#410)" @makubacki (#494)
Change Details
## Description
This reverts commit 714d41b.
Some devices are dependent on this functionality and can be important
sources of input during boot. Until a more robust solution is devised
that can support these devices, this change is reverted.- 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
Verified a USB mass storage device that failed to enumerate with
the change can be enumerated after reverting it.Integration Instructions
N/A
- Impacts functionality?
Full Changelog: v2022080002.1.1...v2022080002.1.2
v2023020002.1.3
What's Changed
🐛 Bug Fixes
-
Refactoring infinite boot option retries @apop5 (#392)
Change Details
## Description
Last revision of infinite boot retries resulted in build errors with VS2022 due to "unreachable code" errors.
Refactor to move loop to top level function. Refactor of #347
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
Build with VS2022 and PcdSupportInfiniteBootRetries set to TRUE.
Build with VS2022 and PcdSupportInfiniteBootRetries set to FALSE.
Build with GCC5 and PcdSupportInfiniteBootRetries set to TRUE.Integration Instructions
N/A
- Impacts functionality?
🔐 Security Impacting
-
Fix CodeQL errors @kenlautner (#490)
Change Details
## Description
Fixed some CodeQL failures we're seeing in a variety of packages. This takes the changes from the PR found here and builds upon them.
- 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 through CodeQL checks.
Integration Instructions
N/A
</blockquote> <hr> </details>
- Impacts functionality?
Full Changelog: v2023020002.1.2...v2023020002.1.3
v2022080002.1.1
What's Changed
-
[CHERRY-PICK]: MdeModulePkg/BdsDxe/BaseEntry.c Refactoring infinite boot option retries (#392) @apop5 (#487)
Change Details
## Description
Last revision of infinite boot retries resulted in build errors with VS2022 due to "unreachable code" errors.
Refactor to move loop to top level function. Refactor of #347
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, ...
- 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, ... - 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, ...
How This Was Tested
Build with VS2022 and PcdSupportInfiniteBootRetries set to TRUE. Build with VS2022 and PcdSupportInfiniteBootRetries set to FALSE. Build with GCC5 and PcdSupportInfiniteBootRetries set to TRUE.
Integration Instructions
N/A
</blockquote> <hr> </details>
🔐 Security Impacting
-
Fix CodeQL errors @kenlautner (#488)
Change Details
## Description
Fixed some CodeQL failures we're seeing in a variety of packages.
- 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 through CodeQL checks.
Integration Instructions
N/A
</blockquote> <hr> </details>
- Impacts functionality?
Full Changelog: v2022080002.1.0...v2022080002.1.1
v2023020002.1.2
What's Changed
-
Change default alignment for ramdisk booting. @ddeptford (#480)
Change Details
The ramdisk is modelled as an NVDIMM which have a naturally higher alignment than 4K. Operating systems may wish to map NVDIMMs using large pages, so force the allocation alignment to 2MB.
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?
- Alignment of ramdisk is changed from 4KB to 2MB.
- 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
This change was tested using HTTP ramdisk boot, targeting a flat windows image.
Integration Instructions
N/A
</blockquote> <hr> </details>
- Impacts functionality?
-
MdeModulePkg: PciHostBridgeDxe: ignore TypeIo @Javagedes (#482)
Change Details
## Description
Throughout PciHostBridgeDxe, functions iterate through all entries in the PCI_RESOURCE_TYPE enum. However TypeIo only applies for x86_64 platforms. This changes the starting point of the PCI_RESOURCE_TYPE enum loops from 0 to PCI_RESOURCE_TYPE_ENUM_START and conditionally sets that value to TypeIo or TypeMem32 based on if the platform is x86_64 or not.
closes #444
- 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
Will be platform tested
Integration Instructions
N/A
- Impacts functionality?
Full Changelog: v2023020002.1.1...v2023020002.1.2
v2022080002.1.0
What's Changed
-
.github/release-draft.yml: Use Mu DevOps 5.0.4 @makubacki (#484)
Change Details
## Description
Updates the workflow to the latest Mu DevOps (
v5.0.4
)
to use theReleaseDrafter.yml
file inv5
that supports
N and N-1 branch support.- 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
Mu Basecore fork.
Integration Instructions
N/A
- Impacts functionality?
-
TCBZ 4492: Update SplitTable() Logic to Correctly Break Up Memory Map Descriptors @TaylorBeebe (#476)
Change Details
## Description
Fixes #475
Fix the SplitTable() logic to correctly break up the memory map and fix errors in the Memory Attributes Table.
- 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
</blockquote> <hr> </details>
- Impacts functionality?
-
.github/label-issues.yml: Use Mu DevOps 4.0.5 @makubacki (#477)
Change Details
## Description
4.0.5 updates the GitHub Actions used for labeling to include a
bug fix for previous versions trying to delete a label that does not exist.- 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
Already enabled in release/202302 and resolves a workflow error
encountered in the label task.Integration Instructions
N/A - Integrated in this change
- Impacts functionality?
🚀 Features & ✨ Enhancements
-
MdeModulePkg/UefiBootManagerLib: Skip con var update if no change @makubacki (#445)
Change Details
## Description
MdeModulePkg/UefiBootManagerLib: Skip con var update if no change
Checks if the newly computed device path for a console variable is
different than the saved value before writing through UEFI variable
services.This allows function callers to simplify their own logic around
reducing calls toEfiBootManagerUpdateConsoleVariable()
and
overall prevents unnecessary writes to UEFI variables that may
not be necessary.- 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
Verified console variables are updated when a new device path is
determined and the update is skipped when no change is made to the
device path already saved in the corresponding console UEFI variable.Integration Instructions
N/A
- Impacts functionality?
Full Changelog: v2022080002.0.3...v2022080002.1.0
v2023020002.1.1
What's Changed
📖 Documentation Updates
-
CI: Add Rust Host Unit Test CI check @Javagedes (#481)
Change Details
## Description
Adds a CI plugin, RustHostUnitTestPlugin, with the scope
rust-ci
that runs all tests, ensuring they pass. If they pass, code coverage is calculated, which must meet the requirements specified in a package's ci.yaml file (default is 75% code coverage). Will generate a coverage.xml file in the Build directory.- 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
Ensured Check can run successfully
Integration Instructions
Add the
rust-ci
scope to your settings python file for stuart_ci_build. addtoml
to your pip-requirements.txt file.
- Impacts functionality?
Full Changelog: v2023020002.1.0...v2023020002.1.1