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

Sync with edk2 oct 2023 v3 #88

Closed
wants to merge 1,516 commits into from

Conversation

mdkinney
Copy link
Member

@mdkinney mdkinney commented Nov 7, 2023

Please ignore. Syncing with latest edk2/master. No review required.

Javagedes and others added 22 commits November 6, 2023 19:07
Upgrades python to 3.12 for build as it has been released and all
supporting tools have been updated to also support 3.12.

Cc: Sean Brogan <[email protected]>
Cc: Michael Kubacki <[email protected]>
Cc: Michael D Kinney <[email protected]>
Cc: Liming Gao <[email protected]>
Signed-off-by: Joey Vagedes <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael D Kinney <[email protected]>
Reviewed-by: Michael Kubacki <[email protected]>
Introduces two new APIs to EDKII_VARIABLE_POLICY_PROTOCOL:
  1. GetVariablePolicyInfo()
  2. GetLockOnVariableStateVariablePolicyInfo()

These allow a caller to retrieve policy information associated with
a UEFI variable given the variable name and vendor GUID.

GetVariablePolicyInfo() - Returns the variable policy applied to the
UEFI variable. If the variable policy is applied toward an individual
UEFI variable, that name can optionally be returned.

GetLockOnVariableStateVariablePolicyInfo() - Returns the Lock on
Variable State policy applied to the UEFI variable. If the Lock on
Variable State policy is applied to a specific variable name, that
name can optionally be returned.

These functions can be useful for a variety of purposes such as
auditing, testing, and functional flows.

Also fixed some variable name typos in code touched by the changes.

Cc: Dandan Bi <[email protected]>
Cc: Hao A Wu <[email protected]>
Cc: Jian J Wang <[email protected]>
Cc: Liming Gao <[email protected]>
Signed-off-by: Michael Kubacki <[email protected]>
Reviewed-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Liming Gao <[email protected]>
Message-Id: <[email protected]>
Adds a new module (dynamic shell command) to ShellPkg that lists
variable policy information for all UEFI variables on the system.

Some other UEFI variable related functionality is also included to
give a greater sense of platform UEFI variable state. This command
is intended to help make variable policies more transparent and
easier to understand and configure on a platform.

Like all dynamic shell commands, a platform only needs to include
`VariablePolicyDynamicCommand.inf` in their flash image to have
the command registered in their UEFI shell.

Include the following lines in platform DSC (in DXE components section):

```
  ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyDynamicCommand.inf {
    <PcdsFixedAtBuild>
      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
  }
```

Include the following line in platform FDF:

```
INF  ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyDynamicCommand.inf
```

A standalone UEFI application can also be built that uses the same
underlying functional code as the dynamic shell command.

The path to use in the DSC and FDF for the app:

```
  ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyApp.inf
```

Cc: Zhichao Gao <[email protected]>
Cc: Michael D Kinney <[email protected]>
Signed-off-by: Michael Kubacki <[email protected]>
Reviewed-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Zhichao Gao <[email protected]>
Message-Id: <[email protected]>
Adds the varpolicy EFI shell command to all DSC files that
currently include other dynamic shell commands from ShellPkg.

This command allows variable policies to be dumped in the EFI
shell for convenient auditing and debug.

Use the command in QEMU EFI shell as follows:

- `"varpolicy"` dumps platform variables
- `"varpolicy -?"` shows help text
- `"varpolicy -b"` pages output as expected
- `"varpolicy -s"` shows accurate variable statistic information
- `"varpolicy -p"` shows accurate UEFI variable policy information
- `"varpolicy-v -b"` dumps all information including variable data hex dump

Cc: Anatol Belski <[email protected]>
Cc: Anthony Perard <[email protected]>
Cc: Gerd Hoffmann <[email protected]>
Cc: Jianyong Wu <[email protected]>
Cc: Jiewen Yao <[email protected]>
Cc: Jordan Justen <[email protected]>
Cc: Julien Grall <[email protected]>
Signed-off-by: Michael Kubacki <[email protected]>
Acked-by: Jiewen Yao <[email protected]>
Reviewed-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Michael D Kinney <[email protected]>
Message-Id: <[email protected]>
Adds the varpolicy EFI shell command to all DSC files that
currently include other dynamic shell commands from ShellPkg.

This command allows variable policies to be dumped in the EFI
shell for convenient auditing and debug.

Use the command in the EFI shell as follows:

- `"varpolicy"` dumps platform variables
- `"varpolicy -?"` shows help text
- `"varpolicy -b"` pages output as expected
- `"varpolicy -s"` shows accurate variable statistic information
- `"varpolicy -p"` shows accurate UEFI variable policy information
- `"varpolicy-v -b"` dumps all information including variable data hex dump

Cc: Ard Biesheuvel <[email protected]>
Cc: Gerd Hoffmann <[email protected]>
Cc: Julien Grall <[email protected]>
Cc: Laszlo Ersek <[email protected]>
Cc: Leif Lindholm <[email protected]>
Cc: Sami Mujawar <[email protected]>
Signed-off-by: Michael Kubacki <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Ard Biesheuvel <[email protected]>
Since the code is most regularly tested in CI, distro/versioning
details are updated to match the latest CI configuration.

CI has moved from Ubuntu 18.04 to Ubuntu 22.04 since the time of the
file's creation, but the code is actually built in a Fedora container
so Fedora is mentioned as the primary build/test environment.

Updates the following information:

- Build OS: Fedora 37 Linux
- Supported Configuration: Additional DSCs added
- Python: 3.12.x
- Packaging Tool: dnf instead of apt
- Container Details: Added
- Primary Build Example: QemuBuild.py instead of PlatformBuild.py

