Commit graph

230 commits

Author SHA1 Message Date
Pierre Gondois
d2936e9efa DynamicTablesPkg: Add StaToken to ProcHierarch CmObj
Add a new StaToken field to CM_ARCH_COMMON_PROC_HIERARCHY_INFO
CmObj, allowing to describe the ASL "_STA" value the processor
or processor container should return.

CM_X64_LOCAL_APIC_X2APIC_INFO.StaToken already allows to reference
a StaToken from a X2APIC CmObj. If ProcHierarchy objects are used,
the SSDT CPU topology table will be generated using the X2APIC
objects, so the new field should not collide with the new one.
Add a note to CM_X64_LOCAL_APIC_X2APIC_INFO.StaToken
to handle this case.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2026-07-31 17:24:16 +00:00
Tuan Phan
4d92f22a5c DynamicTablesPkg/AmlLib: Add AmlCodeGenMethodRetBuffer API
Add support for generating AML methods that return a buffer through the
new AmlCodeGenMethodRetBuffer() API.

Signed-off-by: Tuan Phan <tuan.phan@oss.qualcomm.com>
2026-07-31 12:56:11 +00:00
Tuan Phan
95a7323e86 DynamicTablesPkg/AmiLib: Make AmlCodeGenMethod public
There is currently no API available for generating AML methods without
a return value. This change exports the AmlCodeGenMethod API so it can
be used to create non-returning methods when required.

Signed-off-by: Tuan Phan <tuan.phan@oss.qualcomm.com>
2026-07-31 12:56:11 +00:00
Girish Mahadevan
7a3943da83 DynamicTablesPkg: Add Baseboard CM object and parser
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
2026-07-31 04:34:25 +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
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
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
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
Girish Mahadevan
7ac27b187e DynamicTablesPkg: Add System Information CM object and parser
Add EArchCommonObjSystemInfo to ArchCommonNameSpaceObjects.h and a
corresponding parser entry in ConfigurationManagerObjectParser.c.

Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
2026-07-17 11:12:25 +00:00
Dongyan Qian
9e83101fdf DynamicTablesPkg/Smbios: Use EFIAPI for extended callbacks
The SMBIOS_TABLE_GENERATOR_BUILD_TABLEEX and
SMBIOS_TABLE_GENERATOR_FREE_TABLEEX callback types do not specify EFIAPI.
The Type 37 implementations specify it, while the other extended callback
implementations follow the omission in the shared types.

For X64 GCC builds, BaseTools/Conf/tools_def.template adds
-DEFIAPI=__attribute__((ms_abi)). Therefore, callbacks marked with EFIAPI
use the Microsoft x64 ABI, while unannotated callback types use the
compiler default ABI. If the two sides differ, the caller and callee use
different argument registers, and GCC rejects the function pointer
assignment.

This mismatch remained hidden while the standalone Type 37 generator was
built only for AARCH64. Moving the SMBIOS generators to the common
component section adds X64 build coverage and exposes it.

Add EFIAPI to the extended callback types and all matching implementations.
This follows the ACPI generator callback convention and provides the ABI
prerequisite for expanding the SMBIOS standalone build coverage.

Signed-off-by: Dongyan Qian <qiandongyan@loongson.cn>
2026-07-16 07:10:30 +00:00
Pierre Gondois
dce4c57471 DynamicTablesPkg: Add AmlUpdateRdDWord() and AmlUpdateRdWord()
Add the following functions to the AmlResourceDataApi:
- AmlUpdateRdDWord()
- AmlUpdateRdWord()

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2026-07-10 23:45:20 +00:00
Yeoreum Yun
d7d5ddef07 DynamicTablesPkg: add SMBIOS type 44 for risc-v
Add Smbios Type 44 generator for the risc-v processor specific block
support.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-09 14:13:22 +00:00
Yeoreum Yun
be3aeb7c33 DynamicTablesPkg: add SMBIOS type 44 for x86(x64)
Add Smbios Type 44 generator for the x86(x64) processor specific block
support.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-09 14:13:22 +00:00
Yeoreum Yun
455b806260 DynamicTablesPkg: add SMBIOS type 44 generator
Add Smbios Type 44 generator with the arm processor specific block
support.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-09 14:13:22 +00:00
Yeoreum Yun
caac96b38c DynamicTablesPkg: add arm data structure for SMBIOS type 44 record
Add SMBIOS type 44 relevant information for arm to generate
SMBIOS type 44 record.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-09 14:13:22 +00:00
Yeoreum Yun
8a501b5d36 DynamicTablesPkg: add arch common data structure for SMBIOS type 44 record
Add SMBIOS type 44 relevant information for common to
generate SMBIOS type 44 record.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-09 14:13:22 +00:00
VarshitPandya
d8ec67acb7 DynamicTablesPkg: Smbios Memory Channel (Type 37)
Add support for generating SMBIOS Type 37 Memory Channel structures from
Configuration Manager data.

Introduce the Memory Channel CM object and the associated Memory Channel
Device CM object. The channel object describes the Type 37 fixed fields,
including channel type, maximum channel load, memory device count, and the
token for the device-list object. The device-list object describes each
memory device attached to the channel using a device load and a Type 17
Memory Device CM token.

Add parser entries for both CM objects and register the Type 37 generator in
the DynamicTablesPkg DSC so it is available through the SMBIOS table factory.

The Type 37 generator builds one SMBIOS record per Memory Channel CM object.
For each channel, it retrieves the referenced Memory Channel Device list,
validates the channel type, maximum channel load, device count, device load,
and device tokens, resolves each referenced Type 17 CM token to an SMBIOS
handle, and emits the variable-length MemoryDevice array in the Type 37
record.

This allows platforms to describe memory channels and link them to generated
Type 17 Memory Device records through CM tokens instead of hard-coded SMBIOS
handles.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-07 15:31:02 +00:00
Oleksandr Tymoshenko
9782df45fe DynamicTablesPkg: Add HMAT generator
- Generate HMAT table from ConfigurationManager objects.

Co-authored-by: Ryan Heise <heiserya@google.com>
Co-authored-by: Sophia Wang <yodagump@google.com>
Signed-off-by: Oleksandr Tymoshenko <ovt@google.com>
2026-07-06 07:39:54 +00:00
Oleksandr Tymoshenko
e6b64e84e5 DynamicTablesPkg: Fix memory leak in MetaDataObjLib library
Clean up all metadata entries when freeing a metadata handle in
MetadataFreeHandle.

Signed-off-by: Oleksandr Tymoshenko <ovt@google.com>
2026-07-06 07:39:54 +00:00
VarshitPandya
e54671e9ef DynamicTablesPkg: Smbios Memory Device Mapped Address (Type 20)
Add an SMBIOS Type 20 generator for Memory Device Mapped Address
structures.

The generator builds one Type 20 table per Memory Device Mapped Address
CM object, validates the address range, encodes extended addresses when
the 32-bit address fields cannot represent the range, and maps optional
Type 17 and Type 19 CM object references to SMBIOS handles. If either
reference token is CM_NULL_TOKEN, the corresponding SMBIOS handle is set
to SMBIOS_HANDLE_INVALID.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-03 10:54:53 +00:00
VarshitPandya
019a537496 DynamicTablesPkg: Add SMBIOS System Reset (Type 23) generator
Add a Configuration Manager object and parser for SMBIOS Type 23
System Reset information.

Add a Type 23 SMBIOS generator that creates the System Reset structure
from the System Reset CM object. The generator expects a single CM
object, fills the system reset capabilities and watchdog reset fields,
and registers the generated table with the SMBIOS table factory.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-02 09:10:11 +00:00
VarshitPandya
dc23931fac DynamicTablesPkg: Add SMBIOS Electrical Current Probe (Type 29) generator
Add a Configuration Manager object and parser for SMBIOS Type 29
Electrical Current Probe information.

Add a Type 29 SMBIOS generator that creates one Electrical Current Probe
structure for each Electrical Current Probe CM object. The generator
validates the probe location and status fields, publishes the optional
description string, and registers the generated table with the SMBIOS
table factory.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-02 09:10:11 +00:00
VarshitPandya
2c82d4ada9 DynamicTablesPkg: Add SMBIOS Voltage Probe (Type 26) generator
Add a Configuration Manager object and parser for SMBIOS Type 26
Voltage Probe information.

Add a Type 26 SMBIOS generator that creates one Voltage Probe
structure for each Voltage Probe CM object. The generator validates
the probe location and status fields, publishes the optional
description string, and registers the generated table with the
SMBIOS table factory.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-07-02 09:10:11 +00:00
VarshitPandya
5628eaaf38 DynamicTablesPkg: Add SMBIOS Temperature Probe (Type 28) generator
Introduce a CM_ARCH_COMMON_TEMPERATURE_PROBE_INFO object to describe
temperature probes provided by the platform. The generator creates one
SMBIOS Type 28 record for each temperature probe object and populates
the description, location/status, probe limits, resolution, tolerance,
accuracy, OEM-defined data, and nominal value.

Add the CM object parser entry and wire the generator into the
DynamicTablesPkg build.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-06-30 20:31:10 +00:00
VarshitPandya
0c2e337351 DynamicTablesPkg: Add SMBIOS Cooling Device (Type 27) generator
Introduce a CM_ARCH_COMMON_COOLING_DEVICE_INFO object to describe
cooling devices provided by the platform. The generator creates one
SMBIOS Type 27 record for each cooling device object and populates the
device type/status, cooling unit group, OEM-defined data, nominal speed,
and optional description string.

The temperature probe handle is set to 0xFFFF for now because SMBIOS
Type 28 Temperature Probe generation is not currently available. Reject
non-null temperature probe tokens until Type 28 handle resolution can be
added.

Add the CM object parser entry and wire the generator into the
DynamicTablesPkg build.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-06-30 20:31:10 +00:00
Girish Mahadevan
69bf610705 DynamicTablesPkg: Add Memory Array Mapped Address CM object and parser
Add EArchCommonObjMemoryArrayMappedAddress to ArchCommonNameSpaceObjects.h
and a corresponding parser entry in ConfigurationManagerObjectParser.c.

Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-06-05 14:23:55 +00:00
Girish Mahadevan
76bca23d4b DynamicTablesPkg: Add Memory Device CM object and parser
Add EArchCommonObjMemoryDeviceInfo to ArchCommonNameSpaceObjects.h
and a corresponding parser entry in ConfigurationManagerObjectParser.c.

Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-06-05 14:23:55 +00:00
Girish Mahadevan
cdb60ce258 DynamicTablesPkg: Add Physical Memory Array CM object and parser
Add EArchCommonObjPhysicalMemoryArray to ArchCommonNameSpaceObjects.h
and a corresponding parser entry in ConfigurationManagerObjectParser.c.

Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-06-05 14:23:55 +00:00
Girish Mahadevan
cf8227204e DynamicTablesPkg/SmbiosStringTableLib: Add AllocateSmbiosRecord helper
Add AllocateSmbiosRecord() to SmbiosStringTableLib to encapsulate the
SMBIOS spec Section 6.1.3 string-area termination rule. Callers pass
the fixed structure size and an optional string table; the function
appends the correct string area (two-byte double-NULL when no strings
are present, or the full string set size from
StringTableGetStringSetSize() when strings exist).

This removes the need for each generator to open-code the double-NULL
or manually compute the string area size.

Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-06-05 14:23:55 +00:00
Girish Mahadevan
e64225c9d3 DynamicTablesPkg: Add Platform Firmware Information CM object and parser
Add EArchCommonObjPlatformFwInfo to ArchCommonNameSpaceObjects.h and a
corresponding parser entry in ConfigurationManagerObjectParser.c.

Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-06-04 12:59:48 +00:00
Glen Yeldho
932a2e2fee DynamicTablesPkg: Adds ACPI EINJ Table generation support
Add an ACPI Error Injection (EINJ) table generator that uses the
Configuration Manager to obtain the platform error-injection
instruction entries.

Ref: ACPI Specification, Section 18.6 (Error Injection—EINJ table).

Co-authored-by: Varshit Pandya <varshit.pandya@arm.com>
Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-05-27 09:15:46 +00:00
VarshitPandya
54a16706ab DynamicTablesPkg: Sync documented ACPI table IDs with ESTD_ACPI_TABLE_ID
Update the Standard ACPI Table IDs listed in TableGenerator.h to match
the ESTD_ACPI_TABLE_ID enum in AcpiTableGenerator.h.

This fixes the RAW/DSDT/SSDT aliasing at ID 1, corrects the numbering of
the remaining standard ACPI table generators, and adds the IDs that were
missing from the documentation comment.

Keeping this mapping accurate makes TableGeneratorId values easier to
decode during debug when inspecting logs, dumps, or generated table
registration paths.

Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-05-26 18:56:16 +02:00
Abdul Lateef Attar
b68ccf90e7 DynamicTablesPkg/AmlLib: Add AmlMethodParamTypeBuffer support
Extend AML_METHOD_PARAM_TYPE enum with AmlMethodParamTypeBuffer (= 4)
to allow callers to pass a raw byte Buffer as an AML method argument.

Add a Buffer case to the switch in AmlCodeGenInvokeMethod() that
delegates to the existing AmlCodeGenBuffer() helper, with NULL-pointer
and zero-length guards matching the pattern of the other cases.
AmlCodeGenReturnInvokeMethod() already delegates to AmlCodeGenInvokeMethod()
so it picks up the new case automatically.

Update AML_METHOD_PARAM documentation: clarify that DataSize carries the
byte count when Type is AmlMethodParamTypeBuffer, and update the
union/struct field comments accordingly.

Cc: Pierre Gondois <pierre.gondois@arm.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2026-05-25 10:29:48 +00:00
Yeoreum Yun
d8b1635088 DynamicTablesPkg: add Hest table generator
Add ACPI Hardware Error Source Table (HEST) generator.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-04-30 10:31:01 +00:00
Yeoreum Yun
d9256a20ff DynamicTablesPkg: add X64 objects for error sources
This is preparation patch to add HEST table generator in
DyanmicTablePkg.

Add common objects for common error sources information:
  - IA-32 Architecture Machine Check Exception.
  - IA-32 Architecture Corrected Machine Check.
  - IA-32 Architecture Non-Maskable Interrupt.
  - IA-32 Architecture Deferred Machine Check.

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-04-30 10:31:01 +00:00
Yeoreum Yun
829c70b9ef DynamicTablesPkg: add common objects for common error sources
This is preparation patch to add HEST table generator in
DyanmicTablePkg.

Add common objects for common error sources information:
  - PCI Express Root Port AER Structure
  - PCI Express Device AER Structure
  - PCI Express/PCI-X Bridge AER Structure
  - Generic Hardware Error Source
  - Generic Hardware Error Source version 2

Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-04-30 10:31:01 +00:00
Abdul Lateef Attar
cb4cbc5216 DynamicTablesPkg/AmlLib: Adds API method returning method invocations
Introduce AmlCodeGenReturnInvokeMethod(), a new AML code generation API
that creates AML code for methods whose body returns the result of a
method invocation, i.e. Return(MethodName(args...)).

Supported parameter types for method arguments include:
  - AmlMethodParamTypeInteger: Integer constants.
  - AmlMethodParamTypeString:  String literals.
  - AmlMethodParamTypeArg:     ArgObj references (Arg0-Arg6).
  - AmlMethodParamTypeLocal:   LocalObj references (Local0-Local7).

The resulting MethodInvocation node is wrapped in a Return statement
via AmlCodeGenReturn() and linked to the specified parent node.

Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2026-03-11 12:55:41 +00:00
Abdul Lateef Attar
1774a34cc5 DynamicTablesPkg/AmlLib: Refactor AmlCodeGenInvokeMethod API
Refactor AmlCodeGenInvokeMethod() to construct a proper
AML_METHOD_INVOC_OP wrapper node instead of attaching the method
name and argument nodes directly as siblings to the parent. This
aligns the implementation with AmlCodeGenReturnInvokeMethod().

The method invocation is now built as a structured node with:
- FixedArg[0]: method name string (NameString data node)
- FixedArg[1]: argument count (UINT8 data node)
- VarList: parameter nodes (integer, string, ArgObj, LocalObj)

Also add an optional OUT NewObjectNode parameter so callers can
retrieve the created MethodInvocation node, and make ParentNode
optional, matching the convention used by other AmlLib CodeGen APIs.

Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2026-03-11 12:55:41 +00:00
Michael Kubacki
01f75b3927 DynamicTablesPkg: Replace include guards with #pragma once
Replace traditional `#ifndef`/`#define`/`#endif` include guards with
`#pragma` once.

`#pragma once` is a widely supported preprocessor directive that
prevents header files from being included multiple times. It is
supported by all toolchains used to build edk2: GCC, Clang/LLVM, and
MSVC.

Compared to macro-based include guards, `#pragma once`:

- Eliminates the risk of macro name collisions or copy/paste errors
  where two headers inadvertently use the same guard macro.
- Eliminate inconsistency in the way include guard macros are named
  (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.).
- Reduces boilerplate (three lines replaced by one).
- Avoids polluting the macro namespace with guard symbols.
- Can improve build times as the preprocessor can skip re-opening the
  file entirely, rather than re-reading it to find the matching
  `#endif` ("multiple-include optimization").
  - Note that some compilers may already optimize traditional include
    guards, by recognzining the idiomatic pattern.

This change is made acknowledging that overall portability of the
code will technically be reduced, as `#pragma once` is not part of the
C/C++ standards.

However, this is considered acceptable given:

1. edk2 already defines a subset of supported compilers in
   BaseTools/Conf/tools_def.template, all of which have supported
   `#pragma once` for over two decades.
2. There have been concerns raised to the project about inconsistent
   include guard naming and potential macro collisions.

Approximate compiler support dates:

- MSVC: Supported since Visual C++ 4.2 (1996)
- GCC: Supported since 3.4 (2004)
  (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html)
- Clang (LLVM based): Since initial release in 2007

Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2026-02-23 21:01:28 +00:00
Abdul Lateef Attar
c204f5402e DynamicTablesPkg: Adds API to create method with Notify support
Adds APIs to create AML methods with Notify support in the AmlLib library.

New API takes additional parameters for Notify type and Notify value.
Notify type can be one of NameString, Local or Arg.
Notification value is an integer representing the Notify value.

Ref: ACPI spec 6.5 section 19.6.94 Notify (Notify Object of Event)
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2026-01-26 10:43:26 +00:00
Sughosh Ganu
b1707d99ae DynamicTablesPkg: add SSDT DMC620 PMU table generator
The Generic ACPI for Arm Components 1.2 Platform Design Document [1],
section 2.6.1.2 "ASL reference code for the DMC620 PMU" provides
information to describe the Arm Corelink DMC620 Dynamic Memory
Controller's Performance Monitoring Unit (PMU) block using an ASL
definition block table.

Add support for a table generator for the DMC620 PMU block. The table
generator uses the Configuration Manager protocol to obtain the
following information.
  - Number of sockets on the platform
  - DMC620 devices per socket

After obtaining the socket based topology, information is obtained on
individual DMC620 devices. This includes
  - PMU register base address and length
  - Information on the associated PMU interrupt

The table generator uses the Dynamic AML CodeGen API's for generating
the table from the information obtained through the Configuration
Manager protocol.

[1] - https://developer.arm.com/documentation/den0093/1-2eac1/

Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
2026-01-16 11:35:45 +01:00
Sunil V L
3a026170a4 DynamicTablesPkg/RISC-V: Add AcpiSsdtPlicAplicLib library
Add AcpiSsdtPlicAplicLib to create PLIC and APLIC device entries in the
RISC-V namespace. These interrupt controller devices are essential for
accurate ACPI namespace representation on RISC-V platforms.

This library facilitates SSDT generation for PLIC and APLIC, enabling
proper OS discovery and configuration.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
2025-12-02 20:52:41 +00:00
Sunil V L
d612fd272f DynamicTablesPkg/Acpi: Add RHCT generator for RISC-V
Add a generator for the RISC-V Hart Capabilities Table (RHCT), a new
ACPI table used to convey CPU feature information to the operating
system.

This generator enables firmware to describe RISC-V hart capabilities
in a standardized way as part of the ACPI table set.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
2025-12-02 20:52:41 +00:00
Sunil V L
f43f1f2f56 DynamicTablesPkg: Add RISC-V Namespace header
Add a new header file to define RISC-V Namespace objects used by the
Configuration Manager.

Include the new header in the main Configuration Manager Object header
to ensure the definitions are available where needed.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
2025-12-02 20:52:41 +00:00
Abdul Lateef Attar
01d4c1d51c DynamicTablesPkg: Update PCIe config space object
Adds RootPortInfoToken to PCIe config space object to
support addition of root port devices in PCIE SSDT.

Updates the ConfigurationManagerObjectParser to include the new token.

Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-10-23 07:56:17 +00:00
Abdul Lateef Attar
8366881b06 DynamicTablesPkg: Add PCIe root port namespace object
Introduce new architecture common namespace object
for PCIe root ports in the DynamicTables package.

This object holds information:
- PCIe root port address in device and function format
- Reference token information to the PCIe routing table object
- Slot number information for the root port

Also updates ConfigurationManagerObjectParser to parse
the new object and populate the relevant fields.

Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-10-23 07:56:17 +00:00
Abdul Lateef Attar
0a3d688b1b DynamicTablesPkg: Enhance X64 PCIe SSDT _CRS generation
X64 platforms supports WordIo and uncached PCIe resources.
Hence, include WordIo and uncached PCIe resources in _CRS.

Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2025-10-23 07:56:17 +00:00
Sarah Walker
aace3eebd2 DynamicTablesPkg: Use abstract tokens in token generator
Using abstract tokens ensures no collisions with non-generated tokens.

Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-10-13 10:45:45 +00:00
Sarah Walker
ba69c6d514 DynamicTablesPkg: FdtHwInfoParserLib: Generate GIC ITS group objects
Add generation of GIC ITS identifier array and group CmObjs.

Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-10-13 10:45:45 +00:00
Sarah Walker
12690ffbb8 DynamicTablesPkg: Add helper to add CmObj with given token
Implement function to add a CmObj with a token provided by the caller. This
is intended to be used with abstract tokens, the value of which is generated
by the caller.

Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
2025-10-13 10:45:45 +00:00