Commit Graph

33457 Commits

Author SHA1 Message Date
Ashraf Ali 2d10dc1fb5 EmulatorPkg/Win/Host: Source level debugging on already loaded DLL
Signed-off-by: Ashraf Ali <ashraf.ali.s@intel.com>
2024-10-28 17:22:56 +00:00
Michael Kubacki 4de80843a7 IntelFsp2WrapperPkg: Prevent null pointer dereference
Return from `FspsWrapperInitDispatchMode()` if a buffer allocation
fails instead of attempting to dereference the pointer.

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2024-10-28 16:10:09 +00:00
v-sbolisetti ea59e39c85 MdePkg/MockUefiLib: Added new mock functions.
Signed-off-by: v-sbolisetti <v-sbolisetti@microsoft.com>
2024-10-28 07:57:39 +00:00
INDIA\kanagavels 87e2ee60d4 MdeModulePkg: Added PPI support in UFS PEI driver.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4490

Added PPI support in UFS PEI driver to link the platform specific code
as same as UFS DXE driver.

Signed-off-by: Kanagavel S <kanagavels@ami.com>
2024-10-28 05:39:52 +00:00
Hua Ma 1a3d4b33b6 MdeModulePkg/TerminalDxe: Return success if device not support SetControl
Some serial device may not support SetControl. Ignore the error from
SetControl if EFI_UNSUPPORTED is return.

Signed-off-by: Hua Ma <hua.ma@intel.com>
2024-10-28 04:18:53 +00:00
Bret Barkelew 00ccd99d46 FatPkg: Fix potentially uninitialized variable
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1559

Initializes the variable to prevent an uninitialized variable
warning in Visual Studio with C4701 enabled.

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2024-10-25 18:48:06 +00:00
joe 1c0f3c3e41 MdeModulePkg/PciHostBridgeDxe: Add MemoryFence after write.
On AARCH64, there is no ordering guarantee between configuration
space (ECAM) writes and memory space reads (MMIO). ARM AMBA CHI
only guarantees ordering for reads and writes within a single address
region, however, on some systems MMIO and ECAM may be split into
separateaddress regions.

A problem may arise when an ECAM write is issued a completion before a
subsequent MMIO read is issued and receives a completion.

For example, a typical PCI software flow is the following:

1. ECAM write to device command register to enable memory space
2. MMIO read from device memory space for which access was enabled
   in step 1.

There is no guarantee that step 2. will not begin before the completion
of step 1.
on systems where ECAM/MMIO are specified as separate address regions,
even
if both spaces have the memory attributes device-nGnRnE.

- Add a barrier after the final PCI Configuration space write
in RootBridgeIoPciAccess. Configuration space reads should not have
side-efects.

- When configuration space is strongly ordered, this ensures
that program execution cannot continue until the completion
is received for the previous Cfg-Write, which may have side-effects.

- Risk of reading a "write-only" register and causing a CA which leaves
the device unresponsive. The expectation based on the PCI Base Spec
v6.1 section 7.4 is that all PCI Spec-defined registers will be readable,
however, there may exist design-specific registers that fall into
this category.

Signed-off-by: Aaron Pop <aaronpop@microsoft.com>

Co-authored-by: Ard Biesheuvel <ardb@kernel.org>
2024-10-25 06:21:28 +00:00
Bret Barkelew 587518694f .pytool/UncrustifyCheck: Add a in-place option
To simplify automatic formatting of new code, this feature lets a
local developer specify the `UNCRUSTIFY_IN_PLACE=TRUE` parameter on
the command line to automatically format files.

This is particularly useful when a large amount of new code needs
to be formatted in batch.

See the readme for more details.

Co-authored-by: Michael Kubacki <michael.kubacki@microsoft.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2024-10-25 01:37:03 +00:00
Sudeep Holla 8af71632d6 DynamicTablesPkg: Drop the unnecessary comparision of UINT8 max value
Clang build breaks with the following error:

  | DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c:1441:20:
  |      error: result of comparison of constant 256 with expression of type 'UINT8'
  |      (aka 'unsigned char') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
  |      1441 |        (AccessSize > 256)) ||
  |           |         ~~~~~~~~~~ ^ ~~~
  |    1 error generated.

AccessSize is UINT8 and the maximum value for UINT8 is 255, so the
comparision is unnecessary. Drop the check to fix the build.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
2024-10-24 11:37:22 +01:00
Mike Beaton 9e56b4373b EmbeddedPkg: Add MDEPKG_NDEBUG to RELEASE build
Although EmbeddedPkg normally provides components to other
packages, it is less surprising if its own build defines
MDEPKG_NDEBUG when consuming packages normally would.

Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2024-10-23 20:30:49 +00:00
Mike Beaton 8f04804593 EmbeddedPkg: Remove non-needed MDEPKG_NDEBUG dependent code
Remove small amount of MDEPKG_NDEBUG dependent code which
is no longer needed, given update of 'null' debug macros
in ae83c6b7fd to explicitly
mark debug-only code as discarded.

Additionally, correctly mark as STATIC the two arrays
within the updated code block.

Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2024-10-23 20:30:49 +00:00
Ard Biesheuvel 051ef932bd BaseTools/GenFw X64: Detect GOTCPRELX relaxations applied by LLD
GenFw relies on static ELF relocation tables emitted by the linker (via
the --emit-relocs command line switch). These are different from the
dynamic relocations that a dynamic loader uses: static relocations are
emitted by the compiler/assembler, and consumed by the linker to
construct the executable. Only when the load address is a priori unknown
are dynamic relocations emitted, by the linker, in a format that the
dynamic loader can consume.

This distinction is relevant because only dynamic relocations cover the
GOT, and so GOT based indirections are better avoided. Unfortunately,
there are cases where the toolchain insists on emitting GOT based symbol
references, and so we have to deal with them in one of 2 ways:

- replace GOT based symbol references with direct references, so that
  the GOT entries themselves are no longer used, and can be ignored when
  generating the PE/COFF relocation tables (AARCH64 and RISCV64 take
  this approach);

- infer the locations of the GOT slots from the references appearing in
  the code, and emit PE/COFF relocations for them so that their contents
  will be fixed up appropriately.

The latter is the approach taken by GenFw for x86_64, which is the only
feasible approach for its ISA, given that GOT slots can be used as
memory operands in many different types of instructions, not all of
which can be converted straight-forwardly.

E.g.,

   movq   foo@GOTPCREL(%rip), %rax

can always be converted into

   leaq   foo(%rip), %rax

whereas

   cmpq   foo@GOTPCREL(%rip), %rax

can only be converted under the 32-bit position dependent code model,
into

   cmpq   $foo, %rax

and so the GOT references cannot be elided when generating position
independent code, which is what GenFw requires.

To remove the need for the linker to guess where the instructions start,
the ELF psABI for x86_64 specifies a couple of relaxable alternatives
for GOTPCREL, which are used to annotate particular classes of GOT
referencing instructions that may be relaxed to their non-GOT
counterparts.

There is no specification for what --emit-relocs is supposed to produce,
or whether or not its output is supposed to reflect such relaxations.
ld.bfd and LLD behave differently in this regard, and the latter may
emit R_X86_64_REX_GOTPCRELX relocations for MOV instructions that it
already has relaxed into LEA instructions. This means the displacement
in the instruction no longer refers to the GOT slot, but directly to the
object itself, and emitting a relocation is not only unnecessary, but
also harmful as the PE/COFF loader will corrupt the object when it
applies the relocations at startup.

Under the position independent code model, the only relaxation that the
linker could have applied for a R_X86_64_REX_GOTPCRELX relocation is MOV
to LEA, so detect whether the instruction is already LEA, and ignore the
relocation if that is the case.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2024-10-23 09:52:54 +00:00
Sienski Piotr 9c557575a1 MdePkg/Include/Guid: Fix EFI_CXL_COMPONENT_EVENT_LOG in Cper.h
[Issue Description]
CXL_ERROR_PCIE_DEV_ID in Cper.h was renamed to EFI_CXL_ERROR_PCIE_DEV_ID,
but EFI_CXL_COMPONENT_EVENT_LOG still uses previous name.

