forked from microsoft/mu_tiano_platforms
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Platforms/Docs: Refresh features in QEMU Q35 readme (microsoft#674)
- 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, ... - [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, ... - markdownlint N/A Signed-off-by: Michael Kubacki <[email protected]>
- Loading branch information
Showing
4 changed files
with
94 additions
and
39 deletions.
There are no files selected for viewing
24 changes: 18 additions & 6 deletions
24
Platforms/Docs/Common/Features/feature_memoryprotection.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,24 @@ | ||
# Memory Protection | ||
|
||
For in-depth information on Memory Protection in Project Mu, see | ||
[feature_memory_protection.md](../../../../MU_BASECORE/Docs/feature_memory_protection.md) | ||
For in-depth technical details on Memory Protection in Project Mu, see | ||
[feature_memory_protection.md](https://github.com/microsoft/mu_basecore/blob/HEAD/Docs/feature_memory_protection.md) | ||
|
||
Memory protection is ON by default on Q35 and SBSA. To disable memory protection | ||
add `BLD_*_MEMORY_PROTECTION=FALSE` to your `stuart_build` command. Example: | ||
Memory protections are important because Unified Extensible Firmware Interface (UEFI) standard accounts for the | ||
firmware design implemented in 80 to 90 percent of the of PCs and servers sold worldwide. Developed and supported by | ||
more than 250 industry-leading companies, UEFI firmware is responsible for booting and securing billions of devices | ||
spanning device classes from embedded applications to multi-role server systems. | ||
|
||
While considerable attention has been devoted to hardware trust anchors and operating system security, attackers have | ||
discovered that UEFI firmware is lacking basic memory protections that have been present in other system software for | ||
over a decade. Coupled with the inconsistency of security capabilities inherit to vendor firmware implementations, | ||
UEFI firmware has become an increasingly attractive system attack vector. | ||
|
||
`QemuQ35Pkg` and `QemuSbsaPkg` allow experimentation with the memory protections being offered in physical platforms. | ||
|
||
Memory protections are ON by default on Q35 and SBSA. To disable memory protection add `BLD_*_MEMORY_PROTECTION=FALSE` | ||
to your `stuart_build` command. Example: | ||
|
||
`stuart_build -c .\Platforms\<Platform>\PlatformBuild.py BLD_*_MEMORY_PROTECTION=FALSE --FlashRom` | ||
|
||
Because `MEMORY_PROTECTION` is a build flag, the platform will need to be rebuilt for a change to the | ||
value to take effect (meaning `--FlashOnly` will not work). | ||
Because `MEMORY_PROTECTION` is a build flag, the platform will need to be rebuilt for a change to the value to take | ||
effect (meaning `--FlashOnly` will not work). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters