Skip to content

Releases: microsoft/mu_tiano_platforms

v4.4.1

06 Sep 19:40
0847402
Compare
Choose a tag to compare

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, ...
    • 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

    Still builds without these.

    Integration Instructions

    N/A.




🐛 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, ...
    • 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 build
    • Ran CodeQL with cpp-missing-header-guard enabled

    Integration Instructions

    N/A




  • 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, ...
    • 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

    • QemuQ35Pkg and QemuSbsaPkg build and run

    Integration Instructions

    N/A




🔐 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, ...
    • 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

    Tested on Q35 and SBSA

    Integration Instructions

    N/A




🛠️ 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...
Read more

v4.4.0

31 Aug 01:16
Compare
Choose a tag to compare

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 the QemuQ35Pkg and QemuSbsaPkg
    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, the Cargo.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, ...
    • 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

    • 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

30 Aug 22:23
4871be9
Compare
Choose a tag to compare

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 to v2023020005.0.1
    • Common/MU to v2023020001.4.1
    • Common/MU_TIANO to v2023020001.4.1
    • Features/MM_SUPV to v8.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, ...
    • 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 package build (via PR checks)

    Integration Instructions

    N/A


    Associated Changes in Submodules



Full Changelog: v4.3.0...v4.3.1

v4.3.0

30 Aug 19:33
8f47736
Compare
Choose a tag to compare

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, ...
    • 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

    Tested in the pipelines

    Integration Instructions

    N/A




  • 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, ...
    • 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




🚀 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
    • 249195 DXE and SMM core performance lib codeql changes. (#534)
    • 46dfa4 Resolve mws deprecations (#539)
    • 9a8606 LineEndingCheck: bugfix: Fails if not run from workspace root (#540)
    • 6c351b .pytool/Plugin/RustHostUnitTestPlugin: Ensure strings in ignore list (#541)

    Signed-off-by: Project Mu Bot [email protected]




Full Changelog: v4.2.0...v4.3.0

v4.2.0

29 Aug 14:05
0ff6479
Compare
Choose a tag to compare

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, ...
    • 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

    • 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.




📖 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, ...
    • 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

    • 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.




🛠️ 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.

    Commits
    • e8f85c Fix Python logging.warn() deprecation warnings (#537)

    Signed-off-by: Project Mu Bot [email protected]




Full Changelog: v4.1.3...v4.2.0

v4.1.3

25 Aug 00:57
b341487
Compare
Choose a tag to compare

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, ...
    • 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




📖 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, ...
    • 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

    • 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
    • 26580b pip: bump edk2-pytool-library from 0.16.1 to 0.17.0 (#288)
    • c0d44c Update UXN/PXN Parsing and Fix Filters in Paging Audit (#290)
    • 230437 AdvLoggerPkg: Switch to using AsciiStrnLenS (#293)

    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)
Read more

v4.1.2

16 Aug 01:00
76bad20
Compare
Choose a tag to compare

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, ...
    • 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 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
      image

    Integration Instructions

    N/A - From a user perspective PATH_TO_OS works similar to before and
    NVMe support is already present in the firmware.




  • .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, ...
    • 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

    Mu Tiano Platforms pipelines:

    Integration Instructions

    Review QEMU 8.0.91 release notes to determine if you're
    impacted by changes in this release.




Full Changelog: v4.1.1...v4.1.2

v4.1.1

01 Aug 14:23
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Clean up library classes [Rebase \& FF] @makubacki (#653)
    Change Details
      ## Description

    Two changes related to cleaning up library usage.


    1. 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
      to BaseResetSystemLib.inf in QemuQ35Pkg.
    • QemuQ35Pkg:
      • Add HwResetSystemLib library class to BaseResetSystemLib
        and DxeResetSystemLib library instances.
      • Drop phase bindings in BaseResetSystemLib as content is not
        specific to those phases.

    1. 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, ...
    • 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

    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
    • 4148c6 pip: update edk2-pytool-extensions requirement from ~=0.23.8 to ~=0.23.9 (#496)
    • ce040e CryptEc.c CodeQL Fix (#492)
    • 897a6d BaseTools: Detect library class mismatch [REBASE&FF] (#499)
    • 41f615 Update IORT SMMUv3 IORT node flags for HTTU to include dirty state support (#500)

    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
    • 596e48 Move ConfigKnobShimMmLib to MM_STANDALONE module type (#219)
    • d3497f Fixing document to reflect the current state (#213)
    • f8da32 SetupDataPkg: Remove bare excepts (#220)
    • 16f231 pip: bump edk2-pytool-extensions from 0.23.8 to 0.23.9 (#221)

    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.

    Commits
    • 87dd55 MmSupervisorPkg.dec: Use 16 pages for user mode comm buffer by default (#157)

    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
    • 54e200 pip: update edk2-pytool-extensions requirement from ~=0.23.8 to ~=0.23.9 (#122)
    • a92ee0 Clears the DebugDirectory of the Debug information for Release builds of HelloUefi (#123)

    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...
Read more

v4.1.0

28 Jul 00:41
5bd5b0a
Compare
Choose a tag to compare

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, ...
    • 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

    1. Verified values in QEMU run command.
    2. Read values from smbiosview in the EFI shell.
    3. Read relevant values from Windows UI.

    BEFORE

    image

    AFTER

    image

    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 and usb-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, ...
    • 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

    QEMU Windows guest on Windows and Linux host.

    Integration Instructions

    N/A




Full Changelog: v4.0.3...v4.1.0

v4.0.3

24 Jul 15:13
c879412
Compare
Choose a tag to compare

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, ...
    • 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

    Tested in CI Pipelines

    Integration Instructions

    N/A




  • 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
    • 6888ae pip: update edk2-pytool-extensions requirement from ~=0.23.8 to ~=0.23.9 (#155)
    • 44c742 Adding extra step of ownership inspcetion for buffer validity check (#156)

    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.

    Commits
    • 4a53c6 Revert "Stop USB enumeration in case a malformed descriptor is found (#410)" (#493)

    Signed-off-by: Project Mu Bot [email protected]




Full Changelog: v4.0.2...v4.0.3