[Resolution]
Modify EFI_CXL_COMPONENT_EVENT_LOG to use EFI_CXL_ERROR_PCIE_DEV_ID

Signed-off-by: Sienski Piotr <piotr.sienski@intel.com>
2024-10-22 21:01:27 +00:00
Revathy V 4ab8c3cf99 ShellPkg: Updated Type 4 Info as per Smbios 3.8.0
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4861

Added PROCESSOR_FAMILY_NAME support in ShellPkg.

Signed-off-by: Revathy <revathyv@ami.com>
2024-10-22 18:25:54 +00:00
Revathy V 9dc7fb819c MdePkg: Updated Type 4 Info as per Smbios 3.8.0
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4861

Added PROCESSOR_FAMILY_NAME support in MdePkg.

Signed-off-by: Revathy <revathyv@ami.com>
2024-10-22 18:25:54 +00:00
Abdul Lateef Attar ad522d9609 DynamicTablesPkg: Update X64 FADT XPm1aEvtBlk
Copy the provided configuration data for
PM1 event block.

Cc: Sami Mujawar <Sami.Mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2024-10-22 13:25:31 +00:00
Rebecca Cran 11bd2fa072 Update CI config following CompilerIntrinsicsLib move from ArmPkg
Library/CompilerIntrinsicsLib was moved from ArmPkg to MdePkg.
Since MdePkg is passing EccCheck without needing to ignore
CompilerIntrinsicsLib, just remove it from ArmPkg.ci.yaml.

This fixes the error during "stuart_ci_build":

ERROR - EccCheck.IgnoreInf ->
Build/.pytool/Plugin/EccCheck/ArmPkg/Library/CompilerIntrinsicsLib
not found in filesystem.  Invalid ignore files

Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
2024-10-22 12:05:12 +00:00
Abdul Lateef Attar cb1db8b9b9 DynamicTablesPkg: Update creator id for WSMT table
Update WSMT table with generic creator id.

Cc: Sami Mujawar <Sami.Mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2024-10-22 08:14:47 +00:00
Oleg Ilyasov 7b3969c951 MdeModulePkg UsbNetwork: Use USB class definition from MdePkg
- Class specific types for interface and endpoint are generic
- Definitions are in IndustryStandard/Usb.h
- Remove type redefinitions
- Update references to the descriptor types

Signed-off-by: Oleg Ilyasov <olegi@ami.com>
2024-10-22 05:40:04 +00:00
Jason Zhao e2ab098e65 ShellPkg/SmbiosView: Correct wrong length offset usage in SMBIOS Type4
The patch will correct wrong length offset usage in SMBIOS Type4.
For SMBIOS Ver3.6, length should be larger than 0x30.
For SMBIOS Ver3.8, length should be larger than 0x32.

Signed-off-by: Jason Zhao <jason.zhao@intel.com>
2024-10-22 03:57:20 +00:00
Sienski Piotr a19f50bb95 MdePkg/Include/Guid: Rename CXL definitions in Cper.h
[Issue Description]
In MdePkg/Include/Guid/Cper.h there are multiple definitions
regarding CXL that can do use EFI_ prefix in their names

[Resolution]
Rename these definitions in MdePkg/Include/Guid/Cper.h

Signed-off-by: Sienski Piotr <piotr.sienski@intel.com>
2024-10-21 15:59:39 +00:00
Mike Beaton 8f84eb0e76 BaseTools: Remove -Wno-unneeded-internal-declaration from CLANGDWARF
Subsequent to updating the 'null' DEBUG macro to explicitly
discard its expression, it is possible to remove this warning
suppression from CLANGDWARF and still successfully compile
its RELEASE build.

Note that CLANGPDB did and does not have this warning suppressed,
and so before updating the 'null' DEBUG macro, CLANGPDB RELEASE
was not building successfully in recent versions of clang,
but was stopping with the error:

