summaryrefslogtreecommitdiff
path: root/DynamicTablesPkg/Include
AgeCommit message (Collapse)AuthorFilesLines
5 daysDynamicTablesPkg: Add IPMI Device CM object and parserGirish Mahadevan1-0/+33
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
9 daysDynamicTablesPkg: Add ACPI ERST table generatorAmrathesh3-0/+32
Add a common Error Record Serialization Table (ERST) generator based on the ACPI 6.6 definition. Introduce an architecture-common Configuration Manager object to provide serialization instruction entries. Validate actions, instructions, flags, register masks, action grouping, and GOTO targets before generating the table. Signed-off-by: Amrathesh <amrathesh@arm.com>
11 daysDynamicTablesPkg: Add ACPI BERT table generatorAmrathesh3-0/+19
Add a common Boot Error Record Table (BERT) generator based on the ACPI 6.6 definition. Introduce an architecture-common Configuration Manager object that provides the boot error region address and length. Signed-off-by: Amrathesh <amrathesh@arm.com>
11 daysDynamicTablesPkg: Fix ACPI ID documentationAmrathesh2-34/+37
Correct the Arch Common object ID comments following the EINJ object. Also document the existing HMAT, APMT, and MSCT standard ACPI table generator IDs. Signed-off-by: Amrathesh <amrathesh@arm.com>
11 daysDynamicTablesPkg: Add Onboard Device CM object and parserGirish Mahadevan1-0/+30
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
13 daysDynamicTablesPkg: SsdtSerialPortFixupLib: Add GICv5 IRQ ranges to IRQ checkSarah Walker1-0/+13
To support SPCR with GicV5, check GiCv5 SPI IRQ ranges too. And cleanup for ifdef for ARM specific validation with the Arch specific function to validate serial port information. Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
13 daysDynamicTablesPkg,MdePkg: generate IORT table for GICv5Sarah Walker1-0/+27
Generate GICv5 related information in IORT table. Continuous-integration-options: PatchCheck.ignore-multi-package Co-Developed-by: Yeoreum Yun <yeoreum.yun@arm.com> Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
13 daysDynamicTablesPkg: generate SRAT table for GICv5Sarah Walker1-0/+20
Generate GICv5 related information in SRAT table. Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
13 daysDynamicTablesPkg: generate MADT table for GICv5Sarah Walker1-1/+63
Generate GICv5 related information in MADT table. Signed-off-by: Sarah Walker <Sarah.Walker2@arm.com>
13 daysDynamicTablesPkg: Add System Boot CM object and parserGirish Mahadevan1-0/+15
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
14 daysDynamicTablesPkg: Add BIOS Language CM object and parserGirish Mahadevan1-0/+33
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
2026-09-10DynamicTablesPkg: Generalize the CMN SSDT generatorVarshit Pandya2-27/+38
Extend the CMN Configuration Manager object with an implementation type and optional root-node region length. Map the implementation type to the ACPI hardware IDs for CMN-600, CMN-650, CMN-700 and CMN-S3. Apply CMN-600-specific address restrictions only when the CMN-600 implementation type is selected. Rename the CMN-600 generator, identifiers and files to reflect support for multiple CMN implementations. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Add AmlLib logical equality generatorVarshit Pandya1-0/+45
Add AmlCodeGenEqual() to create an AML LEqual expression from two supplied operands. Use the existing AML_METHOD_PARAM representation for integer, method argument, and local variable operands. The generated equality expression can be used as a predicate by control-flow objects. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Add AmlLib If code generatorVarshit Pandya1-0/+39
Add AmlCodeGenIf() to create an AML If object from a supplied predicate node. The API takes ownership of the predicate and returns an If node to which executable statements can subsequently be appended. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Add AmlLib Store generatorVarshit Pandya1-0/+44
Add AmlCodeGenStoreToName() to create an AML Store operation with a typed source operand and a named target. Support integer, method argument and local variable sources using the AML_METHOD_PARAM representation. Append the generated Store node to an optional parent object. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Add AmlLib NamedField code generatorVarshit Pandya1-0/+36
Add AmlCodeGenFieldElemNamed() to create a named element within an AML Field list. The API validates the supplied NameSeg and field length, encodes the length using the AML FieldPkgLen format, and appends the resulting NamedField node to its parent Field object. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Add AmlLib ReservedField code generatorVarshit Pandya1-0/+36
Add AmlCodeGenFieldElemReserved() to create an AML ReservedField element and append it to a Field list. The API accepts the reserved range length in bits and validates that the parent supports a Field list. ReservedField elements describe unnamed gaps in Field declarations and can be used when translating ASL Offset() declarations. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Add AmlLib Field code generatorVarshit Pandya1-0/+70
Add AmlCodeGenField() to create an empty AML Field object associated with an OperationRegion. Expose access type, lock rule, and update rule through typed public enumerations and encode them in the Field flags byte. The generated Field node can be attached directly to a parent or returned so that field elements can subsequently be appended. For example, the API can generate: Field (REG0, DWordAcc, NoLock, Preserve) { } Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Add AmlLib OperationRegion code generatorVarshit Pandya1-1/+54
Add AmlCodeGenOperationRegion() to create an AML OperationRegion object from a region name, address space, integer offset, and integer length. The API creates the OperationRegion object and populates its four fixed AML operands: - RegionName - RegionSpace - RegionOffset - RegionLength RegionOffset and RegionLength are encoded using the smallest suitable AML integer representation. The generated node can either be attached directly to a supplied parent or returned to the caller for later use. For example, the API can generate an object equivalent to: OperationRegion ( REG0, SystemMemory, RegionOffset, RegionLength ) This provides generators with a reusable way to describe register regions without relying on a precompiled ASL template. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Expose AmlLib Notify generatorVarshit Pandya1-0/+29
Make AmlCodeGenNotify() public and declare it in AmlLib.h. Add the new API to the CodeGen documentation group. Callers currently cannot append an individual Notify operation while incrementally constructing a method body. For example, this enables generators to construct _EVT methods containing conditional register writes and device notifications. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-10DynamicTablesPkg: Document AmlLib code generator APIsVarshit Pandya1-0/+23
Add AmlCodeGenMethod() and other missing public functions to the CodeGen API documentation group. Signed-off-by: Varshit Pandya <varshit.pandya@arm.com>
2026-09-09DynamicTablesPkg: Rename the DMC 620 PMU generatorVarshitPandya2-19/+19
Rename the DMC-620 PMU generator and its Configuration Manager objects to remove the DMC-620-specific naming. Update the generator ID, library paths, parser definitions and associated documentation to use generic DMC PMU terminology. Signed-off-by: Varshit Pandya <Varshit.Pandya@arm.com>
2026-09-01DynamicTablesPkg: add SMBIOS Type 42 CM object structuresYeoreum Yun1-77/+273
Add SMBIOS Type 42 related CM object structures Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-09-01DynamicTablesPkg: introduce SMBIOS_MAX_STRING_SIZE_REDUCEDYeoreum Yun1-0/+10
Since the SMBIOS 2.7 specifiaton, there is no maximum string limitation from SMBIOS_STRING_MAX_LENGTH (64). However, for a purpose of DynamicTablesPkg implementation, it restricts the maximum size with 1024 but this is too big. Therefore, introduce SMBIOS_MAX_STRING_SIZE_REDUCED which size with double of SMBIOS_STRING_MAX_LENGTH which is 128 including NULL terminator. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-08-31DynamicTablesPkg: Add ACPI MSCT table generatorAbdul Lateef Attar1-0/+4
Add MSCT table ID to the ESTD_ACPI_TABLE_ID enumeration. Introduces an ACPI MSCT (Maximum System Characteristics Table) generator library that retrieves the following information from the configuration manager: - Maximum physical address - Processor proximity information - Memory proximity information - Clock proximity information The generator calculates: - Maximum memory length per memory domain - Maximum contiguous processor domain - Maximum memory and processor domain combination Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2026-08-31DynamicTablesPkg: Add MSCT maximum physical address supportAbdul Lateef Attar1-0/+11
Add MSCT maximum physical address configuration object and update parser to handle the new object type. Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com>
2026-08-27DynamicTablesPkg: Add LoongArch64 CM namespace headerDongyan Qian2-0/+193
Define a LoongArch64 Configuration Manager namespace for MADT data. The objects describe table-wide settings and the Core, LIO, HT, EIO, MSI, BIO, and LPC interrupt controllers. Use AcpiProcessorUid for the processor identity matched to an AML _UID, and model MAX_UINT32 as the invalid physical CoreId. Expose each ACPI-defined PIC structure Version through its matching CM object. Currently, ACPI defines only version 1. Signed-off-by: Dongyan Qian <qiandongyan@loongson.cn>
2026-08-27DynamicTablesPkg: add APMT generatorYeoreum Yun1-0/+1
Add Arm Performance Monitoring Unit Table (APMT) generator. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-08-27DynamicTablesPkg: introduce Arm coresight PMU CM objectYeoreum Yun1-0/+62
To generate Arm Performance Moniteroing Unit Table (APMT), introduce Arm coresight PMU CM object. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-31DynamicTablesPkg: Add StaToken to ProcHierarch CmObjPierre Gondois2-0/+10
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-31DynamicTablesPkg/AmlLib: Add AmlCodeGenMethodRetBuffer APITuan Phan1-0/+51
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-31DynamicTablesPkg/AmiLib: Make AmlCodeGenMethod publicTuan Phan1-0/+44
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-31DynamicTablesPkg: Add Baseboard CM object and parserGirish Mahadevan1-0/+48
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
2026-07-25DynamicTablesPkg: Use ArmSmcccSocIdLib for SoC IDVarshitPandya1-7/+10
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-24DynamicTablesPkg: Add System Enclosure CM object and parserGirish Mahadevan1-1/+64
Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
2026-07-22DynamicTablesPkg: Add Additional Information CM objectsVarshitPandya1-0/+73
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-21DynamicTablesPkg: Move common size definitionsVarshitPandya1-5/+13
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-17DynamicTablesPkg: Add System Information CM object and parserGirish Mahadevan1-0/+28
Add EArchCommonObjSystemInfo to ArchCommonNameSpaceObjects.h and a corresponding parser entry in ConfigurationManagerObjectParser.c. Signed-off-by: Girish Mahadevan <gmahadevan@nvidia.com>
2026-07-16DynamicTablesPkg/Smbios: Use EFIAPI for extended callbacksDongyan Qian1-2/+2
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-11DynamicTablesPkg: Add AmlUpdateRdDWord() and AmlUpdateRdWord()Pierre Gondois1-0/+42
Add the following functions to the AmlResourceDataApi: - AmlUpdateRdDWord() - AmlUpdateRdWord() Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2026-07-09DynamicTablesPkg: add SMBIOS type 44 for risc-vYeoreum Yun1-0/+23
Add Smbios Type 44 generator for the risc-v processor specific block support. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-09DynamicTablesPkg: add SMBIOS type 44 for x86(x64)Yeoreum Yun1-1/+18
Add Smbios Type 44 generator for the x86(x64) processor specific block support. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-09DynamicTablesPkg: add SMBIOS type 44 generatorYeoreum Yun1-3/+3
Add Smbios Type 44 generator with the arm processor specific block support. Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-07-09DynamicTablesPkg: add arm data structure for SMBIOS type 44 recordYeoreum Yun1-0/+96
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-09DynamicTablesPkg: add arch common data structure for SMBIOS type 44 recordYeoreum Yun1-0/+22
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-07DynamicTablesPkg: Smbios Memory Channel (Type 37)VarshitPandya1-0/+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-06DynamicTablesPkg: Add HMAT generatorOleksandr Tymoshenko1-0/+1
- 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-06DynamicTablesPkg: Fix memory leak in MetaDataObjLib libraryOleksandr Tymoshenko1-2/+2
Clean up all metadata entries when freeing a metadata handle in MetadataFreeHandle. Signed-off-by: Oleksandr Tymoshenko <ovt@google.com>
2026-07-03DynamicTablesPkg: Smbios Memory Device Mapped Address (Type 20)VarshitPandya1-0/+29
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-02DynamicTablesPkg: Add SMBIOS System Reset (Type 23) generatorVarshitPandya1-0/+27
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>