Bumps MU_BASECORE from `2024050000.1.2` to `2024050000.1.4`
Introduces 12 new commits in
[MU_BASECORE](https://github.com/microsoft/mu_basecore.git).
<details>
<summary>Commits</summary>
<ul>
<li><a
href="43c0c8447a">43c0c8</a>
Add mock function into MockIoLib</li>
<li><a
href="7a5167f2a1">7a5167</a>
Add all the mock functions in MockIoLib</li>
<li><a
href="b45641d81c">b45641</a>
Create Mock for PostCodeLib (<a
href="https://github.com/microsoft/mu_basecore/pull/1168">#1168</a>)</li>
<li><a
href="fb65d9d7b6">fb65d9</a>
Revert "BaseTools: Add Stack Cookie Support to MSVC and GCC IA32, X64,
ARM, and AARCH64"</li>
<li><a
href="004cb1d9bf">004cb1</a>
[CHERRY-PICK] BaseTools: Add Stack Cookie Support to MSVC and GCC
IA32/X64/ARM/AARCH64</li>
<li><a
href="fcbd31d8e4">fcbd31</a>
Configure Terminal to be picked up by Consplitter</li>
<li><a
href="3a317ae1f2">3a317a</a>
pip: bump regex from 2024.9.11 to 2024.11.6 (<a
href="https://github.com/microsoft/mu_basecore/pull/1219">#1219</a>)</li>
<li><a
href="55f3b71288">55f3b7</a>
[TEMPORARY] Disable Stack Cookies for MSVC ARM/AARCH64</li>
<li><a
href="0629fbff62">0629fb</a>
BaseTools HostBasedUnittestRunner Modify CC_REORGANIZE to exclude Null
implementations. (<a
href="https://github.com/microsoft/mu_basecore/pull/1218">#1218</a>)</li>
<li><a
href="147de21969">147de2</a>
Revert "BaseTools HostBasedUnittestRunner Modify CC_REORGANIZE to
exclude Null implementations. (<a
href="https://github.com/microsoft/mu_basecore/pull/1218">#1218</a>)"</li>
<li><a
href="42d0738639">42d073</a>
Add CC_EXCLUDE support to exclude filetypes from reorganized reports.
Defaults to exclude Null. Updated documentation</li>
<li><a
href="96e8877dd9">96e887</a>
[Cherry-Pick] Declare mock SMM Access2 Protocol. (<a
href="https://github.com/microsoft/mu_basecore/pull/1177">#1177</a>)</li>
</ul>
</details>
Signed-off-by: Project Mu Bot <mubot@microsoft.com>
Signed-off-by: Project Mu Bot <mubot@microsoft.com>
Bumps MU_BASECORE from `2024050000.0.2` to `2024050000.1.2`
Bumps Features/MM_SUPV from 14.0.0 to 14.0.2
Signed-off-by: Project Mu Bot <mubot@microsoft.com>
Co-authored-by: Aaron Pop <aaronpop@microsoft.com>
## Description
This PR turns mu_feature_debugger on by default in Q35/SBSA. It sets no
initial breakpoint, but will break in on an exception. As part of this,
QemuRunner defaults to having `SERIAL_PORT=50001` if this is not
overridden, so that on a regular boot of Q35 the debugger can easily be
used. On SBSA, the serial port is not added by default, as it will
prevent writing to stdout, making it hard to tell progress.
An additional command line flag is added `BLD_*_DXE_DBG_BRK` to control
whether the initial breakpoint is set. Passing `BLD_*_DXE_DBG_BRK=TRUE`
on the commandline will set an unlimited initial breakpoint on DxeCore
entrance.
The other caveat in SBSA is that with a single serial port, debugger
polling is disabled, otherwise the debugger can eat user keystrokes at
the shell.
Once supervised StMM support is added to mu_feature_debugger
(https://github.com/microsoft/mu_feature_debugger/issues/59), it will be
added here with a corresponding flag to force breaking in to the MM
debugger.
- [ ] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [ ] Includes tests?
- [ ] Includes documentation?
## How This Was Tested
Tested by booting Q35 with no exceptions, with an exception and breaking
in, and with the force flag and breaking in on initial breakpoint.
## Integration Instructions
See above.
Bumps MU_BASECORE from `2024050000.0.1` to `2024050000.0.2`
Signed-off-by: Project Mu Bot <mubot@microsoft.com>
Co-authored-by: Kun Qin <kuqin@microsoft.com>
Co-authored-by: kuqin12 <42554914+kuqin12@users.noreply.github.com>
Bumps Silicon/Arm/MU_TIANO from `2024050000.0.0` to `2024050001.0.0`
Introduces 10 new commits in
[Silicon/Arm/MU_TIANO](https://github.com/microsoft/mu_silicon_arm_tiano.git).
Signed-off-by: Project Mu Bot <mubot@microsoft.com>
Bumps [hidparser](https://github.com/microsoft/mu_rust_hid) from
`522f2ff` to `2f259c8`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2f259c817b"><code>2f259c8</code></a>
Cargo.toml: Update version to 1.0.1 (<a
href="https://redirect.github.com/microsoft/mu_rust_hid/issues/31">#31</a>)</li>
<li>See full diff in <a
href="522f2ff4ab...2f259c817b">compare
view</a></li>
</ul>
</details>
<br />
You can trigger a rebase of this PR by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps Common/MU_TIANO from `2024050000.0.1` to `2024050000.0.2`
Introduces 5 new commits in
[Common/MU_TIANO](https://github.com/microsoft/mu_tiano_plus.git).
Signed-off-by: Project Mu Bot <mubot@microsoft.com>
The QemuPkg LockBoxLib is being removed. Used the null instance here
for libraries (like PerformanceLib) that link against a LockBoxLib
instance.
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Removes the following PCDs since the lock box is no longer supported.
- `gQemuPkgTokenSpaceGuid.PcdOvmfLockBoxStorageBase`
- `gQemuPkgTokenSpaceGuid.PcdOvmfLockBoxStorageSize`
Signed-off-by: Michael Kubacki <Michael.kubacki@microsoft.com>
Main change is to compensate for the single MMRAM range used now that
the S3 resume area is removed from MMRAM. A single range is now used
to cover all of TSEG.
Signed-off-by: Michael Kubacki <Michael.kubacki@microsoft.com>
Removes S3 and boot script related code to focus the module on simply
installing `Trigger()` and `Clear()` functionality for the SMM
Control protocol.
Signed-off-by: Michael Kubacki <Michael.kubacki@microsoft.com>
Removes platform initialization logic for S3 and the lock box.
Notably, the number of MMRAM regions is reduced from two to one since
the first MMRAM range was previously a 4KB page used to hold S3
resume structures.
The amount of ACPI NVS reservation is reduced substantially since
areas like the following do not need to be preserved for S3 resume:
- CPU AP stack buffers
- Temp RAM stack and heap
- GUIDed section extraction handlers
- Reset vector initial page tables
The lock box storage buffer is also not allocated at all. Previously,
it was allocated as boot services data (not ACPI NVS) since S3 was
never enabled. In any case, that space is no longer allocated.
Asserts are added in places through key control flow to alert a
developer if S3 is detected as enabled when it should not be.
Signed-off-by: Michael Kubacki <Michael.kubacki@microsoft.com>
Always follow the non-S3 flow to decompress the main FV and load
the PEI core from it during SEC startup.
Signed-off-by: Michael Kubacki <Michael.kubacki@microsoft.com>
Removes libraries and modules that support S3 and Lock Box since S3
is not supported by QemuQ35Pkg.
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
1. Drop SmmLockBox from build and flash image
This is a Traditional SMM module that cannot be dispached with
the Standalone MM module currently support in QemuQ35Pkg.
2. Drop PEI and DXE S3 and Lock Box related modules from the
QemuQ35Pkg build and flash image.
`gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable` is `FALSE` which
disables S3 support. Code is also currently not being written to
support S3 boot script replay and S3 is not tested. Modern physical
platforms rarely support S3 and S3 presents its own security
related concerns and maintenance overhead.
Since S3 is not needed, the lock box code which is currently only
used to store the S3 boot script is not needed.
As a consequence, the following S3, boot script, and lock box
related PEI and DXE modules are removed from QemuQ35Pkg:
- `BootScriptExecutorDxe`
- `CpuS3DataDxe`
- `S3Resume2Pei`
- `S3SaveStateDxe`
3. Drop S3 and lock box related library instances from QemuQ35Pkg
build.
The following library instances also do not need to be build given
S3 is not supported and are removed from the QemuQ35Pkg build:
- `MdeModulePkg/Library/PiDxeS3BootScriptLib/DxeS3BootScriptLib.inf`
- `MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf`
- `MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf`
- `MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf`
- `MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.inf`
- `QemuPkg/Library/LockBoxLib/LockBoxBaseLib.inf`
- `QemuQ35Pkg/Library/QemuFwCfgS3Lib/PeiQemuFwCfgS3LibFwCfg.inf`
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
## Description
The XenHypercallLib instance in QemuQ35Pkg has the following
LIBRARY_CLASS value in its [DEFINES] section:
```
[Defines.IA32, Defines.X64]
LIBRARY_CLASS = XenHypercallLib|...
[Defines.ARM, Defines.AARCH64]
LIBRARY_CLASS = XenHypercallLib
```
However, the library instance is specified in QemuQ35Pkg.dsc against the
"Common" architecture as it is placed in the `[LibraryClasses]` section.
This raises the following warning during build:
```
INFO - QemuQ35Pkg.dsc(...): warning:
Platforms\QemuQ35Pkg\Library\XenHypercallLib\XenHypercallLib.inf
does not support LIBRARY_CLASS XenHypercallLib
```
This is printed from the `_ValidateLibraryClass()` function in
`BaseTools/Source/Python/Workspace/DscBuildData.py` because the library
class is bound by architecture in the INF file so it does *not* support
the "Common" architecture.
This change maps the library instance to the XenHypercallLib class per
the defined architectures (`IA32` and `X64`) in QemuQ35Pkg.dsc.
- [ ] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [ ] Includes tests?
- [ ] Includes documentation?
## How This Was Tested
- `QemuQ35Pkg` before and after the change
## Integration Instructions
- N/A
Signed-off-by: Michael Kubacki <Michael.kubacki@microsoft.com>
Bumps Common/MU_OEM_SAMPLE from `2023110000.0.2` to `2024050000.0.0`
Signed-off-by: Project Mu Bot <mubot@microsoft.com>
Co-authored-by: Aaron <105021049+apop5@users.noreply.github.com>
## Description
Update mu_basecore to top of release/202405 and supervisor repo to pair
up with the updated override tags.
For details on how to complete to complete these options and their
meaning refer to
[CONTRIBUTING.md](https://github.com/microsoft/mu/blob/HEAD/CONTRIBUTING.md).
- [x] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [ ] Includes tests?
- [ ] Includes documentation?
## How This Was Tested
Tested on QEMU Q35 and booted to shell.
## Integration Instructions
N/A
## Description
Add an explicit set for resolver to use version 2. This is required for
virtual workspaces as the rust edition cannot be inferred by the
compiler.
For details on how to complete to complete these options and their
meaning refer to
[CONTRIBUTING.md](https://github.com/microsoft/mu/blob/HEAD/CONTRIBUTING.md).
- [ ] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [ ] Includes tests?
- [ ] Includes documentation?
## How This Was Tested
I validated that cargo make build, test, and coverage did not change.
## Integration Instructions
N/A
Bumps
[Features/DEBUGGER](https://github.com/microsoft/mu_feature_debugger)
from `d7db129` to `ad7047d`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ad7047d100"><code>ad7047d</code></a>
pip: update edk2-pytool-extensions requirement from ~=0.27.10 to
~=0.27.11 (<a
href="https://redirect.github.com/microsoft/mu_feature_debugger/issues/51">#51</a>)</li>
<li>See full diff in <a
href="d7db129716...ad7047d100">compare
view</a></li>
</ul>
</details>
<br />
You can trigger a rebase of this PR by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[Features/DEBUGGER](https://github.com/microsoft/mu_feature_debugger)
from `c9efe78` to `d7db129`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d7db129716"><code>d7db129</code></a>
Repo File Sync: synced file(s) with microsoft/mu_devops (<a
href="https://redirect.github.com/microsoft/mu_feature_debugger/issues/50">#50</a>)</li>
<li><a
href="312b83662f"><code>312b836</code></a>
pip: update edk2-pytool-library requirement from ~=0.21.9 to ~=0.21.10
(<a
href="https://redirect.github.com/microsoft/mu_feature_debugger/issues/49">#49</a>)</li>
<li><a
href="3553982820"><code>3553982</code></a>
pip: bump antlr4-python3-runtime from 4.13.1 to 4.13.2 (<a
href="https://redirect.github.com/microsoft/mu_feature_debugger/issues/48">#48</a>)</li>
<li><a
href="4de89c0a27"><code>4de89c0</code></a>
pip: update edk2-pytool-library requirement from ~=0.21.8 to ~=0.21.9
(<a
href="https://redirect.github.com/microsoft/mu_feature_debugger/issues/47">#47</a>)</li>
<li>See full diff in <a
href="c9efe78878...d7db129716">compare
view</a></li>
</ul>
</details>
<br />
You can trigger a rebase of this PR by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aaron <105021049+apop5@users.noreply.github.com>
## Description
Updates the build instructions for using QEMU on windows and Linux to
accurately specify that QEMU is provided automatically on Windows but
should manually be downloaded on Linux. Additionally specifies that QEMU
9.0.2 or greater is necessary to boot the operating system on Linux.
Closes#1012
- [ ] 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, ...
- [x] 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
N/A
## Integration Instructions
N/A
---------
Signed-off-by: Joey Vagedes <joey.vagedes@gmail.com>
Co-authored-by: Michael Kubacki <michael.kubacki@microsoft.com>
## Description
This change re-enables the memory map test app fix by picking up the
latest MU_PLUS and MU_SILICON_ARM.
Resolves https://github.com/microsoft/mu_tiano_platforms/issues/1017.
For details on how to complete to complete these options and their
meaning refer to
[CONTRIBUTING.md](https://github.com/microsoft/mu/blob/HEAD/CONTRIBUTING.md).
- [x] Impacts functionality?
- [ ] Impacts security?
- [ ] Breaking change?
- [x] Includes tests?
- [ ] Includes documentation?
## How This Was Tested
This change is tested on QEMU Q35.
## Integration Instructions
N/A
## Description
The Project Mu submodules have moved to release/202405 and as the final
step in qualifying that, we move mu_tiano_platforms to the new
submodules. Below is the list of major changes for this repo to
accommodate the new submodules:
SBSA Dropping ArmVirtPkg Dependency
--
QemuSbsaPkg was dependent on ArmVirtPkg for two libraries and a set of
device tree PCDs. These device tree PCDs were moved to OvmfPkg in edk2,
which we do not carry in Project Mu. In general, ArmVirtPkg allows
dependencies on OvmfPkg, which makes it not a good candidate for Project
Mu to depend on. The PCDs were moved to QemuSbsaPkg, QemuVirtMemInfoLib
was copied there, and the HobLib was pointed to the mu_basecore version,
as the ArmVirtPkg version was not needed, thus breaking the dependency
on ArmVirtPkg. Some other ArmVirtPkg unused PCDs were dropped entirely.
MM_SUPV Updates
--
There were a lot of MM_SUPV updates in release/202405, which led to
needing to copy an instance of SmmRelocationLib from OvmfPkg to
QemuQ35Pkg. There was debt from previous integrations where changes from
MmFeatureLib were not picked up, which were required to work with the
new supervisor.
SourceLevelDebugPkg Dropped
--
Project Mu no longer carries SourceLevelDebugPkg, so all references and
hooks were dropped from the repo.
Non-NX Compat Images Allowed to be Loaded
--
Previously, on Windows built FW's, we would block loading non-NX compat
binaries. This prevents booting most modern Linuxes as shim/grub do not
have the NX_COMPAT flag set for released versions. This was changed to
not block loading non-NX Compat images so that Linux can boot on
Q35/SBSA on Windows.
SBSA Qemu run without SME and SVE
--
Similar to requiring SSE support on Q35, Windows and Linux have started
using SVE instructions on ARM64. However, TF-A in the SP_MM
configuration does not support SME or SVE instructions, so TF-A would
crash when one of those instructions occurred. Qemu is now configured to
run without support for SME and SVE so that the OSes do not attempt to
use them. It was also discovered that Qemu 9.0.2 or newer is required
for booting an OS on SBSA now, it is not clear what changed.
Cleanups and Old References Dropped
--
- As part of debugging some of the changes needed for release/202405,
some DSC cleanups were made.
- MemoryOverrideBinLib was not carried forward to release/202405, so it
was dropped from DSCs.
- AdvLoggerAccessLibNull is used for VariableStandaloneMmLib.inf in
QemuSbsaPkg now instead of the actual instance, as we are not using
AdvLogger there.
For each item, place an "x" in between `[` and `]` if true. Example:
`[x]`.
_(you can also check items in the GitHub UI)_
- [x] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [x] 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, ...
- [x] 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
Booted Q35 and SBSA to Windows and Linux
## Integration Instructions
Qemu 9.0.2 is required for Linux builds to boot into an OS now, it is
unclear exactly what is broken with older versions.
---------
Co-authored-by: Kun Qin <kuqin@microsoft.com>