Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REBASE && FF] Publish and Parse PlatformInfo.dat in Paging Audit #299

Merged

Conversation

TaylorBeebe
Copy link
Contributor

@TaylorBeebe TaylorBeebe commented Aug 28, 2023

  1. Create the PlatformInfo.dat file which contains the required platform information to parse the page/translation tables (bitwidth, execution level, phase, architecture).
  2. Check the execution level when parsing AARCH64 translation tables in the paging report generator scripts.

These patches will fix the paging audit test failure on SBSA, and will reduce the number of command line options which need to be passed into the page parsing scripts.

@TaylorBeebe TaylorBeebe requested review from makubacki and os-d August 28, 2023 17:58
@github-actions github-actions bot added the language:python Pull requests that update Python code label Aug 28, 2023
@TaylorBeebe TaylorBeebe force-pushed the add_ex_level_parsing branch from 59bb5c7 to 3e427b6 Compare August 28, 2023 20:19
Description

PlatformInfo.dat will contain information required to parse the
page tables. Some info contained in the PlatformInfo.dat file.

Type/Phase and Architecture needed to be passed in via the command
line. Bitwidth was published as a memory range object and needed
a hack in the script to be consumed. Execution Level was not previously
published and is needed to correctly parse the bits of AARCH64 pages.

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, ...
- [ ] 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

Running the Paging Audit in QemuQ35Pkg and QemuSbsaPkg

Integration Instructions

N/A
Description

Check the Execution Level of the platform (if it's AACH64) when
interpreting the XN bits.

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, ...
- [ ] 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

Running the Paging Audit in QemuQ35Pkg and QemuSbsaPkg

Integration Instructions

N/A
@TaylorBeebe TaylorBeebe force-pushed the add_ex_level_parsing branch from 3e427b6 to 67cec8a Compare August 28, 2023 21:47
@TaylorBeebe TaylorBeebe merged commit e01181d into microsoft:release/202302 Aug 28, 2023
@TaylorBeebe TaylorBeebe deleted the add_ex_level_parsing branch August 28, 2023 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
language:python Pull requests that update Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants