Commit Graph

34630 Commits

Author SHA1 Message Date
Jiaxin Wu
8216419a02 UefiCpuPkg/PiSmmCpuDxeSmm: Refine debug log in SmmWaitForApArrival
Refine debug log in SmmWaitForApArrival, and print the disabled count
info.

Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
2025-07-18 13:59:30 +00:00
Jiaxin Wu
6fb7117e28 UefiCpuPkg/PiSmmCpuDxeSmm: Correct AllApArrivedWithException flag
Update AllApArrivedWithException if the 1st timeout sync is skipped
but all APs have arrived.

Example:
If IsCpuSyncAlwaysNeeded() returns false, LMCE is enabled and
triggered, and another SMI source combined with LMCE causes all APs
to enter SMI. Then 2nd timeout sync will be also skipped, but all APs
have arrived, so AllApArrivedWithException should be updated before
using.

Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
2025-07-18 13:59:30 +00:00
Ray Ni
562bce0feb IntelFsp2Pkg: Preserve GDTR and CS/DS/ES/FS/GS/SS
Bootloader does not expect FSP modifies GDTR and segment selectors, update
FSP entry/exit code to preserve these registers.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Ted Kuo <ted.kuo@intel.com>
Cc: Ashraf Ali S <ashraf.ali.s@intel.com>
2025-07-18 06:21:48 +00:00
Michael Kubacki
8be9a344d3 MdeModulePkg: Console cumulative codeql issues.
Running Codeql on MdeModulePkg/Universal/Console drivers results
in codeql errors stemming for the following checks.

- cpp/comparison-with-wider-type
- cpp/missing-null-test

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

Co-authored-by: Michael Kubacki <michael.kubacki@microsoft.com>
Co-authored-by: Taylor Beebe <tabeebe@microsoft.com>
Co-authored-by: pohanch <125842322+pohanch@users.noreply.github.com>
Co-authored-by: kenlautner <85201046+kenlautner@users.noreply.github.com>
Co-authored-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Co-authored-by: Sean Brogan <sean.brogan@microsoft.com>
Co-authored-by: Aaron <aaronpop@microsoft>
2025-07-17 17:45:48 +00:00
Gerd Hoffmann
7bbe0b2dec CryptoPkg/openssl: disable some features support
Reduce library size by turning off:
 * quic protocol support.
 * post-quantum chipers.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-17 14:45:20 +00:00
Gerd Hoffmann
94d6fcf465 CryptoPkg/openssl: turn off warning 4130 for microsoft compiler
Needed to build with openssl-3.5.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-17 14:45:20 +00:00
Gerd Hoffmann
c718ed29a4 CryptoPkg/CrtLib: explicitly define INT32* constants
Avoids openssl-3.5 trying to figure automatically with some macro
magic, which happens to not work with the microsoft compiler.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-17 14:45:20 +00:00
Gerd Hoffmann
2a36117d7a CryptoPkg/CrtLib: add strpbrk implementation
Needed by openssl-3.5.1.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-17 14:45:20 +00:00
Gerd Hoffmann
e9bac26203 CryptoPkg/openssl: add ossl_bio_print_labeled_buf stub
New function in openssl 3.5 in a file edk2 replaces with stubs.
Add a stub for the new function.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-17 14:45:20 +00:00
Gerd Hoffmann
8a1698229f CryptoPkg/openssl: add new generated files to uncrustify exception list
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-17 14:45:20 +00:00
Gerd Hoffmann
565323e29d CryptoPkg/openssl: update generated files
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-17 14:45:20 +00:00
Gerd Hoffmann
fdda38a96e CryptoPkg/openssl: update submodule to openssl-3.5.1 release
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-17 14:45:20 +00:00
Michael Kubacki
cb85c4deef MdeModulePkg: FvSimpleFileSystemDxe cumulative codeql issues.
Running Codeql on MdeModulePkg/Universal/FvSimpleFileSystemDxe drivers results
in codeql errors stemming from missing null tests.

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

Co-authored-by: Michael Kubacki <michael.kubacki@microsoft.com>
Co-authored-by: Taylor Beebe <tabeebe@microsoft.com>
Co-authored-by: pohanch <125842322+pohanch@users.noreply.github.com>
Co-authored-by: kenlautner <85201046+kenlautner@users.noreply.github.com>
Co-authored-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Co-authored-by: Sean Brogan <sean.brogan@microsoft.com>
Co-authored-by: Aaron <aaronpop@microsoft>
2025-07-17 15:36:06 +08:00
Ivan A. Melnikov
4cb3e8d467 OvmfPkg/LoongArchVirt: Add SATA support
SATA CD-ROMS are still conventionally used in many
virtual environments, so it's nice to support them
out of the box.

Tested with QEMU 9.2.3 with the following controller
and drive:

  qemu-system-loongarch64 -M virt [...]  \
    -device ahci,id=ahci0,multifunction=on,bus=pcie.0,addr=0x7 \
    -drive if=none,id=drive-sata2,media=cdrom,format=raw,aio=threads,file=/path/to/bootable.iso \
    -device ide-cd,bus=ahci0.2,drive=drive-sata2,id=sata2,bootindex=102

Signed-off-by: Ivan A. Melnikov <iv@altlinux.org>
2025-07-16 11:32:11 +00:00
Aaron Li
1f462def90 PrmPkg: Fix debug log format specifier for PhysicalAddress
The debug print incorrectly uses "%016x" to print a UINT64 PhysicalAddress.
This can cause truncation since "%x" expects UINT32.

Update the format specifier to "%016llx" to properly handle UINT64 values
and ensure correct output across all architectures.

Signed-off-by: Aaron Li <aaron.li@intel.com>
2025-07-16 07:40:17 +00:00
Ray Ni
83794b8e96 IntelFsp2Pkg/FspMultiPhaseLib: Remove EFIAPI for local function
FspMultiPhaseWorker() is a local function that's called from
FspMultiPhaseMemInitApiHandler()
and FspMultiPhaseSiInitApiHandlerV2().

Remove "EFIAPI" from its function header.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Ted Kuo <ted.kuo@intel.com>
Cc: Ashraf Ali S <ashraf.ali.s@intel.com>
2025-07-16 06:47:27 +00:00
Ray Ni
36b63e9fc8 IntelFsp2Pkg/FspCommonLib: Remove unused API SetFspCoreStackPointer()
Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Ted Kuo <ted.kuo@intel.com>
Cc: Ashraf Ali S <ashraf.ali.s@intel.com>
2025-07-16 06:47:27 +00:00
Gerd Hoffmann
29477c2045 OvmfPkg/AmdSvsmLib: add AmdSvsmQueryProtocol
AmdSvsmQueryProtocol() is a helper function for QUERY_PROTOCOL
calls of the core svsm protocol.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-16 00:09:22 +00:00
Gerd Hoffmann
a72e6fe7ab UefiCpuPkg/AmdSvsmLib: add AmdSvsmQueryProtocol
AmdSvsmQueryProtocol() is a helper function for QUERY_PROTOCOL
calls of the core svsm protocol.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2025-07-16 00:09:22 +00:00
Stanislaw Grams
bdca3681e9 Maintainers.txt: Update reviewer for OvmfPkg/Confidential Computing
Stanislaw Grams replaces Min Xu as the reviewer for patches to
OvmfPkg/Confidential Computing

Signed-off-by: Stanislaw Grams <stanislaw.grams@intel.com>
2025-07-15 16:08:16 +00:00
Tuan Phan
ac20e4398a OvmfPkg/RiscVVirt: Add PEI phase booting support
Introduce a switch to select between PEI and PEI less booting modes.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
003c888714 OvmfPkg/RiscVVirt: Add PlatformPeim module
Introduce PEIM module to support platform initialization during the
PEI phase.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
07552c31ad OvmfPkg/RiscVVirt: PrePiHobListPointerLib: Use scratch register directly
With firmware context APIs removed, store HobList pointer directly in the
scratch register for Peiless booting.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
977b68aa1e OvmfPkg/RiscVVirt: Add PlatformSecLib library
Create PlatformSecLib library to support both PEIless and PEI booting
modes.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
dbe17c79e7 UefiCpuPkg/SecCore: Add support for architectures beyond IA32 and X64
Encapsulate IA32 and X64 code under preprocessor directives to enable
module compatibility with other architectures.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
be053713c0 MdePkg: RISC-V: Add PeiServicesTablePointerLib
Based on PI 1.9, the PEI service pointer will be stored in the
scratch register.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
4d80dc68c6 MdePkg: RISC-V: Remove firmware context APIs
Eliminate the APIs using the scratch register as PI 1.9 specifies
it for the PEI service table pointer.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
2ff92cf2ae UefiCpuPkg/CpuDxeRiscV64: Retrieve booting info from SEC HOB data
The booting info is now stored in SEC HOB GUID data.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
dd36c3048f UefiCpuPkg: RISC-V: Add SEC HOB Data definition
Introduce RISC-V SEC HOB Data structure to pass boot information from
SEC phase to PEI/DXE phases.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
f53f943b59 OvmfPkg/RiscVVirt: Unlink BaseRiscVFpuLib
BaseRiscVFpuLib is deprecated.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
66189310e2 UefiCpuPkg: Remove BaseRiscVFpuLib
FPU initialization for RiscV is now handled in CpuLib,
rendering this library obsolete.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Tuan Phan
8f62819df3 MdePkg/BaseCpuLib: Add FPU initialization support for RISC-V
Enable RISC-V support for the InitializeFloatingPointUnits function.

Signed-off-by: Tuan Phan <tphan@ventanamicro.com>
2025-07-15 05:45:15 +00:00
Sarah Walker
b762965bda ArmPkg: TimerDxe: Add support for GICv5 PPIs
GICv5 uses a different ID scheme for interrupt numbers to previous GICs; the
top bits indicate the type of interrupt (PPI/SPI/LPI). Update TimerDxe to use
the new ID scheme for GICv5. As the timer PPIs are architected for GICv5 they
should be the same on all GICv5 platforms.

Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-07-15 02:10:39 +00:00
Ard Biesheuvel
b7fdcbbeb8 ArmPkg: ArmGicDxe: Add support for GICv5
Add initial driver support for GICv5. This initial driver supports Private
Peripheral Interrupts (PPIs) and Shared Peripheral Interrupts (SPIs).

Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
[ardb: Merge v5 support into GicV3Dxe]
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2025-07-15 02:10:39 +00:00
Sarah Walker
e1ac8b32a6 ArmPkg: ArmLib: Add functions to read AA64PFR2 and check GICv5 support
Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-07-15 02:10:39 +00:00
Sarah Walker
42b30dbc03 MdePkg: Include: Add defines for AA64PFR2 system register
The AA64PFR2 system register is required to detect GICv5 support.

Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-07-15 02:10:39 +00:00
Ard Biesheuvel
bfd90d47ab ArmPkg/ArmGicV3Dxe: Make v3 driver AArch64-only
Before extending the GicV3Dxe driver with support for GICv5, make the
driver AArch64-only to avoid the need for adding support to the 32-bit
build, which would be rather pointless.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2025-07-15 02:10:39 +00:00
Levi Yun
f85c718167 MdeModulePkg/Include: change type of buffer address in ArmFfaRxTxBufferInfo
Change type of buffer address type in ArmFfaRxTxBufferInfo
so that reduce the type casting.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2025-07-14 11:59:38 +00:00
Levi Yun
5a2713ec2b MdeModulePkg/Library: commonize some duplicate code in ArmFfaLib
Some of code for handling Rx/Tx buffer is duplicate.
This patch commonize some of duplication routine used in
Rx/Tx buffer related functions.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2025-07-14 11:59:38 +00:00
Levi Yun
a7e27682cf MdeModulePkg/Library: add ArmFfaSecLib
To use Arm-FFA intereface in PeilessSec, implments
ArmFfaSecLib used by PeilessSec.
For example, communicate with TPM service using CRB over ARM-FFA
(via Tpm2DeviceLibFfa), PeilessSec need to use Arm-FFA interface.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2025-07-14 11:59:38 +00:00
Levi Yun
bbd810221e MdeModulePkg: Make PcdFfaTxRxPageCount a PcdsFixedAtBuild PCD
The PcdFfaTxRxPageCount can never be changed dynamically
and is configured at build time to specify the size of
the Rx/Tx buffers.

Therefore, make PcdFfaTxRxPageCount a PcdsFixedAtBuild PCD.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2025-07-14 11:59:38 +00:00
Levi Yun
b336d9b87a MdeModulePkg/Library: fix memory leak Rx/Tx Buffer in ArmFfaPeiLib
The commit e15fe06603
("MdeModulePkg/Library: make ArmFfaPeiLib available early PEIM stage")
uses ArmFfaPeiLib in the early PEIM stage.

However, the Rx/Tx buffer allocated in the early PEIM stage uses
temporary memory. This results in a memory leak when the temporary
memory's heap is relocated to permanent memory.

For example, if the Rx/Tx buffer memory is allocated at 0x20006000
in temporary memory, and if offset between temporary memory and
permanent is 0x40000000, then:

 - Once permanent memory installed the temporary memory at 0x20006000
   is migrated to 0x60006000.
 - However, ArmFfaPeiLib allocates new Rx/Tx buffer without freeing
   the migrated Rx/Tx buffers, i.e. the buffers at 0x60006000.

