diff options
Diffstat (limited to 'DynamicTablesPkg/Include/X64NameSpaceObjects.h')
-rw-r--r-- | DynamicTablesPkg/Include/X64NameSpaceObjects.h | 78 |
1 files changed, 76 insertions, 2 deletions
diff --git a/DynamicTablesPkg/Include/X64NameSpaceObjects.h b/DynamicTablesPkg/Include/X64NameSpaceObjects.h index f153461be0..f07d6d4655 100644 --- a/DynamicTablesPkg/Include/X64NameSpaceObjects.h +++ b/DynamicTablesPkg/Include/X64NameSpaceObjects.h @@ -2,7 +2,7 @@ Defines the X64 Namespace Object.
- Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved.
+ Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -17,6 +17,15 @@ #include <IndustryStandard/Acpi.h>
+/** The LOCAL_APIC_MODE enum describes the Local APIC
+ mode in the X64 Namespace
+*/
+typedef enum {
+ LocalApicModeInvalid = 0,
+ LocalApicModeXApic,
+ LocalApicModeX2Apic
+} LOCAL_APIC_MODE;
+
/** The EX64_OBJECT_ID enum describes the Object IDs
in the X64 Namespace
*/
@@ -33,7 +42,12 @@ typedef enum X64ObjectID { EX64ObjFadtMiscInfo, ///< 9 - FADT Legacy fields info
EX64ObjWsmtFlagsInfo, ///< 10 - WSMT protection flags info
EX64ObjHpetInfo, ///< 11 - HPET device info
- EX64ObjMax ///< 12 - Maximum Object ID
+ EX64ObjMadtInfo, ///< 12 - MADT info
+ EX64ObjLocalApicX2ApicInfo, ///< 13 - Local APIC and X2APIC info
+ EX64ObjIoApicInfo, ///< 14 - IO APIC info
+ EX64ObjIntrSourceOverrideInfo, ///< 15 - Interrupt Source Override info
+ EX64ObjLocalApicX2ApicNmiInfo, ///< 16 - Local APIC and X2APIC NMI info
+ EX64ObjMax ///< 17 - Maximum Object ID
} EX64_OBJECT_ID;
/** A structure that describes the
@@ -188,4 +202,64 @@ typedef struct CmX64HpetInfo { UINT16 MainCounterMinimumClockTickInPeriodicMode;
UINT8 PageProtectionAndOemAttribute;
} CM_X64_HPET_INFO;
+
+/**
+ A structure that describes the MADT information.
+
+ ID: EX64ObjMadtInfo
+*/
+typedef struct CmX64MadtInfo {
+ UINT32 LocalApicAddress;
+ UINT32 Flags;
+ LOCAL_APIC_MODE ApicMode;
+} CM_X64_MADT_INFO;
+
+/**
+ A structure that describes the Local APIC and X2APIC information.
+ This structure includes fields from the ACPI_6_5_LOCAL_APIC_STRUCTURE
+ and ACPI_6_5_LOCAL_X2APIC_STRUCTURE from the ACPI specifications.
+ Additional fields are included to support CPU SSDT topology generation.
+
+ ID: EX64ObjLocalApicX2ApicInfo
+*/
+typedef struct CmX64LocalApicX2ApicInfo {
+ UINT32 ApicId;
+ UINT32 Flags;
+ UINT32 AcpiProcessorUid;
+} CM_X64_LOCAL_APIC_X2APIC_INFO;
+
+/**
+ A structure that describes the IO APIC information.
+
+ ID: EX64ObjIoApicInfo
+*/
+typedef struct CmX64IoApicInfo {
+ UINT8 IoApicId;
+ UINT32 IoApicAddress;
+ UINT32 GlobalSystemInterruptBase;
+} CM_X64_IO_APIC_INFO;
+
+/**
+ A structure that describes the Interrupt Source Override information.
+
+ ID: EX64ObjIntrSourceOverrideInfo
+*/
+typedef struct CmX64IntrSourceOverrideInfo {
+ UINT8 Bus;
+ UINT8 Source;
+ UINT32 GlobalSystemInterrupt;
+ UINT16 Flags;
+} CM_X64_INTR_SOURCE_OVERRIDE_INFO;
+
+/**
+ A structure that describes the Local APIC NMI information.
+
+ ID: EX64ObjLocalApicX2ApicNmiInfo
+*/
+typedef struct CmX64LocalApicX2ApicNmiInfo {
+ UINT16 Flags;
+ UINT32 AcpiProcessorUid;
+ UINT8 LocalApicLint;
+} CM_X64_LOCAL_APIC_X2APIC_NMI_INFO;
+
#endif // X64_NAMESPACE_OBJECTS_H_
|