Releases: microsoft/mu_tiano_platforms
v4.4.1
What's Changed
-
Remove Unused Environment Variables @os-d (#695)
Change Details
## Description
There are several errors produced when building QemuQ35Pkg and QemuSbsaPkg indicating that some relative paths cannot be converted to absolute paths. This is because these paths do not exist in the code tree anymore.
This patch removes the unused env vars.
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
Still builds without these.
Integration Instructions
N/A.
- Impacts functionality?
🐛 Bug Fixes
-
QemuQ35Pkg/SmmAccess: Add missing include guard @makubacki (#691)
Change Details
## Description
All header files should have include guards.
See the following for more info:
https://codeql.github.com/codeql-query-help/cpp/cpp-missing-header-guard/- 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
- CI build
- Ran CodeQL with
cpp-missing-header-guard
enabled
Integration Instructions
N/A
- Impacts functionality?
-
QemuRunner: Prevent virtual drive unknown image format warning @makubacki (#686)
Change Details
## Description
The virtual drive image is passed with the following parameter:
-hdd <VirtualDrivePath>
This results in the following warning:
WARNING: Image format was not specified for 'VirtualDrive.img' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions.
This passes the image using
-drive
to resolve the warning.- 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
- QemuQ35Pkg and QemuSbsaPkg build and run
Integration Instructions
N/A
- Impacts functionality?
🔐 Security Impacting
-
Remove physical presence from Q35 and SBSA @TaylorBeebe (#687)
Change Details
## Description
The physical presence check is a poor way to determine if a user is actually physically present at the machine. Because some security checks can be bypassed with physical presence, set physical presence to FALSE.
- 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 SBSA
Integration Instructions
N/A
- Impacts functionality?
🛠️ Submodule Updates
-
Bump Features/CONFIG from 1.0.1 to 2.0.0 @ProjectMuBot (#694)
Change Details
Bumps Features/CONFIG from `1.0.1` to `2.0.0`
Introduces 12 new commits in Features/CONFIG.
Commits
- c608e2 Repo File Sync: Update to Mu DevOps 5.0.6 and Ubuntu container 3bf70b5 (#222)
- a8adde pip: bump edk2-pytool-extensions from 0.23.9 to 0.23.10 (#223)
- 861ed2 pip: bump xmlschema from 2.3.1 to 2.4.0 (#225)
- a78277 SetupDataPkg/Tools/KnobService.py: Fix flake8 6.1.0 error
- 34e9b7 pip: bump flake8 from 6.0.0 to 6.1.0
- 5e9478 pip: bump edk2-pytool-library from 0.15.3 to 0.16.1 (#227)
- 523836 pip: bump regex from 2023.6.3 to 2023.8.8 (#226)
- 2d26e7 pip: bump edk2-pytool-lib...
v4.4.0
What's Changed
🚀 Features & ✨ Enhancements
-
Add Rust support and DXE Rust driver to boot [Rebase \& FF] @makubacki (#688)
Change Details
## Description
Includes changes to add Rust build support to the repo, include a Rust
DXE driver (HelloWorldRustDxe
) in theQemuQ35Pkg
andQemuSbsaPkg
build and boot, and associated pipeline changes.Change summary:
Add repo Rust infrastructure support
Adds files to support:
- A cargo-make makefile
- Default Rust toolchain version
- Rust formatting configuration
- Rust host-based unit test CI execution
Bump Common/MU from 2023020001.3.1 to 2023020001.4.0
Add HelloWorldRustDxe to QemuQ35Pkg and QemuSbsaPkg
Adds the driver to both packages to demonstrate a Rust based UEFI
DXE driver executing during boot on a X64 and AARCH64 system.A workspace Cargo.toml file is added for cargo make. Since this repo
is the "leaf of a dependency chain" in that it builds binaries that
are integrated into the platform build, theCargo.lock
file is
checked in per the guidance in:
https://doc.rust-lang.org/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries
.azurepipelines: Add Rust support
Updates the repo pipelines to support Rust builds.
- 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 CI and Platform builds locally and in CI
- Verified QemuQ35Pkg and QemuSbsaPkg builds
- Verified HelloWorldRustDxe dispatches during boot and prints
the expected debug messages
Integration Instructions
N/A
Note: The
MU_BASECORE
submodule will be updated after microsoft/mu_basecore#545 completes.
Full Changelog: v4.3.1...v4.4.0
v4.3.1
What's Changed
-
Integrate UefiCpuLib breaking change @makubacki (#689)
Change Details
## Description
Updates the repo for a change that merged UefiCpuLib with CpuLib.
UefiCpuLib will be removed entirely soon so all references are updated to CpuLib.
Includes the following submodule updates:
MU_BASECORE
tov2023020005.0.1
Common/MU
tov2023020001.4.1
Common/MU_TIANO
tov2023020001.4.1
Features/MM_SUPV
tov8.1.5
- 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
- CI package build (via PR checks)
Integration Instructions
N/A
Associated Changes in Submodules
Full Changelog: v4.3.0...v4.3.1
v4.3.0
What's Changed
-
Bump Common/MU to v2023020001.3.1 and Remove Paging Audit Test Exemption @TaylorBeebe (#683)
Change Details
## Description
The most recent changes in mu_plus fix the paging audit test failures on SBSA. This PR pulls in the latest mu_plus, updates the paging audit calls to reflect the new command line interface, and removes the PagingAuditTestApp test failure exemption on SBSA.
- 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 in the pipelines
Integration Instructions
N/A
- Impacts functionality?
-
Resolve mws deprecations @Javagedes (#682)
Change Details
## Description
Per edk2-pytool-extensions, replace the use of mws.join with ed2path.GetAbsolutePathOnThisSystemFromEdk2RelativePath
- 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
CI
Integration Instructions
N/A
- Impacts functionality?
🚀 Features & ✨ Enhancements
-
Allow passing any CPU model while invoking QEMU. @NishanthSanjeevi (#669)
Change Details
## Description
-
Added CpuInfoDxe driver that prints the basic information about the CPU model invoked by QEMU.
-
Added a command line argument to pass the CPU model to be used while invoking QEMU
-
Added basic tests to validate the CPU model being used
-
Impacts functionality?
Added a new driver that prints CPU model information -
Impacts security?
N/A -
Breaking change?
N/A -
Includes tests?
N/A -
Includes documentation?
No
How This Was Tested
Validated the changes on QEMU
Integration Instructions
N/A
-
🛠️ Submodule Updates
-
Bump MU\_BASECORE from 2023020003.0.1 to 2023020004.0.1 @ProjectMuBot (#684)
Change Details
Bumps MU_BASECORE from `2023020003.0.1` to `2023020004.0.1`
Introduces 4 new commits in MU_BASECORE.
Commits
Signed-off-by: Project Mu Bot [email protected]
Full Changelog: v4.2.0...v4.3.0
v4.2.0
What's Changed
🚀 Features & ✨ Enhancements
-
QemuQ35Pkg: Integrate TPM Replay feature @makubacki (#678)
Change Details
Closes #677
Description
This feature enables experimentation with controlling the TPM
measurements made by firmware. It allows a developer to craft
a TPM event log and have the replayed during boot. It is disabled
by default.General feature information is available in its readme:
https://github.com/microsoft/mu_plus/blob/HEAD/TpmTestingPkg/TpmReplayPei/Readme.md
It is currently only planned to be used QemuQ35Pkg. It could be
enabled in QemuSbsaPkg in the future if there is interest.Details about the feature in the context of QEMU, are described in
Platforms/Docs/Q35/Features/feature_tpm_replay.md
in this change.- 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
- Input YAML to binary
- Input JSON to binary
- Input binary to YAML
- Replay events on QEMU Q35 to PCRs
- Verify event log in OS against the input file
Integration Instructions
See
feature_tpm_replay.md
.Enable the feature in
QemuQ35Pkg
in the DSC file:DEFINE TPM_REPLAY_ENABLED = TRUE
Or, as a
stuart_build
argument:> stuart_build -c Platforms/QemuQ35Pkg/PlatformBuild.py --flashrom TOOL_CHAIN_TAG=GCC5 BLD_*_TPM_ENABLE=TRUE \ BLD_*_TPM_ENABLE=TRUE TPM_DEV=/tmp/mytpm1/swtpm-sock
Then, follow instructions to create the TPM Replay
event log and load it.
- Impacts functionality?
📖 Documentation Updates
-
QemuQ35Pkg: Integrate TPM Replay feature @makubacki (#678)
Change Details
Closes #677
Description
This feature enables experimentation with controlling the TPM
measurements made by firmware. It allows a developer to craft
a TPM event log and have the replayed during boot. It is disabled
by default.General feature information is available in its readme:
https://github.com/microsoft/mu_plus/blob/HEAD/TpmTestingPkg/TpmReplayPei/Readme.md
It is currently only planned to be used QemuQ35Pkg. It could be
enabled in QemuSbsaPkg in the future if there is interest.Details about the feature in the context of QEMU, are described in
Platforms/Docs/Q35/Features/feature_tpm_replay.md
in this change.- 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
- Input YAML to binary
- Input JSON to binary
- Input binary to YAML
- Replay events on QEMU Q35 to PCRs
- Verify event log in OS against the input file
Integration Instructions
See
feature_tpm_replay.md
.Enable the feature in
QemuQ35Pkg
in the DSC file:DEFINE TPM_REPLAY_ENABLED = TRUE
Or, as a
stuart_build
argument:> stuart_build -c Platforms/QemuQ35Pkg/PlatformBuild.py --flashrom TOOL_CHAIN_TAG=GCC5 BLD_*_TPM_ENABLE=TRUE \ BLD_*_TPM_ENABLE=TRUE TPM_DEV=/tmp/mytpm1/swtpm-sock
Then, follow instructions to create the TPM Replay
event log and load it.
- Impacts functionality?
🛠️ Submodule Updates
-
Bump MU\_BASECORE from 2023020003.0.0 to 2023020003.0.1 @ProjectMuBot (#680)
Change Details
Bumps MU_BASECORE from `2023020003.0.0` to `2023020003.0.1`
Introduces 1 new commits in MU_BASECORE.
Signed-off-by: Project Mu Bot [email protected]
Full Changelog: v4.1.3...v4.2.0
v4.1.3
What's Changed
🐛 Bug Fixes
-
QemuSbsaPkg.dsc: Don't use BaseMemoryLibOptDxe for MM\_STANDALONE @Javagedes (#671)
Change Details
## Description
BaseMemoryLibOptDxe.inf states that it does not support MM_STANDALONE for AARCH64 architecture, however the build system does not catch this restriction.
The build system does not catch this restriction because per the INF spec, architectural modifiers are not supported for the [Defines] section.
- 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
CI
Integration Instructions
N/A
- Impacts functionality?
📖 Documentation Updates
-
Platforms/Docs: Refresh features in QEMU Q35 readme @makubacki (#674)
Change Details
## Description
-
Adds missing features with pre-existing feature readmes
-
Adds a Table of Contents and sorts sections to make navigating the file easier
-
Adds some more detail in a few areas
-
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
- markdownlint
Integration Instructions
N/A
--
Note: In preparation for an update that will describe the TPM Replay feature.
-
🛠️ Submodule Updates
-
Bump Common/MU from 2023020001.1.1 to 2023020001.1.2 @ProjectMuBot (#673)
Change Details
Bumps Common/MU from `2023020001.1.1` to `2023020001.1.2`
Introduces 3 new commits in Common/MU.
Commits
Signed-off-by: Project Mu Bot [email protected]
-
Bump Features/DFCI from 4.0.0 to 4.0.1 @ProjectMuBot (#667)
Change Details
Bumps Features/DFCI from `4.0.0` to `4.0.1`
Introduces 9 new commits in Features/DFCI.
Commits
- 40956f ci.yaml: add PrEval entry (#122)
- 4e3534 pip: bump edk2-pytool-extensions from 0.23.6 to 0.23.8 (#123)
- 7e287f Repo File Sync: synced file(s) with microsoft/mu_devops (#124)
- 8fcef8 pip: bump edk2-pytool-extensions from 0.23.8 to 0.23.9 (#126)
- f14959 DfciV1SupportLibNull: Assign actual library class (#127)
- 975704 Repo File Sync: synced file(s) with microsoft/mu_devops (#128)
- 677c91 pip: bump edk2-pytool-extensions from 0.23.9 to 0.23.10 (#129)
- fbddfa pip: bump edk2-pytool-library from 0.15.3 to 0.16.1 (#130)
- b0373a pip: bump regex from 2023.6.3 to 2023.8.8 (#131)
Signed-off-by: Project Mu Bot [email protected]
-
Bump MU\_BASECORE from 2023020002.2.0 to 2023020003.0.0 @ProjectMuBot (#672)
Change Details
Bumps MU_BASECORE from `2023020002.2.0` to `2023020003.0.0`
Introduces 8 new commits in MU_BASECORE.
Commits
- baa8c9 [CHERRY-PICK] MdeModulePkg: Add more PciHostBridgeLib gmock support
- f70c8a [CHERRY-PICK] MdePkg: Add more HobLib/PeiServicesLib gmock support
- a4f90e pip: update edk2-pytool-library requirement from ~=0.16.1 to ~=0.17.0 (#528)
- 5c573c BaseTools: Rust support enhancements (#519)
- 11b34e FlattenPdbs.py: Support python 3.9 (#527)
- 8f0d68 SpellCheck: force no color codes (#529)
- efd13c LineEndingsCheck: improve performance (#513)
v4.1.2
What's Changed
-
QemuRunner: Use NVMe for OS boot @makubacki (#661)
Change Details
## Description
This section in the QEMU documentation provides an overview of block
device options:https://www.qemu.org/docs/master/system/qemu-manpage.html#hxtool-1
This change uses an NVMe device for the OS boot drive to exercise
the NVMe driver stack during boot and better reflect more common
modern use cases.Other block devices mapped are left unchanged as I did not see an
obvious reason to change those right now.- 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 and boot to Windows with PATH_TO_OS set to a QCOW2 formatted image
- Convert the QCOW2 image to VHD and boot again to Windows with PATH_TO_OS set
- Verify the device is recognized as a NVMe device in UEFI shell
- Verify the OS disk drive is reported as NVMe in the OS
Integration Instructions
N/A - From a user perspective PATH_TO_OS works similar to before and
NVMe support is already present in the firmware.
- Impacts functionality?
-
.azurepipelines: Centralize and update Windows QEMU version (2023.7.25) @makubacki (#658)
Change Details
## Description
Updates the Chocolatey package version to
2023.7.25
:This maps to the following QEMU version:
QEMU emulator version 8.0.91 (v8.1.0-rc1-12028-g4b7c24e862)Updated to move forward from a package almost a year old now
(2022.8.31
) and from QEMU 7.1.x to 8.0.x.Since the Windows QEMU installation is performed in two separate
YAML files, this change places the version in a single JSON file.This was preferred to a pipeline variable to track the version in
repo source control and make it easy to search for the version
being used in repo source code searches.- 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 Tiano Platforms pipelines:
- Mu Tiano Platforms PR EDK2 Linux - 20230803.1
- Mu Tiano Platforms PR EDK2 - 20230803.1
- Mu Tiano Platforms PR Platform GCC5 - 20230803.1
- Mu Tiano Platforms PR Platform VS - 20230803.1
Integration Instructions
Review QEMU
8.0.91
release notes to determine if you're
impacted by changes in this release.
- Impacts functionality?
Full Changelog: v4.1.1...v4.1.2
v4.1.1
What's Changed
🐛 Bug Fixes
-
Clean up library classes [Rebase \& FF] @makubacki (#653)
Change Details
## Description
Two changes related to cleaning up library usage.
- Clean up ResetSystemLib usage
Remove library class warning messages and consistently link reset
logic across phases.- Set all
HwResetSystemLib
instances to QEMU platform-specific
reset logic. - Set Standalone MM driver and core
HwResetSystemLib
instances
toBaseResetSystemLib.inf
inQemuQ35Pkg
. - QemuQ35Pkg:
- Add
HwResetSystemLib
library class toBaseResetSystemLib
andDxeResetSystemLib
library instances. - Drop phase bindings in
BaseResetSystemLib
as content is not
specific to those phases.
- Add
- QemuSbsaPkg: Change SbsaQemuNorFlashLib library class
Updates the library class to the name used for the header file
in the DEC file and used in consuming code.
- 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
QemuQ35Pkg and QemuSbsaPkg build.
Integration Instructions
N/A - Changes local to the repo
🛠️ Submodule Updates
-
Bump MU\_BASECORE from 2023020002.1.4 to 2023020002.1.5 [Rebase \& FF] @ProjectMuBot (#647)
Change Details
Bumps MU_BASECORE from `2023020002.1.4` to `2023020002.1.5`
Introduces 4 new commits in MU_BASECORE.
Commits
Signed-off-by: Project Mu Bot [email protected]
-
Bump Features/CONFIG from 1.0.0 to 1.0.1 @ProjectMuBot (#651)
Change Details
Bumps Features/CONFIG from `1.0.0` to `1.0.1`
Introduces 4 new commits in Features/CONFIG.
Commits
Signed-off-by: Project Mu Bot [email protected]
-
Bump Silicon/Arm/MU\_TIANO from 2023020000.0.3 to 2023020000.0.4 @ProjectMuBot (#650)
Change Details
Bumps Silicon/Arm/MU_TIANO from `2023020000.0.3` to `2023020000.0.4`
Introduces 5 new commits in Silicon/Arm/MU_TIANO.
Commits
- ca4d5e pip: update edk2-pytool-extensions requirement from ~=0.23.6 to ~=0.23.8 (#138)
- 46b0d0 Repo File Sync: synced file(s) with microsoft/mu_devops (#139)
- c866ea ci.yaml: add PrEval entry (#133)
- 4a690c [CHERRY-PICK] Add the ability to configure the memory type used for the FD region (#141)
- 58224c pip: update edk2-pytool-extensions requirement from ~=0.23.8 to ~=0.23.9 (#142)
Signed-off-by: Project Mu Bot [email protected]
-
Bump Features/MM\_SUPV from 8.1.3 to 8.1.4 @ProjectMuBot (#652)
Change Details
Bumps Features/MM_SUPV from `8.1.3` to `8.1.4`
Introduces 1 new commits in Features/MM_SUPV.
Signed-off-by: Project Mu Bot [email protected]
-
Bump Common/MU\_OEM\_SAMPLE from 2023020000.0.4 to 2023020000.0.5 @ProjectMuBot (#649)
Change Details
Bumps Common/MU_OEM_SAMPLE from `2023020000.0.4` to `2023020000.0.5`
Introduces 2 new commits in Common/MU_OEM_SAMPLE.
Commits
Signed-off-by: Project Mu Bot [email protected]
-
Bump Common/MU from 2023020001.0.1 to 2023020001.1.0 @ProjectMuBot (#648)
Change Details
Bumps C...
v4.1.0
What's Changed
🚀 Features & ✨ Enhancements
-
Add BIOS version and release date to SMBIOS @makubacki (#646)
Change Details
## Description
- Adds the BIOS version and date to Type 0 (BIOS) structure.
- Changes BIOS vendor to "Project Mu" so its easier to trace project info.
- Adds the QEMU version to the Type 1 (System) version field.
- Q35: Changes System product from "MuQemuQ35" to "QEMU Q35".
- SBSA: Changes System product from "MuQemuQ35" to "QEMU SBSA".
- SBSA: Fixes asset tag values from "Q35" to "SBSA"
Other related minor cleanup.
The goal is to clean up firmware and system information and make it more
useful.- 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 values in QEMU run command.
- Read values from
smbiosview
in the EFI shell. - Read relevant values from Windows UI.
BEFORE
AFTER
Integration Instructions
Review values modified and see if they affect tests or features
dependent on SMBIOS information.
-
Use "usb-tablet" instead of "usb-mouse" as the pointer device @makubacki (#645)
Change Details
## Description
usb-tablet
andusb-mouse
both override the default PS/2 emulation
when enabled.usb-tablet
uses absolute coordinates and allows QEMU
to report the mouse position without grabbing the device.It also tracks the mouse cursor more accurately.
- 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
QEMU Windows guest on Windows and Linux host.
Integration Instructions
N/A
- Impacts functionality?
Full Changelog: v4.0.3...v4.1.0
v4.0.3
What's Changed
-
Update Test Exemptions @TaylorBeebe (#643)
Change Details
## Description
Remove BaseCryptLibUnitTest exemption.
Extend VariablePolicyFuncTestApp exemption: Internal discussion on solutions still ongoing.
Extend SBSA DxePagingAuditTestApp exemption: Privileged Execute Never bit not being set on memory ranges causing test failure. microsoft/mu_plus#210 will be revived to fix reporting and other issues with the test. ARM CpuDxe flow needs to be stepped through to see why UXN is being set but not PXN.
- 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 in CI Pipelines
Integration Instructions
N/A
- Impacts functionality?
-
Fix support for TPM on Q35 @cfernald (#633)
Change Details
## Description
Fixes issue related to enabling TPM for QEMU Q35.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Locally tested with Windows boot.
Integration Instructions
N/A
🛠️ Submodule Updates
-
Bump Features/MM\_SUPV from 8.1.2 to 8.1.3 @ProjectMuBot (#644)
Change Details
Bumps Features/MM_SUPV from `8.1.2` to `8.1.3`
Introduces 2 new commits in Features/MM_SUPV.
Commits
Signed-off-by: Project Mu Bot [email protected]
-
Bump MU\_BASECORE from 2023020002.1.3 to 2023020002.1.4 @ProjectMuBot (#641)
Change Details
Bumps MU_BASECORE from `2023020002.1.3` to `2023020002.1.4`
Introduces 1 new commits in MU_BASECORE.
Signed-off-by: Project Mu Bot [email protected]
Full Changelog: v4.0.2...v4.0.3