This results in a memory leak as the migrated Rx/Tx buffer area is
lost.
To address this memory leak, use the MemoryAllocationHob's name, so
that the migrated memory area will be reused as Rx/Tx buffer.

This patch also includes rename ArmFfaRxTxStmm.c to
ArmFfaStandaloneMmRxTxMap.c to keep the file name convention in
ArmFfaLib with ArmFfa{Phase}{...}.c

Fixes: e15fe06603 ("MdeModulePkg/Library: ...")
Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
Continuous-integration-options: PatchCheck.ignore-multi-package
2025-07-14 11:59:38 +00:00
Bret Barkelew
460f2705b4 SecurityPkg: Add Additional TPM Logging at DEBUG_SECURITY
This commit adds additional dumping logic to Tpm2DeviceLibDTpm,
print at DEBUG_SECURITY to aid in TPM debugging.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
Co-authored-by: Bret Barkelew <brbarkel@microsoft.com>
2025-07-14 07:25:12 +00:00
Oliver Smith-Denny
d5b8630379 SecurityPkg: Move Noisy Logs to DEBUG_SECURITY
The TPM code is currently very noisy (e.g. in a sample platform,
4,000 of the 5,700 lines printed to the serial port at DEBUG_INFO
level were from the TPM code). For TPM debugging, this is very
critical information, but for most builds it simply spams the logs
and slows down the build.

This commit moves the event log and PCR dumping to log at
DEBUG_SECURITY level.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-07-14 07:25:12 +00:00
Oliver Smith-Denny
1f2adcbba5 SecurityPkg: Remove/Downgrade Noisy TCG Prints
The TCG code is very noisy when a TPM is connected. This
commit downgrades some prints to verbose and removes some
others that do not have value (such as function enter and
exit prints).

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-07-14 07:25:12 +00:00
Oliver Smith-Denny
dbf45a870b MdePkg: Add DEBUG_SECURITY Bit in PcdDebugPrintErrorLevel
Tcg2Dxe and its libraries are currently the noisiest modules in
edk2. For a sample platform printing at INFO level, Tcg2Dxe
printed 4,000 lines out of 5,700 total lines printed.

This commit defines a DEBUG_SECURITY bit to control the debug output
of Tcg2Dxe and other security related components. Most of the output is
not useful except for deep debugging of TPM transactions, so it is
appropriate to only print when the DEBUG_SECURITY bit is present.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2025-07-14 07:25:12 +00:00
Eduardo Cuevas Farfan
a1b509c1a4 Maintainers.txt: Update reviewer for StandaloneMmPkg and UefiCpuPkg
Add ecuevasf as reviewer for StandaloneMmPkg and UefiCpuPkg

Signed-off-by: Eduardo Cuevas Farfan <eduardo.cuevas.farfan@intel.com>
2025-07-10 10:50:31 +00:00
Nate DeSimone
c2a56930a6 CryptoPkg: Add support for IA32 builds using CLANGPDB
Implements the _aulldiv() intrinsic function necessary to compile CryptoPkg
using the CLANGPDB toolchain. The existing MASM assembly implementation of
this function has been converted to NASM to enable it to be used with both
the Visual Studio and Clang compilers.

Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
2025-07-10 03:10:23 +00:00
Alok Kulkarni
a00ad45ea4 MdeModulePkg: UsbBusDxe Reset USB port GetPortStatus returns device error.
During USB device enumeration, issuing a hot reset on a port is skipped if
there is a reset change status already detected on the port. This can
happen when enumerating devices after a host controller soft reset (which
drives a hot reset down the ports).

However, in certain cases an attached device may not be responsive even if
the reset change and connection status bits are set. For e.g., according
to xHCI spec section 4.19.5.1 the port reset change bits can be set when
a hot reset driven on the port transitions to a warm reset and completes
with errors. For such instances it is worthwhile to force a hot reset
during enumeration to try and recover unresponsive devices.

During enumeration check whether querying port status returns
EFI_DEVICE_ERROR and try a port reset if there is a device attached to
the port.

Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
2025-07-10 09:06:35 +08:00
Nate DeSimone
7c2e2d4f1a BaseTools/toolsetup.bat: Set IASL_PREFIX when using Mingw-w64 on Windows
If IASL_PREFIX is not already defined, then edksetup.bat should set it.
This unifies the behavior between Visual Studio and Mingw-w64.

Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
2025-07-10 00:45:13 +00:00