v15.0.0
What's Changed
-
Remove `cpp` and `cpp-legacy` from cspell dictionaries @makubacki (#389)
Change Details
## Description
Add word exceptions needed. Fix some spelling errors hidden behind the dictionaries.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make cspell
Integration Instructions
- N/A
-
Disable cargo release dry run - To pass CI for patina monorepo PR @vineelko (#400)
Change Details
## Description
Disable Cargo Release Dry Run - To Pass CI for Patina Monorepo PR
#399Why do we need this(one off exception)?
With the above Patina PR, we are consolidating code from three different repositories (uefi-dxe-core,uefi-core, anduefi-sdk) into a single versioned repository for the Patina project. As part of this consolidation, we have selected15.0.0as the next version for the Patina repository.All crates now inherit the version from the Patina workspace
Cargo.toml, and dependencies are declared as shown below:# Cargo.toml # sdk/boot_services dependencies # ----------------------------------- uefi_protocol = { version = "15.0.0", path = "sdk/uefi_protocol" }
Currently, our CI setup for any PR performs a dry run of the release process, which includes checking whether the specified dependency versions are available in the internal registry. Since version
15.0.0has not yet been published, the dry run fails.This change disables the dry run in order to allow the CI to pass for the PR mentioned above. Once the PR is merged, we will follow the usual process of generating a draft release, and the
publishreleaseworkflow will handle the actual publication of the crates.- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
NA
Integration Instructions
NA
🐛 Bug Fixes
-
dxe\_core: Update init\_paging to Sync NX to GCD When Applying to Paging @os-d (#388)
Change Details
## Description
Currently, part of the init_paging function uses GCD APIs to manipulate page table attributes in the newly built page table, but not for already allocated memory, MMIO, or reserved memory. This creates a mismatched state in the GCD (NX not reflected) and page table (NX reflected).
This patch updates init_paging to exclusively use the GCD APIs to manipulate the page table (even the one being formed) so that the GCD always stays in sync. This matches all other updates of the page table.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested booting Q35 and SBSA to Windows and Linux and breaking in with the debugger, dumping the GCD to confirm all regions expected had NX set and tested a few of these regions in the page table to confirm NX was set.
Integration Instructions
N/A.
</blockquote> <hr> </details>
-
[REBASE \& FF] Fix fragmented memory map and reinstate rdata memory protections @cfernald (#387)
Change Details
## Description
This change resolved issue #365 where the rdata memory protections were causing Windows to fail to boot. This was because it pushed an already framented memory map over some static limits that Windows has in some paths of its execution. This change fixes the fragmentation by masking attributes before the descriptors get folded and reverts the revert of the memory map change.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
Tested on Intel platform.
Integration Instructions
N/A
</blockquote> <hr> </details>
📖 Documentation Updates
-
RFC: Single Patina Repo @makubacki (#380)
Change Details
## Description
Proposes moving to a single Patina repository that encompasses the main collateral of the project.
Status: Approved
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
- N/A
Integration Instructions
- N/A
-
docs: Add unstable feature doc @makubacki (#386)
Change Details
## Description
Closees #369
Explains the Patina philosophy for unstable feature usage and the process for proposing the adoption of unstable features.
- Impacts functionality?
- Impacts security?
- Breaking change?
- Includes tests?
- Includes documentation?
How This Was Tested
cargo make all
Integration Instructions
- N/A
Full Changelog: v13.0.0...v13.0.1