.../edk2/OvmfPkg/VirtioSerialDxe/VirtioSerial.c:28:22: error:
variable &apos;EventNames&apos; is not needed and will not be
emitted [-Werror,-Wunneeded-internal-declaration]
STATIC CONST CHAR8  *EventNames[] = {
                     ^

This change makes the two CLANG variants match with respect
to this warning, and leaves the warning enabled which is
considered a benefit as it has the potential to catch real
coding errors

Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2024-10-18 16:22:07 +00:00
Mike Beaton ae83c6b7fd MdePkg: Fix null macros for XCODE5 and CLANG
When building OvmfPkg in RELEASE mode in the XCODE5 toolchain, the
ASSERT_EFI_ERROR change prevents this error:

.../MdePkg/Library/UefiMemoryAllocationLib/MemoryAllocationLib.c:141:15:
error: variable 'Status' set but not used [-Werror,-Wunused-but-set-variable]
  EFI_STATUS  Status;
              ^

which is currently stopping the build.

When building in RELEASE mode in the CLANGPDB toolchain,the DEBUG macro
change prevents this error:

.../edk2/OvmfPkg/VirtioSerialDxe/VirtioSerial.c:28:22: error:
variable &apos;EventNames&apos; is not needed and will not be
emitted [-Werror,-Wunneeded-internal-declaration]
STATIC CONST CHAR8  *EventNames[] = {
                     ^

which is currently stopping the build.

CLANGDWARF produces the same error as CLANGPDB above, if
-Wno-unneeded-internal-declaration is removed from its build flags.
With the null DEBUG macro change, this warning suppression
can be removed from CLANGDWARF, which is considered a benefit
as it has the potential to catch real coding errors. This is
done in a subsequent commit.

This commit has the desirable side effect that we no longer require
(and cannot use) explicit `#ifndef MDEPKG_NDEBUG` around items only
used in DEBUG macros. This requires the ArmPkg change made here to
be in the same commit as the MdePkg changes.

Note: In common with existing macros in EDK II, including the pre-existing
and unchanged DEBUG/NOOPT versions of the macros which are modified here,
we use the standard approach of adding `do { ... } while (FALSE)` wrapping
to ensure that the macros behave correctly with surrounding code
(e.g. require a following ';' and do not combine in unexpected ways with
nearby conditionals).

Continuous-integration-options: PatchCheck.ignore-multi-package
Co-authored-by: Mikhail Krichanov <krichanov@ispras.ru>
Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2024-10-18 16:22:07 +00:00
v-chhsieh 6e197a8ba5 MdePkg: Add Google Test Library and Protocol
Mock Libraries:
 MdePkg\Test\Mock\Library\GoogleTest\MockCpuLib
 MdePkg\Test\Mock\Library\GoogleTest\MockPciSegmentLib
 MdePkg\Test\Mock\Library\GoogleTest\MockReportStatusCodeLib
 MdePkg\Test\Mock\Library\GoogleTest\MockSmmServicesTableLib

Mock Protocol:
 MdePkg\Test\Mock\Include\GoogleTest\Protocol\MockMpService.h

Signed-off-by: jack Hsieh <v-chhsieh@microsoft.com>
Cc: Maintainer Shruti Gupta <shrugupt@microsoft.com>
Cc: Reviewer   Shruti Gupta <shrugupt@microsoft.com>
2024-10-17 17:03:15 +00:00
Jeremy Compostella 866abb2338 MdeModulePkg: Replace right bit shift operator with RShiftU64
Instead of using bit shift operations, it is preferable to use BaseLib
bit shift functions to prevent compilers from inserting intrinsics.

Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
2024-10-17 13:32:42 +00:00
Jeremy Compostella 996e740cc8 MdeModulePkg: Fix PeiAllocatePages() corner case
I recently ran into an AllocatePages() hang. It turns out that
AllocatePages() does not account for the Memory Allocation HOB when it
makes the decision of allocating out of free memory.

Here is the scenario:

  FreeMemoryTop    - 0x71C03000
  FreeMemoryBottom - 0x71BDBFD8
  => We have 159,784 bytes left => ~39.0098 pages left.

We attempt to allocate 39 pages. There are enough pages left but
allocating those pages requires to allocate a Memory Allocation HOB
which needs an extra 48 bytes. But once the pages are allocated,
there are only 40 bytes left.

In addition to taking into account the Memory Allocation HOB size,
this commit reverses the condition to keep it simple.

Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
2024-10-17 13:32:42 +00:00
Sienski Piotr 1b70dcd375 MdePkg/Include/Guid: Add missing CXL definitions to Cper.h
[Issue Description]
In MdePkg/Include/Guid/Cper.h there are missing multiple definitions
regarding CXL that can be found in UEFI 2.10 spec
chapters N.2.13 and N.2.14

[Resolution]
Add these definitions to MdePkg/Include/Guid/Cper.h

Signed-off-by: Sienski Piotr <piotr.sienski@intel.com>
2024-10-17 11:24:28 +00:00
Kun Qin 79598f34fa MdeModulePkg: PeiMain: Updated dispatcher for delayed dispatch
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4496

This change adds a check for PEI dispatcher to continue dispatching when
there are still pending delayed dispatch requests, to be compatible with
newly integrated Delayed Dispatcher PPI interface.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Debkumar De <debkumar.de@intel.com>
Cc: Catharine West <catharine.west@intel.com>

Co-authored-by: John Schock <joschock@microsoft.com>
Signed-off-by: Kun Qin <kuqin12@gmail.com>
2024-10-17 08:51:15 +00:00
Kun Qin d64d1e195c MdeModulePkg: PeiMain: Introduce implementation of delayed dispatch
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4496

This change adds the implementation that fits the needs and description
of PI spec defined Delayed Dispatch PPI in Pei Core.

The PPI would allow minimal delay for registered callbacks. As well as
allowing other functions to wait for GUIDed delayed dispatch callbacks.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Debkumar De <debkumar.de@intel.com>
Cc: Catharine West <catharine.west@intel.com>

Co-authored-by: Mike Turner <mikeyt@pobox.com>
Co-authored-by: Sachin Ganesh <sachinganesh@ami.com>
Signed-off-by: Kun Qin <kuqin12@gmail.com>
2024-10-17 08:51:15 +00:00
Kun Qin b3f36e151d MdePkg: Update Delayed Dispatch PPI as per PI 1.8 A Spec
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4496

PI spec defined the `Register` function input argument `Delay` as output.
However, this parameter should be used to define the minmal time delay
the callback should fire. Thus it should be an input parameter.

This change fixed the argument type.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>

Co-authored-by: Mike Turner <mikeyt@pobox.com>
Co-authored-by: Sachin Ganesh <sachinganesh@ami.com>
Signed-off-by: Kun Qin <kuqin12@gmail.com>
2024-10-17 08:51:15 +00:00
Jason1 Lin e19cc32bce edksetup.sh: Fix the Issue of PYTHON_COMMAND Un-Configurable
- With the commit e6447d2a08 introduced,
  there do not have chance for caller to configure the PYTHON_COMMAND
  environment variable outside of this script.

- All the configured value would be assigned into "python3" forcedly,
  without checking the environment variable is set or not.

- This patch included the below changes,
  - Check the "PYTHON_COMMAND" is set or not before assigning
    the default value "python3" on it.
  - Rename the function naming into "SetupPythonCommand" to align
    its functionality.

Signed-off-by: Jason1 Lin <jason1.lin@intel.com>
2024-10-17 06:53:34 +00:00
Ashraf Ali S b7342074a6 UnitTestFrameworkPkg: VS2022 Support on UnitTest.
Currently EDK2 is supporting VS2022, with VS2022 UnitTestFrameworkPkg
build is failing, this patch is to add the VS2022 support for UnitTest

Signed-off-by: Ashraf Ali S <ashraf.ali.s@intel.com>
2024-10-16 19:03:09 +00:00
Oleg Ilyasov 1b19ccfdfa Add USB Association Descriptor definitions
- USB 3.0 spec, Section 9.6.4
- Add class specific descriptor types

Signed-off-by: Oleg Ilyasov <olegi@ami.com>
2024-10-16 17:42:26 +00:00
kuqin12 d44b82270b ArmPkg: CodeQL Fixes.
Makes changes to comply with alerts raised by CodeQL.

The issues here fall into the following category:

1. unsigned-comparison-zero

Signed-off-by: Raymond Diaz <raymonddiaz@microsoft.com>
2024-10-16 08:18:16 +00:00
Jiaxin Wu a232e0cd2f UefiCpuPkg/PiSmmCpuDxeSmm: Save and restore CR2 only if SmiProfile enable
A page fault (#PF) that triggers an update to the page table only occurs
if SmiProfile is enabled. Therefore, it is necessary to save and restore
the CR2 register if SmiProfile is configured to be enabled.

Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
2024-10-16 04:06:42 +00:00
INDIA\sachinganesh 92c1274467 MdePkg: Describe storage location of config tables as per PI 1.7 A spec
Added comments to describe the storage location of DXE Services Table,
HOB List Table and PEI Vector Handoff Table.

As defined in PI 1.7 A Errata specification.

Cc: Felix Polyudov <felixp@ami.com>
Cc: Dhanaraj V <vdhanaraj@ami.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
2024-10-16 00:27:51 +00:00
INDIA\sachinganesh caec6089cf MdePkg: Clarify EFI_MM_SX_DISPATCH_PROTOCOL.Register() as per PI 1.7 A spec
Clarified comments regarding the usage of RegisterContext parameter of
Register() API in EFI_MM_SX_DISPATCH_PROTOCOL.

As defined in the PI 1.7 A Errata specification.

Cc: Felix Polyudov <felixp@ami.com>
Cc: Dhanaraj V <vdhanaraj@ami.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
2024-10-16 00:27:51 +00:00
INDIA\sachinganesh c80f456ef4 MdePkg: Define PI Specification Version Macro
Defined PI specification version.
Used them to define revisions of PEI/DXE/MM system tables.

Cc: Felix Polyudov <felixp@ami.com>
Cc: Dhanaraj V <vdhanaraj@ami.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Sachin Ganesh <sachinganesh@ami.com>
2024-10-16 00:27:51 +00:00
Leandro Becker b3efbda166 NetworkPkg/HttpBootDxe: Report download error when resume attempts fail
When all resume attempts to continue an interrupted NBP file
download have failed, report the failure status to the caller.

Original implementation was returning success when number of
retries reaches the limit defined by PcdMaxHttpResumeRetries.

Signed-off-by: Leandro Gustavo Biss Becker <lbecker@positivo.com.br>
2024-10-15 22:26:37 +00:00
Abdul Lateef Attar 081cf576a2 DynamicTablesPkg: Update FADT fixed feature flags validation
Validate the FADT fixed feature flags for
non-hardware reduced model.

Cc: Sami Mujawar <Sami.Mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2024-10-15 07:34:44 +00:00
Nhi Pham 21767dcf4e RedfishPkg/RedfishCredentialDxe: Fix 'too many arguments' error
This fixes the error 'too many arguments to ClearRedfishServiceList'
when building with clang compiler.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
2024-10-14 10:09:54 -05:00
Jiaxin Wu fcd9570c8d UefiCpuPkg/PiSmmCpuDxeSmm: Consume SmmCpuPlatformHookBeforeMmiHandler func
This patch is for PiSmmCpuDxeSmm driver to add one round wait/release sync
for BSP and AP to perform the SMM CPU Platform Hook before executing MMI
Handler: SmmCpuPlatformHookBeforeMmiHandler (). With the function, SMM CPU
driver can perform the platform specific items after one round BSP and AP
sync (to make sure all APs in SMI) and before the MMI handlers.

After the change, steps #1 and #2 are additional requirements if the
MmCpuSyncModeTradition mode is selected.

Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
2024-10-12 08:56:05 +00:00
Jiaxin Wu e34460c8b2 OvmfPkg/Library: Impl SmmCpuPlatformHookBeforeMmiHandler func
This patch is to add SmmCpuPlatformHookBeforeMmiHandler func
for OVMF.

Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
2024-10-12 08:56:05 +00:00
Jiaxin Wu 7d4da670ea UefiCpuPkg: Add SmmCpuPlatformHookBeforeMmiHandler
This patch is to add SmmCpuPlatformHookBeforeMmiHandler interface
in SmmCpuPlatformHookLib.

The new API can be used to perform the platform specific items
before executing MMI Handler. For example, Intel can leverage
this API to clear the pending SMI bit after all CPUs finish the
sync and before the MMI handlers. If so, the the redundant
SMI can be avoided after CPU exit from current SMI.

Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
2024-10-12 08:56:05 +00:00
Jiaxin Wu 2351165f1b UefiCpuPkg/PiSmmCpuDxeSmm: Clarification for BSP & APs Sync Flow
This patch does not impact functionality. It aims to clarify the
synchronization flow between the BSP and APs to enhance code
readability and understanding:

Steps #6 and #11 are the basic synchronization requirements for all
cases.

Steps #1 is additional requirements if the MmCpuSyncModeTradition
mode is selected.

Steps #1, #2, #3, #4, #5, #7, #8, #9, and #10 are additional
requirements if the system needs to configure the MTRR.

Steps #9 and #10 are additional requirements if the system needs to
support the mSmmDebugAgentSupport.

Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
2024-10-12 08:56:05 +00:00
Rebecca Cran d2a41d1a7a Maintainers.txt: Update GitHub username for myself
Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
2024-10-11 09:17:01 +08:00
Zhiguang Liu 0bae161fed UefiCpuPkg/MpLib: Remove NotifyOnS3SmmInitDonePpi
Previously, the SMM S3 resume code required taking control of APs to
perform SMM rebase, which would overwrite the context set by MpLib.
As a result, MpLib needed to wake up APs using InitSipiSipi to restore
the context after SMM S3 resume.

With the recent change where SMM rebase occurs in the early PEI phase,
the SMM S3 resume code no longer modifies AP context. Therefore, the
forced use of InitSipiSipi after SMM S3 resume is no longer necessary.

Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
2024-10-10 06:00:56 +00:00
Zhiguang Liu 6f17bd5eaf UefiCpuPkg/S3: Skip CR3 modification in S3Resume for 64-bit PEI
Previously, when PEI was 32-bit and DXE was 64-bit, S3 resume code had
to set or change the CR3 register before executing 64-bit code.
However, with both PEI and DXE now may being 64-bit, this modification
is unnecessary as PEI already utilizes sufficiently large page tables.

Additionally, there is a bug in the current implementation where
the changed CR3 during S3 resume could map only below 4G MMIO, which
could lead to issues if end of PEI notify attempts to access above 4G.

Overall, skipping the CR3 modification in S3Resume when PEI is 64-bit
can fix the bug and also avoid unnecessary logic.

Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
2024-10-10 06:00:56 +00:00
Sean Rhodes da1c6dd62a UefiPayloadPkg: Add Secure Boot support
Introduce Secure Boot functionality within UefiPayloadPkg by adding
necessary modules and configurations. A new build flag,
`SECURE_BOOT_ENABLE`, is introduced to control the activation of
Secure Boot.

This patch also overrides values in SecurityPkg to enforce image
verification from all sources.

A new FV (`SECURITY_FV`) for security modules is added for components
and the firmware volume sizes to accommodate additional Secure Boot
components.

Cc: Guo Dong <guo.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: James Lu <james.lu@intel.com>
Cc: Gua Guo <gua.guo@intel.com>
Signed-off-by: Sean Rhodes <sean@starlabs.systems>
2024-10-09 19:14:11 +00:00
Nhi Pham 7bac0a940e BaseTools/SetupGit.py: Fix invalid choice 'edk2-test'
This fixes missing 'edk2-test' in the choices of the repo name option.

Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com>
2024-10-09 10:53:19 +00:00