\r
//\r
// SRAT structure types.\r
-// All other values between 0x03 an 0xFF are reserved and\r
+// All other values between 0x04 an 0xFF are reserved and\r
// will be ignored by OSPM.\r
//\r
#define EFI_ACPI_5_1_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00\r
#define EFI_ACPI_5_1_MEMORY_AFFINITY 0x01\r
#define EFI_ACPI_5_1_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02\r
+#define EFI_ACPI_5_1_GICC_AFFINITY 0x03\r
\r
///\r
/// Processor Local APIC/SAPIC Affinity Structure Definition\r
UINT8 Reserved2[4];\r
} EFI_ACPI_5_1_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE;\r
\r
+///\r
+/// GICC Affinity Structure Definition\r
+///\r
+typedef struct {\r
+ UINT8 Type;\r
+ UINT8 Length;\r
+ UINT32 ProximityDomain;\r
+ UINT32 AcpiProcessorUid;\r
+ UINT32 Flags;\r
+ UINT32 ClockDomain;\r
+} EFI_ACPI_5_1_GICC_AFFINITY_STRUCTURE;\r
+\r
+///\r
+/// GICC Flags. All other bits are reserved and must be 0.\r
+///\r
+#define EFI_ACPI_5_1_GICC_ENABLED (1 << 0)\r
+\r
///\r
/// System Locality Distance Information Table (SLIT).\r
/// The rest of the table is a matrix.\r
///\r
typedef struct {\r
UINT8 Type;\r
- UINT8 Length;\r
- UINT16 Reserved;\r
+ UINT16 Length;\r
+ UINT8 Reserved;\r
UINT64 RefreshFramePhysicalAddress;\r
UINT64 WatchdogControlFramePhysicalAddress;\r
UINT32 WatchdogTimerGSIV;\r