Cc: Ard Biesheuvel <[email protected]>
Cc: Gerd Hoffmann <[email protected]>
Cc: Julien Grall <[email protected]>
Cc: Leif Lindholm <[email protected]>
Cc: Sami Mujawar <[email protected]>
Signed-off-by: Michael Kubacki <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
[[email protected]: don't specify the number of supported firmware builds]
Adds a GitHub workflow that uses the actions/stale GitHub action to
automatically leave notifications on and close PRs that have had no
activity for a long time.

Note: Modifications to a PR reset the staleness counter. This
      includes pushing to the PR, adding a label to the PR,
      commenting on the PR, etc.

      If a PR has been marked "stale", simply leaving a comment will
      reset the counter.

Configuration choices:

1. Do not attempt to close edk2 GitHub issues.
2. Mark edk2 PRs as stale if no activity in the last 60 days. Close
   PRs marked stale if no further activity in 7 days.
3. Do not exempt PRs with a "push" label.
4. Run the check once daily. Allow manual runs from those that have
   permission to run GitHub workflows.
5. Add the label "stale" to the PR when it enters the stale state.

Rationale:

1. We do not use issues often enough. The limited usage of GitHub
   issues in Tianocore org GitHub projects are in another repo not
   impacted by this workflow and expected to track long term tasks.
2. This is the default value. In non-edk2 projects, I've seen these
   times work fairly well to identify PRs that have fallen stale.
3. Adding a "push" label resets the stale timer. If a PR has had a
   "push" label for 60+ days and has not been fixed for submission,
   then it is has very likely been abandoned.
4. This is sufficient to update PRs on the day granularity the
   configuration settings are applied against.
5. The label makes it easy to filter stale PRs in the PR list and
   write automation around PRs that are stale. It's also an obvious
   visual identifier that a PR needs attention in the PR list.

Cc: Sean Brogan <[email protected]>
Cc: Michael Kubacki <[email protected]>
Cc: Michael D Kinney <[email protected]>
Cc: Laszlo Ersek <[email protected]>
Signed-off-by: Michael Kubacki <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Michael D Kinney <[email protected]>
Acked-by: Laszlo Ersek <[email protected]>
Cc: Eric Dong <[email protected]>
Cc: Rahul Kumar <[email protected]>
Cc: Tom Lendacky <[email protected]>
Signed-off-by: Yuanhao Xie <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Eric Dong <[email protected]>
Reviewed-by: Rahul R Kumar <[email protected]>
There are two definitions for below functions in RedfishCrtLib.h. Create
this change to remote duplicated functions.
Function list: strcmp(), strncmp(), strncpy(), strcpy(), strcat(),
strlen(), strchr(), strcasecmp(), strstr(), memcmp(), memset(),
memcpy(), memchr(), memcmp() and memmove().

Signed-off-by: Nickle Wang <[email protected]>
Cc: Abner Chang <[email protected]>
Cc: Igor Kulchytskyy <[email protected]>
Cc: Nick Ramirez <[email protected]>
Cc: Mike Maslenkin <[email protected]>
Reviewed-by: Abner Chang <[email protected]>
Acked-by: Mike Maslenkin <[email protected]>
The patch "f81ee47513e5 DynamicTablesPkg: Add an ET info
object parser" updates the Configuration Manager object
parser to add support for parsing CM_ARM_ET_INFO object.

However, the GicC info structure also has an ET Reference
token that points to the CM_ARM_ET_INFO object. Therefore,
update the GICC info object parser to add an entry to parse
the ET reference token. Without this change an assert
stating that the RemainingSize != 0 will be triggered.

Signed-off-by: Sami Mujawar <[email protected]>
Reviewed-by: levi.yun <[email protected]>
- Adds Apache License 2.0 as an acceptable source license per
  discussion in https://edk2.groups.io/g/devel/message/110226
- Updates the URL for existing licenses to match the current path
  used by opensource.org.
- The submodule list in this file is stale and is very prone to
  being forgotten. The list of submodules in the submodules setion
  is replaced with a link to .gitmodules which has an active list
  of submodules at any given time.

Cc: Andrew Fish <[email protected]>
Cc: Laszlo Ersek <[email protected]>
Cc: Leif Lindholm <[email protected]>
Cc: Michael D Kinney <[email protected]>
Cc: Pedro Falcato <[email protected]>
Cc: Sean Brogan <[email protected]>
Signed-off-by: Michael Kubacki <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Michael D Kinney <[email protected]>
Acked-by: Pedro Falcato <[email protected]>
When FSP runs in API mode, it saves the IDTR in its own stack then
switches to bootloader's stack before it returns from FspMemoryInit.
Next time when the bootloader calls TempRamExit, FSP switches to
its own stack and restores IDTR from its stack saved earlier.

However, due to a bug in BaseFspSwitchStackLib, the IDTR saved on
FSP's stack might be corrupted that results the following TempRamExit
call fails inside FSP due to PeiServices pointer cannot be retrieved
from IDT.base - 8.

The bug is the assembly code doesn't reserve 32 bytes before calling
the C routine in 64bit. According to the x86-64 calling convention,
caller is responsible for allocating 32 bytes of "shadow space" on the
stack right before calling the function (regardless of the actual
number of parameters used).

When FSP is built in optimization-off mode, the C routine makes use
of the 32-byte "shadow space" which is not reserved by the assembly
caller. That causes the IDTR saved on the stack is corrupted by the
C routine.
The patch fixes so by reserving the 32 bytes before calling C routine.

Signed-off-by: Ray Ni <[email protected]>
Cc: Chasel Chiu <[email protected]>
Reviewed-by: Nate DeSimone <[email protected]>
Cc: Duggapu Chinni B <[email protected]>
Cc: Ray Han Lim Ng <[email protected]>
Cc: Star Zeng <[email protected]>
Reviewed-by: Ted Kuo <[email protected]>
Reviewed-by: Ashraf Ali S <[email protected]>
Cc: Susovan Mohapatra <[email protected]>
According to the markdown language syntax, headings should be after
number signs (#). The number of number signs correspond to the heading
level.
But current PatchFvUserManual.md doesn't insert a space between the
number signs and the heading title, resulting the markdown file is not
rendered well in markdown viewers.

The patch doesn't change any content but only adds spaces to ensure
the headings are correctly recognized.

Signed-off-by: Ray Ni <[email protected]>
Cc: Chasel Chiu <[email protected]>
Reviewed-by: Nate DeSimone <[email protected]>
Cc: Duggapu Chinni B <[email protected]>
Cc: Ray Han Lim Ng <[email protected]>
Cc: Star Zeng <[email protected]>
Cc: Ted Kuo <[email protected]>
Reviewed-by: Ashraf Ali S <[email protected]>
Cc: Susovan Mohapatra <[email protected]>
Over the past few months, all the of the Maintainers and
Reviewers listed in Maintainers.txt have been contacted to make
sure Maintainers.txt accurately represents the TianoCore
community members that are actively participating in their
roles.  Based on specific feedback, bounced emails, and no
responses, updates have been made.

* RISCV64: Daniel Schaefer replaced with Andrei Warkentin
* ArmVirtPkg Xen has no remaining reviewers and review
  responsibility defaults to ArmVirtPkg Maintainers/Reviewers.
* ACPI modules related to S3 has no remaining reviewers and
  review responsibility defaults to MdeModulePkg Maintainers/
  Reviewers.
* OVMF CSM modules has no remaining reviewers and review
  responsibility defaults to OvmfPkg Maintainers/Reviewers.
* Bounce: Chan Laura <[email protected]>
* Many smaller updates removing individuals that are no
  longer involved or have replacement coverage.

Cc: Andrew Fish <[email protected]>
Cc: Leif Lindholm <[email protected]>
Cc: Andrei Warkentin <[email protected]>
Cc: Catharine West <[email protected]>
Cc: Dandan Bi <[email protected]>
Cc: Daniel Schaefer <[email protected]>
Cc: David Woodhouse <[email protected]>
Cc: Debkumar De <[email protected]>
Cc: Eric Dong <[email protected]>
Cc: Guomin Jiang <[email protected]>
Cc: Hao A Wu <[email protected]>
Cc: James Bottomley <[email protected]>
Cc: Jian J Wang <[email protected]>
Cc: Jordan Justen <[email protected]>
Cc: Julien Grall <[email protected]>
Cc: Peter Grehan <[email protected]>
Cc: Qi Zhang <[email protected]>
Cc: Ray Han Lim Ng <[email protected]>
Cc: Stefan Berger <[email protected]>
Cc: Wenxing Hou <[email protected]>
Cc: Xiaoyu Lu <[email protected]>
Signed-off-by: Michael D Kinney <[email protected]>
Reviewed-by: Leif Lindholm <[email protected]>
Reviewed-by: Stefan Berger <[email protected]>
Reviewed-by: Ray Han Lim Ng <[email protected]>
Reviewed-by: Laszlo Ersek <[email protected]>
Reviewed-by: Andrei Warkentin <[email protected]>
Reviewed-by: Hao A Wu <[email protected]>
Reviewed-by: Peter Grehan <[email protected]>
Acked-by: Julien Grall <[email protected]>
Acked-by: Jordan Justen <[email protected]>
Install the performance table into the UEFI configuration table.
This will allow the shell application to get this if the system
is not using ACPI.

Signed-off-by: Jeff Brasen <[email protected]>
Reviewed-by: Liming Gao <[email protected]>
If the system does not have ACPI setup use the configuration table
to get the performance info.

Signed-off-by: Jeff Brasen <[email protected]>
Reviewed-by: Zhichao Gao <[email protected]>
Allow .rtf files created by applications such as Notepad to be committed
as-is without further manual editing by skipping the requirements for
CRLF, no tabs and no trailing whitespace.

Signed-off-by: Rebecca Cran <[email protected]>
Reviewed-by: Liming Gao <[email protected]>
Acked-by: Laszlo Ersek <[email protected]>
Add the bit masks for DLL Characteristics, used within the optional
header of a PE, to the PeImage.h header file.

Update the Visual Studio, Microsoft Portable Executable and Common
Object File Format Specification, and the PE/COFF Specification to the
latest version.

Cc: Michael D Kinney <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Zhiguang Liu <[email protected]>
Signed-off-by: Joey Vagedes <[email protected]>
Reviewed-by: Michael D Kinney <[email protected]>
Reviewed-by: Rebecca Cran <[email protected]>
Automatically set the nxcompat flag in the DLL Characteristics field of
the Optional Header of the PE32+ image. For this flag to be set
automatically, the section alignment must be evenly divisible
by 4K (EFI_PAGE_SIZE) and no section must be executable and writable.

Adds a command line flag to GenFw, --nonxcompat, to ensure the
IMAGE_DLLCHARACTERISTICS_NX_COMPAT bit is not set, even if all
requirements are met. Updates the manual for GenFw to include the new
flag.

Cc: Rebecca Cran <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Bob Feng <[email protected]>
Cc: Yuwei Chen <[email protected]>
Signed-off-by: Joey Vagedes <[email protected]>
Acked-by: Liming Gao <[email protected]>
Reviewed-by: Rebecca Cran <[email protected]>
Add CODEOWNERS and REVIEWRS based on Maintainers.txt

Signed-off-by: Michael D Kinney <[email protected]>
Add github actions to assign reviewers to a PR and verify
that any updates to CODEOWNERS, REVIEWERS or Maintainers.txt
are in sync.

Update workflow to generate a token so the assign reviewers
action runs with the name and permissions of the
tianocore-assign-reviewers [bot] application.

Signed-off-by: Michael D Kinney <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.