Commit graph

36434 commits

Author SHA1 Message Date
Kun Qin
93ee300675 ArmPkg: StandaloneMmCoreEntryPoint: Use ARM_FFA_ARGS for misc buffer
The MISC_MM_COMMUNICATE_BUFFER stored the FF-A direct message
registers in a DIRECT_MSG_ARGS structure. Populating and reading it
required manually re-indexing every register (EventSvcArgs->Arg4..Arg17
into DirectMsgArgs.Arg0..Arg13). This shifted the register positions and
left the buffer layout inconsistent with the raw FF-A argument register
file, making it error prone to correlate a slot with its architectural
register.

Signed-off-by: Kun Qin <kun.qin@microsoft.com>
2026-07-30 13:46:46 +00:00
Jean-Tiare Le Bigot
b3f19fb5ce CryptoPkg: Match OpenSSL's default security level
`TlsNew()` explicitly sets the default security level to 3. The current
default in OpenSSL is security level 2 which is inherited by Linux
distributions like Ubuntu 26.04. This is also the security level that
was announced in https://edk2.groups.io/g/devel/topic/115039926.

Signed-off-by: Jean-Tiare Le Bigot <jt@yadutaf.fr>
2026-07-30 05:30:47 +00:00
Michael Kubacki
3ff3b0e43f .pytool: Add MarkdownLintCheck plugin
Some checks failed
CodeQL / Analyze-4 (push) Has been cancelled
CodeQL / Analyze-5 (push) Has been cancelled
CodeQL / Analyze-6 (push) Has been cancelled
CodeQL / Analyze-7 (push) Has been cancelled
CodeQL / Analyze-8 (push) Has been cancelled
CodeQL / Analyze-9 (push) Has been cancelled
CodeQL / Analyze-10 (push) Has been cancelled
CodeQL / Analyze-11 (push) Has been cancelled
CodeQL / Analyze-12 (push) Has been cancelled
CodeQL / Analyze-13 (push) Has been cancelled
CodeQL / Analyze-14 (push) Has been cancelled
CodeQL / Analyze-15 (push) Has been cancelled
CodeQL / Analyze-16 (push) Has been cancelled
CodeQL / Analyze-17 (push) Has been cancelled
CodeQL / Analyze-18 (push) Has been cancelled
UPL Build / Build UPL VS2026 (push) Has been cancelled
UPL Build / Build UPL VS2026-1 (push) Has been cancelled
UPL Build / Build UPL GCC (push) Has been cancelled
UPL Build / Build UPL GCC-1 (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
CodeQL / Analyze-1 (push) Has been cancelled
CodeQL / Analyze-2 (push) Has been cancelled
CodeQL / Analyze-3 (push) Has been cancelled
This plugin runs markdownlint against all markdown files in a given
package to report linter errors.

See the following readme for me details:

  .pytool/Plugin/MarkdownLintCheck/Readme.md

Co-authored-by: Sean Brogan <sean.brogan@microsoft.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-07-29 12:32:09 +00:00
Michael Kubacki
df9111c2d3 Global: Set MarkdownLintCheck plugin to AuditOnly
In preparation for the MarkdownLintCheck plugin being added to the
repo, this change defaults the plugin to `AuditOnly` mode in each
package. This allows package maintainers to enable the plugin as they
see fit.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-07-29 12:32:09 +00:00
Michael Kubacki
ac0777f893 BREAKING-CHANGES.md: Sort entries and add order guidance
1. To provide greater clarity and consistency, the file instructions
   are updated to indicate that entries should be added after existing
   entries within a given section so that they are in chronological
   merge order within the section.
2. Existing entries are sorted accordingly.
3. Existing entries are updated to have consistent style and some
   section header levels are adjusted to properly reflect the level
   of the section.

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-07-28 19:33:06 +00:00
Aaron Pop
eeaac552f8 OvmfPkg/FdtPciHostBridgeLib: mark PCI host MMIO mappings as non-executable
Add EFI_MEMORY_XP to all MapMmioMemory() calls in ProcessPciHost() for:
- ECAM space
- Translated I/O window
- 32-bit MMIO window
- 64-bit MMIO window

These regions are data/MMIO only and should not be executable. Marking them
with EFI_MEMORY_XP improves memory protection hardening without changing
intended runtime behavior.

Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
2026-07-28 10:51:23 +03:00
Luigi Leonardi
82cfea329c ArmVirtPkg: add QemuFwCfg null library instances to common DSC
PlatformPeiLib consumes QemuFwCfgSimpleParserLib, but ArmVirtXen.dsc
provided no resolution for it or its dependency QemuFwCfgLib, causing:

  error 4000: Instance of library class [QemuFwCfgSimpleParserLib]
  is not found for module [ArmVirtPrePiUniCoreRelocatable.inf],
  consumed by PlatformPeiLib.inf

Wire up QemuFwCfgLibNull and QemuFwCfgSimpleParserLib in the common
ArmVirt.dsc.inc so all platforms without fw_cfg fail gracefully.
ArmVirtCloudHv.dsc already carried the same null pair; both per-DSC
copies are removed now that the common default covers them.
ArmVirtQemu and ArmVirtQemuKernel continue to override with their
real MMIO implementations.

Fixes: f4bbef1dd7 ("ArmVirtPkg: introduce compile and runtime control of serial debug log level")
Reported-by: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Luigi Leonardi <leonardi@redhat.com>
2026-07-27 22:28:11 +03:00
Oliver Smith-Denny
e11670b379 OvmfPkg: Update VS2022 CI to VS2026
This follows the rest of edk2 to update
VS2022 CI to VS2026.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
e17aaec44b EmulatorPkg: Update CI to VS2026
This updates the VS2022 EmulatorPkg CI to VS2026.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
db183242ac .github: Move GitHub Actions to VS2026
This updates all GitHub Actions using VS2022 to
VS2026.

Note, windows-2025 is the VM image that contains
VS2026. 2025 refers to the Windows Server version,
not the VS version. GitHub runners have updated the
windows-2025 VM version to include VS2026, so no
additional migration is required.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
d1b6a9c968 .azurepipelines: Move to VS2026
This upgrades the Azure Pipelines CI to use
VS2026 instead of VS2022.

The Windows VM image is updated to windows-2025-vs2026 which
has been updated to use VS2026. Note, 2025 references
the Windows Server release, not the VS version. Azure pipelines
has not migrated its windows-2025 VM image to use VS2026 yet,
it will do so after that feature is GA'd, at which point edk2
will have time to update to that VM image.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
0f8d430e52 .pytool: Update Readme for VS2026
edk2 is moving to VS2026 for the MSVC toolchain.
Updated the .pytool Readme.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
df07555061 EmulatorPkg: Update DSC/Readme for VS2026
edk2 is moving to VS2026 for the MSVC toolchain.
Update the building instructions and DSC conditionals.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
b5c33ab37f UnitTestFrameworkPkg: Update ReadMe for VS2026
edk2 is moving to VS2026 for the MSVC toolchain,
update the ReadMe accordingly.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
80c428c1fe PrmPkg: Update Readmes for VS2026
edk2 is moving to VS2026 for the MSVC toolchain.
Update examples accordingly.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
69cf33dd9d BaseTools: Default Windows Build to VS2026
edk2 is moving to VS2026 for the MSVC toolchain,
as such, upgrade the Windows BaseTools build default
from VS2022 -> VS2026.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
Oliver Smith-Denny
a967067325 pip-requirements.txt: Upgrade Pytool Lib for VS2026 Support
This pulls in the latest edk2-pytool-library which includes
support for locating VS2026.

Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
2026-07-27 19:09:16 +00:00
rdiaz
479a79c57f MdePkg,SecurityPkg: Fix TPM2 ACPI Table
Updated the ACPI code to fix an issue where the template was
outdated and the revision was reporting V5 but the template was still
using the V4 version of the Start Method specific parameters.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Raymond Diaz <raymonddiaz@microsoft.com>
2026-07-25 01:32:22 +00:00
VarshitPandya
984b2fb3bd DynamicTablesPkg: Use ArmSmcccSocIdLib for SoC ID
Update SmbiosSmcLib to use ArmSmcccSocIdLib for retrieving the JEP106
identification code and SoC revision.

Remove the duplicated SMCCC feature detection and SoC ID calls while
retaining the SMBIOS-specific formatting of the Type 4 Processor ID.

Signed-off-by: Varshit Pandya <Varshit.Pandya@arm.com>
2026-07-24 21:55:19 +00:00
VarshitPandya
5c6e9d475f ArmPkg: Add Arm SMCCC SoC ID library
Add ArmSmcccSocIdLib to provide a shared interface for checking support
for the SMCCC Architecture SoC ID service and retrieving the JEP106
identification code and SoC revision.

Move the existing SMCCC SoC ID handling out of ProcessorSubClassDxe and
update the driver to use the new library. Continue to use the MIDR value
for the SMBIOS Processor ID when the SMCCC SoC ID service is unavailable.

This allows other SMBIOS implementations to reuse the SMCCC handling
without duplicating it or depending on the legacy ProcessorSubClassDxe
driver.

Signed-off-by: Varshit Pandya <Varshit.Pandya@arm.com>
2026-07-24 21:55:19 +00:00
Aaron Pop
71c401f2e9 DynamicTablesPkg: Fix markdownlint errors
Fixing all markdown lint errors found by running markdownlint-cli.

Verified that rendering still shows valid information.

Signed-off-by: Aaron Pop <aaronpop@microsoft.com>
2026-07-24 19:37:20 +00:00
Michael Kubacki
58e8828bb3 .pytool: Include the British English dictionary
Prevent British English words from being flagged as spelling errors.

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-07-24 18:21:31 +00:00
Qihang Gao
8d2bbdfb14 StandaloneMmPkg/Core: Fix memory leak in MmiHandlerRegister
In MmiHandlerRegister(), the MmiHandler structure is currently
allocated before looking up the target MmiEntry. If the lookup
fails, the function returns an error but the allocated MmiHandler
is never freed, causing a memory leak.

This patch moves the allocation of MmiHandler and its initialization
to after the MmiEntry lookup and validation. This ensures that memory
is only allocated when the operation can succeed, eliminating the need
for a FreePool() on the error path and simplifying the error handling
logic.

Signed-off-by: Qihang Gao <gaoqihang@loongson.cn>
Suggested-by: Ray Ni <ray.ni@intel.com>
2026-07-24 11:17:34 +00:00
Girish Mahadevan
f246d215ea DynamicTablesPkg: Smbios System Enclosure (Type 3)
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
2026-07-24 07:06:45 +00:00
Girish Mahadevan
1d8239c4fc DynamicTablesPkg: Add System Enclosure CM object and parser
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
2026-07-24 07:06:45 +00:00
Chris Fernald
27ac8fac0b BaseTools: Add support for preserving build ID
Adds an optional flag that copies the GNU build-id note from the input
ELF file into the output PE/COFF firmware image as a dedicated ".bldid"
section. The build ID is emitted by the linker as a unique fingerprint
of the binary and allows custom post-build and debugging tools to
reliably match a firmware image against its corresponding unstripped
ELF and debug symbols, without relying on file names, timestamps, or
build paths.

This notable opts to use a non-standard section name ".bldid" to store
the build ID. This approach was chosen to keep genfw and the parsers simple
since the full "build-id" name would require redirecting the section name.
While this breaks from standard conventions, this is not impactful since
GenFW is already creating a non-standard artifact for the PE image with
the associated ELF symbol file.

Signed-off-by: Chris Fernald <chfernal@microsoft.com>
2026-07-22 18:06:03 +00:00
VarshitPandya
b551e8bb32 DynamicTablesPkg: Smbios Additional Information (Type 40)
Add a DynamicTables SMBIOS generator for the Additional Information
(Type 40) structure.

SMBIOS Type 40 provides additional information for fields in other
SMBIOS structures. Each Type 40 entry references an existing SMBIOS
record by handle and offset, provides an optional entry string, and
carries a supplemental field value.

The generator consumes one or more top-level CM objects, each referencing
a list of Additional Information entries. Each entry provides:
  - the CM object token of the referenced SMBIOS structure,
  - the referenced table generator ID,
  - the offset of the referenced field,
  - an optional entry string,
  - a token to a typed Additional Information Value object.

Example platform CM object layout:

  CM_ARCH_COMMON_ADDITIONAL_INFORMATION AdditionalInformation[] = {
    {
      REFERENCE_TOKEN (AdditionalInformation[0]),
      REFERENCE_TOKEN (AdditionalInformationEntry[0])
    }
  };

  CM_ARCH_COMMON_ADDITIONAL_INFORMATION_ENTRY
    AdditionalInformationEntry[] = {
      {
        REFERENCE_TOKEN (MemoryDeviceInfo[0]),
        CREATE_STD_SMBIOS_TABLE_GEN_ID (EStdSmbiosTableIdType17),
        OFFSET_OF (SMBIOS_TABLE_TYPE17, MemoryType),
        "DIMM0 memory type",
        REFERENCE_TOKEN (AdditionalInformationValue[0])
      }
    };

  CM_ARCH_COMMON_ADDITIONAL_INFORMATION_VALUE
    AdditionalInformationValue[] = {
      {
        sizeof (UINT8),
        {
          MemoryTypeDram
        }
      }
    };

The generator resolves referenced SMBIOS handles using CM object tokens
and table generator IDs. It validates the typed value objects, individual
entry lengths, and aggregate formatted record size. The maximum accepted
value length is controlled by PcdMaxAdditionalInformationValue.

Build the variable-length Type 40 formatted area and append the entry
strings to the SMBIOS string area.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-22 14:40:20 +00:00
VarshitPandya
2bdb08ab00 DynamicTablesPkg: Add Additional Information CM objects
Add the Configuration Manager objects required to describe SMBIOS
Additional Information (Type 40) structures.

The top-level object references a list of Additional Information entries.
Each entry identifies a field in an existing SMBIOS structure and
references a typed value object containing the additional data.

Define the maximum value buffer size from the SMBIOS Type 40 formatted
length limit and add parsers for the new CM objects.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-22 14:40:20 +00:00
Luigi Leonardi
35345c76a9 OvmfPkg/IntelTdx: Add memory debug logging support for TDX guests
OVMF already supports MemDebugLogLib for capturing firmware debug
output in a runtime memory buffer. Align the TDX peiless boot path
with OVMF by integrating the same library, so that TDX guests can
use memory-based debug logging.

In PeilessStartupLib, allocate a runtime buffer for the debug log
during PeilessStartup() and copy any early SEC-phase logs from
the pre-allocated FDF region into it.

Register the early debug log memory region in the TDX metadata as
TEMP_MEM so the TDX module accepts it during guest initialization.

Move PlatformDxe/Platform.inf from NCCFV to DXEFV because it
exposes the memory debug log HOB to the guest.

Signed-off-by: Luigi Leonardi <leonardi@redhat.com>
2026-07-22 09:00:42 +00:00
Luigi Leonardi
e59458b658 OvmfPkg/MemDebugLogLib: Add MemDebugLogInit/Copy stubs to Null instance
The Null instance of MemDebugLogLib only provides MemDebugLogWrite(),
MemDebugLogPages(), and MemDebugLogEnabled(). Any module that
references MemDebugLogInit() or MemDebugLogCopy() cannot link against
the Null instance, forcing the feature to be gated at the build-system
level rather than at runtime.

Add no-op stubs for MemDebugLogInit() and MemDebugLogCopy().

This will be used by the following commit to add memory debug log
support in TDX.

Signed-off-by: Luigi Leonardi <leonardi@redhat.com>
2026-07-22 09:00:42 +00:00
Jared Pan
4d5f8e68a1 MdeModulePkg/UsbBusDxe: BOS Descriptor Check for SS Devices
Some SuperSpeed-capable devices may fall back to High-Speed
mode and cause subsequent commands to fail.

[Suggested Solution]
Check the BOS descriptor to verify SuperSpeed support and
trigger a port reset if needed to re-enumerate the device
properly.

Signed-off-by: Marlboro Chuang <marlboro.chuang@dell.com>
Signed-off-by: Jared Pan <jared.pan@dell.com>
2026-07-22 07:25:57 +00:00
Jared Pan
ea275a48fa MdePkg/Usb: Add BOS Descriptor to support SuperSpeed Devices
[Suggested Solution]
Add the BOS descriptor structure and definition.

Signed-off-by: Marlboro Chuang <marlboro.chuang@dell.com>
Signed-off-by: Jared Pan <jared.pan@dell.com>
2026-07-22 07:25:57 +00:00
VarshitPandya
bcd168735f DynamicTablesPkg: Move common size definitions
Move SMBIOS_MAX_STRING_SIZE and CFMWS_MAX_INTERLEAVE_WAYS to the
common definitions near the top of ArchCommonNameSpaceObjects.h.

Document that SMBIOS_MAX_STRING_SIZE is an implementation-defined
Configuration Manager storage limit, including the terminating NULL,
rather than an SMBIOS specification limit. Also distinguish it from
the legacy SMBIOS_STRING_MAX_LENGTH definition used for SMBIOS 2.6
MIF compatibility.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-21 15:18:26 +00:00
Sami Mujawar
74caea2956 ArmVirtPkg: Link VirtioMmioProbeLib to VirtioFdtDxe
Link VirtioMmioProbeLib to VirtioFdtDxe so that the Virtio MMIO
probe constructor maps the virtio-mmio ranges before the transport
driver accesses the device MMIO regions.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
422cc775a9 OvmfPkg: Introduce a Virtio MMIO probe lib
Introduce a Virtio MMIO probe library that discovers virtio-mmio
nodes from the FDT and maps their MMIO ranges before the virtio
transport driver creates virtio devices and accesses the device
MMIO regions.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
2f91cf9045 ArmVirtPkg: Refactor memory map configuration for Kvmtool Guest VM
Refactor the memory mapping configuration for Kvmtool Guest VM to
only setup the memory map for the System Memory, FV and the Serial
Port.

The memory mappings for he remaining devices are expected to be
configured by the respective drivers, this could be done as part
of the DXE drivers itself or using a Probe Library that adds the
device memory regions to the memory map.

The only special cases that remain are the System Memory, FV and
the Serial Port for which the memory mappings are created by the
KvmtoolVirtMemInfoLib. The memory mapping for the Serial port
is added as it is utilised for logging before the DXE driver
is loaded.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
2adf8dc56d ArmVirtPkg: Add early FDT 16550 serial port probe library
Fdt16550SerialPortHookLib does not provide a constructor and
expects SerialPortLib to call PlatformHookSerialPortInitialize().

Add an early FDT 16550 serial port probe library that invokes the
platform serial hook from its constructor. This allows the FDT to be
parsed early, the 16550 serial port base address to be extracted, and
the serial port PCD to be populated. It is needed during early boot so
the serial port memory map can be set up using the populated serial
port PCD.

The probe library wraps the hook call in its constructor instead of
reusing PlatformHookSerialPortInitialize() directly. This avoids
duplicate global definitions in modules that already link against the
PlatformHookLib instance.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
da1ccea67c OvmfPkg/FdtPciHostBridgeLib: Map PCI MMIO windows in GCD
Map the PCI MMIO32 and MMIO64 windows into the GCD memory
map after parsing the DT ranges property.

This makes the PCI memory apertures available as MMIO
regions.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
d46e38c5ea OvmfPkg/FdtPciHostBridgeLib: Use MapMmioLib for MMIO mapping
Replace the local GCD MMIO mapping helper with MapMmioMemory() when
mapping the PCI ECAM region and the translated I/O MMIO window.

This keeps the FDT PCI host bridge code aligned with the common MMIO
mapping helper and avoids duplicating AddMemorySpace() and
SetMemorySpaceAttributes() handling.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
9dcf9d317a ArmVirtPkg/KvmtoolRtcFdtClientLib: Use MapMmioLib for MMIO mapping
Replace the local RTC MMIO mapping sequence with MapMmioMemory(), while
keeping the explicit GCD allocation so the RTC page remains owned by the
driver image handle.

This reuses the common MMIO mapping path for GCD attributes.

Also update the incorrect error code documentation to reflect that
EFI_NOT_FOUND can be returned if the GCD space is not found and
drop the depex on gEfiCpuArchProtocolGuid as this is now done
by MapMmioLib which is where the Cpu Arch protocol is utilised.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
28526dbba3 ArmVirtPkg: Map GIC MMIO ranges before configuring GIC
Discover the GIC register ranges from the device tree and map them into
the GCD memory map before ArmGicDxe configures the interrupt controller.

Map the distributor and redistributor ranges for GICv3, and the
distributor and CPU interface ranges for GICv2, using MapMmioLib.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
b2b548c057 ArmVirtPkg: Include MapMmioLib in ArmVirt.dsc.inc
Add the MapMmioLib instance to the ArmVirt DXE_DRIVER library class
list so DXE drivers can map MMIO regions through the common helper.

Also add the runtime-driver library class mapping in ArmVirt.dsc.inc
so that runtime modules like KvmtoolRtcFdtClientLib can use
MapMmioLib.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
838240263a OvmfPkg/MapMmioLib: Support runtime drivers
Allow MapMmioLib to be consumed by DXE_RUNTIME_DRIVER modules.

MapMmioMemory() depends on DXE services, so it cannot map new
ranges after ExitBootServices(). Return EFI_ACCESS_DENIED when
called at runtime.

This allows runtime drivers such as
ArmVirtPkg/Library/KvmtoolRtcFdtClientLib to use MapMmioLib for
boot-time MMIO setup.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
760bb2d2fd OvmfPkg/MapMmioLib: Introduce a library for mapping MMIO regions
Introduce MapMmioLib to add MMIO regions to the GCD memory map.

MapMmioMemory() normalizes the requested range to page boundaries, adds
missing MMIO descriptors, and updates attributes for new and existing MMIO
descriptors. Existing descriptors of any other type are reported as
conflicts.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Sami Mujawar
084ce2b04b ArmVirtPkg: Clear TPIDR_EL0 before early HOB lookups
TPIDR_EL0 is used to hold the PrePi HOB list pointer, but its reset
value is unknown. Some early boot paths can call GetHobList() before
PrePiMain() creates and installs the HOB list.

Clear TPIDR_EL0 at the SEC entry point so those early lookups see NULL
rather than an invalid pointer.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
2026-07-21 10:25:17 +00:00
Michael G.A. Holland
2b842a2081 CryptoPkg/BaseCryptLib: Add SLH-DSA Support
Created SLH-DSA API functions to configure public and private keys for
SLH-DSA algorithm.  This will allow users to sign and verify with
SLH-DSA.  Unit tests were added to confirm operation of the API.

Signed-off-by: Michael G.A. Holland <michael.holland@intel.com>
2026-07-21 09:17:50 +00:00
DC-Damien
6a9c048ba5 MdeModulePkg/UsbBusPei: Use dynamic buffer for USB configuration data
USB devices whose configuration descriptor TotalLength exceeds 1024
bytes (e.g. IR cameras with large descriptor tables) previously hit
an EFI_DEVICE_ERROR hard-limit and failed to enumerate in PEI.

Replace the fixed array with a UINT8 * pointer and dynamically
allocate the exact amount of memory required via
PeiServicesAllocatePool() after the TotalLength is learned from the
initial 4-byte descriptor probe.

Signed-off-by: Damien Chen <damien.chen@dell.com>
2026-07-21 03:50:20 +00:00
Michael Kubacki
0adb357ab7 BREAKING-CHANGES.md: Add changes prior to process during 202608 dev period
This file was added as part of the new TianoCore EDK II breaking
changes process defined in the following RFC:

https://github.com/tianocore/tianocore-wiki.github.io/blob/main/rfc/text/0001-rfc-process.md

In order to make the file accurate for the upcoming edk2-stable202605
stable tag, this commit adds all breaking changes that have been
merged into the master branch since the last stable tag
(edk2-stable202605).

Because these changes did not follow the full process, they do not
have some required information like tracking issues.

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-07-21 03:30:46 +00:00
Jared Pan
a933771361 UefiPayloadPkg/DxeHobLib: Add lazy initialization for gHobList
This change adds dynamic initialization of gHobList in GetHobList() to handle cases where library constructors are executed before DxeHobListLibConstructor.

Issue:
On ARM platforms using ArmMmuBaseLib, the ArmMmuBaseLibConstructor calls GetFirstGuidHob() before xeHobListLibConstructor has initialized gHobList, causing an ASSERT.

Root Cause:
ArmMmuBaseLib's constructor uses HobLib functions, but UefiPayloadPkg's DxeHobLib assumes gHobList is already initialized by DxeHobListLib's constructor.

Solution:
Add the same lazy initialization pattern already used in MdePkg/Library/DxeHobLib, which dynamically retrieves the HOB list from the System Configuration Table if gHobList is NULL.

This change:
- Aligns behavior with MdePkg/Library/DxeHobLib
- Has no impact on existing functionality
- Improves robustness for ARM platforms

Signed-off-by: Jared Pan <jared.pan@dell.com>
2026-07-21 02:14:02 +00:00
Sunil V L
f539e44fe4 DynamicTablesPkg/RiscV: Fix unused variables warnings
Either use the variables or get rid of them.

Signed-off-by: Sunil V L <sunilvl@oss.qualcomm.com>
2026-07-21 00:18:25 +00:00