1*1370a723SSascha Wildner /** @file 2*1370a723SSascha Wildner ACPI 3.0 definitions from the ACPI Specification Revision 3.0b October 10, 2006 3*1370a723SSascha Wildner 4*1370a723SSascha Wildner Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> 5*1370a723SSascha Wildner SPDX-License-Identifier: BSD-2-Clause-Patent 6*1370a723SSascha Wildner **/ 7*1370a723SSascha Wildner 8*1370a723SSascha Wildner #ifndef _ACPI_3_0_H_ 9*1370a723SSascha Wildner #define _ACPI_3_0_H_ 10*1370a723SSascha Wildner 11*1370a723SSascha Wildner #include <IndustryStandard/Acpi20.h> 12*1370a723SSascha Wildner 13*1370a723SSascha Wildner // 14*1370a723SSascha Wildner // Define for Descriptor 15*1370a723SSascha Wildner // 16*1370a723SSascha Wildner #define ACPI_LARGE_EXTENDED_ADDRESS_SPACE_DESCRIPTOR_NAME 0x0B 17*1370a723SSascha Wildner 18*1370a723SSascha Wildner #define ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR 0x8B 19*1370a723SSascha Wildner 20*1370a723SSascha Wildner // 21*1370a723SSascha Wildner // Ensure proper structure formats 22*1370a723SSascha Wildner // 23*1370a723SSascha Wildner #pragma pack(1) 24*1370a723SSascha Wildner 25*1370a723SSascha Wildner /// 26*1370a723SSascha Wildner /// Extended Address Space Descriptor 27*1370a723SSascha Wildner /// 28*1370a723SSascha Wildner typedef PACKED struct { 29*1370a723SSascha Wildner ACPI_LARGE_RESOURCE_HEADER Header; 30*1370a723SSascha Wildner UINT8 ResType; 31*1370a723SSascha Wildner UINT8 GenFlag; 32*1370a723SSascha Wildner UINT8 SpecificFlag; 33*1370a723SSascha Wildner UINT8 RevisionId; 34*1370a723SSascha Wildner UINT8 Reserved; 35*1370a723SSascha Wildner UINT64 AddrSpaceGranularity; 36*1370a723SSascha Wildner UINT64 AddrRangeMin; 37*1370a723SSascha Wildner UINT64 AddrRangeMax; 38*1370a723SSascha Wildner UINT64 AddrTranslationOffset; 39*1370a723SSascha Wildner UINT64 AddrLen; 40*1370a723SSascha Wildner UINT64 TypeSpecificAttribute; 41*1370a723SSascha Wildner } EFI_ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR; 42*1370a723SSascha Wildner 43*1370a723SSascha Wildner #pragma pack() 44*1370a723SSascha Wildner 45*1370a723SSascha Wildner // 46*1370a723SSascha Wildner // Memory Type Specific Flags 47*1370a723SSascha Wildner // 48*1370a723SSascha Wildner #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UC 0x0000000000000001 49*1370a723SSascha Wildner #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WC 0x0000000000000002 50*1370a723SSascha Wildner #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WT 0x0000000000000004 51*1370a723SSascha Wildner #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WB 0x0000000000000008 52*1370a723SSascha Wildner #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UCE 0x0000000000000010 53*1370a723SSascha Wildner #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_NV 0x0000000000008000 54*1370a723SSascha Wildner 55*1370a723SSascha Wildner // 56*1370a723SSascha Wildner // Ensure proper structure formats 57*1370a723SSascha Wildner // 58*1370a723SSascha Wildner #pragma pack(1) 59*1370a723SSascha Wildner 60*1370a723SSascha Wildner /// 61*1370a723SSascha Wildner /// ACPI 3.0 Generic Address Space definition 62*1370a723SSascha Wildner /// 63*1370a723SSascha Wildner typedef struct { 64*1370a723SSascha Wildner UINT8 AddressSpaceId; 65*1370a723SSascha Wildner UINT8 RegisterBitWidth; 66*1370a723SSascha Wildner UINT8 RegisterBitOffset; 67*1370a723SSascha Wildner UINT8 AccessSize; 68*1370a723SSascha Wildner UINT64 Address; 69*1370a723SSascha Wildner } EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE; 70*1370a723SSascha Wildner 71*1370a723SSascha Wildner // 72*1370a723SSascha Wildner // Generic Address Space Address IDs 73*1370a723SSascha Wildner // 74*1370a723SSascha Wildner #define EFI_ACPI_3_0_SYSTEM_MEMORY 0 75*1370a723SSascha Wildner #define EFI_ACPI_3_0_SYSTEM_IO 1 76*1370a723SSascha Wildner #define EFI_ACPI_3_0_PCI_CONFIGURATION_SPACE 2 77*1370a723SSascha Wildner #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER 3 78*1370a723SSascha Wildner #define EFI_ACPI_3_0_SMBUS 4 79*1370a723SSascha Wildner #define EFI_ACPI_3_0_FUNCTIONAL_FIXED_HARDWARE 0x7F 80*1370a723SSascha Wildner 81*1370a723SSascha Wildner // 82*1370a723SSascha Wildner // Generic Address Space Access Sizes 83*1370a723SSascha Wildner // 84*1370a723SSascha Wildner #define EFI_ACPI_3_0_UNDEFINED 0 85*1370a723SSascha Wildner #define EFI_ACPI_3_0_BYTE 1 86*1370a723SSascha Wildner #define EFI_ACPI_3_0_WORD 2 87*1370a723SSascha Wildner #define EFI_ACPI_3_0_DWORD 3 88*1370a723SSascha Wildner #define EFI_ACPI_3_0_QWORD 4 89*1370a723SSascha Wildner 90*1370a723SSascha Wildner // 91*1370a723SSascha Wildner // ACPI 3.0 table structures 92*1370a723SSascha Wildner // 93*1370a723SSascha Wildner 94*1370a723SSascha Wildner /// 95*1370a723SSascha Wildner /// Root System Description Pointer Structure 96*1370a723SSascha Wildner /// 97*1370a723SSascha Wildner typedef struct { 98*1370a723SSascha Wildner UINT64 Signature; 99*1370a723SSascha Wildner UINT8 Checksum; 100*1370a723SSascha Wildner UINT8 OemId[6]; 101*1370a723SSascha Wildner UINT8 Revision; 102*1370a723SSascha Wildner UINT32 RsdtAddress; 103*1370a723SSascha Wildner UINT32 Length; 104*1370a723SSascha Wildner UINT64 XsdtAddress; 105*1370a723SSascha Wildner UINT8 ExtendedChecksum; 106*1370a723SSascha Wildner UINT8 Reserved[3]; 107*1370a723SSascha Wildner } EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER; 108*1370a723SSascha Wildner 109*1370a723SSascha Wildner /// 110*1370a723SSascha Wildner /// RSD_PTR Revision (as defined in ACPI 3.0b spec.) 111*1370a723SSascha Wildner /// 112*1370a723SSascha Wildner #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 3.0b) says current value is 2 113*1370a723SSascha Wildner 114*1370a723SSascha Wildner /// 115*1370a723SSascha Wildner /// Common table header, this prefaces all ACPI tables, including FACS, but 116*1370a723SSascha Wildner /// excluding the RSD PTR structure 117*1370a723SSascha Wildner /// 118*1370a723SSascha Wildner typedef struct { 119*1370a723SSascha Wildner UINT32 Signature; 120*1370a723SSascha Wildner UINT32 Length; 121*1370a723SSascha Wildner } EFI_ACPI_3_0_COMMON_HEADER; 122*1370a723SSascha Wildner 123*1370a723SSascha Wildner // 124*1370a723SSascha Wildner // Root System Description Table 125*1370a723SSascha Wildner // No definition needed as it is a common description table header, the same with 126*1370a723SSascha Wildner // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. 127*1370a723SSascha Wildner // 128*1370a723SSascha Wildner 129*1370a723SSascha Wildner /// 130*1370a723SSascha Wildner /// RSDT Revision (as defined in ACPI 3.0 spec.) 131*1370a723SSascha Wildner /// 132*1370a723SSascha Wildner #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 133*1370a723SSascha Wildner 134*1370a723SSascha Wildner // 135*1370a723SSascha Wildner // Extended System Description Table 136*1370a723SSascha Wildner // No definition needed as it is a common description table header, the same with 137*1370a723SSascha Wildner // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. 138*1370a723SSascha Wildner // 139*1370a723SSascha Wildner 140*1370a723SSascha Wildner /// 141*1370a723SSascha Wildner /// XSDT Revision (as defined in ACPI 3.0 spec.) 142*1370a723SSascha Wildner /// 143*1370a723SSascha Wildner #define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 144*1370a723SSascha Wildner 145*1370a723SSascha Wildner /// 146*1370a723SSascha Wildner /// Fixed ACPI Description Table Structure (FADT) 147*1370a723SSascha Wildner /// 148*1370a723SSascha Wildner typedef struct { 149*1370a723SSascha Wildner EFI_ACPI_DESCRIPTION_HEADER Header; 150*1370a723SSascha Wildner UINT32 FirmwareCtrl; 151*1370a723SSascha Wildner UINT32 Dsdt; 152*1370a723SSascha Wildner UINT8 Reserved0; 153*1370a723SSascha Wildner UINT8 PreferredPmProfile; 154*1370a723SSascha Wildner UINT16 SciInt; 155*1370a723SSascha Wildner UINT32 SmiCmd; 156*1370a723SSascha Wildner UINT8 AcpiEnable; 157*1370a723SSascha Wildner UINT8 AcpiDisable; 158*1370a723SSascha Wildner UINT8 S4BiosReq; 159*1370a723SSascha Wildner UINT8 PstateCnt; 160*1370a723SSascha Wildner UINT32 Pm1aEvtBlk; 161*1370a723SSascha Wildner UINT32 Pm1bEvtBlk; 162*1370a723SSascha Wildner UINT32 Pm1aCntBlk; 163*1370a723SSascha Wildner UINT32 Pm1bCntBlk; 164*1370a723SSascha Wildner UINT32 Pm2CntBlk; 165*1370a723SSascha Wildner UINT32 PmTmrBlk; 166*1370a723SSascha Wildner UINT32 Gpe0Blk; 167*1370a723SSascha Wildner UINT32 Gpe1Blk; 168*1370a723SSascha Wildner UINT8 Pm1EvtLen; 169*1370a723SSascha Wildner UINT8 Pm1CntLen; 170*1370a723SSascha Wildner UINT8 Pm2CntLen; 171*1370a723SSascha Wildner UINT8 PmTmrLen; 172*1370a723SSascha Wildner UINT8 Gpe0BlkLen; 173*1370a723SSascha Wildner UINT8 Gpe1BlkLen; 174*1370a723SSascha Wildner UINT8 Gpe1Base; 175*1370a723SSascha Wildner UINT8 CstCnt; 176*1370a723SSascha Wildner UINT16 PLvl2Lat; 177*1370a723SSascha Wildner UINT16 PLvl3Lat; 178*1370a723SSascha Wildner UINT16 FlushSize; 179*1370a723SSascha Wildner UINT16 FlushStride; 180*1370a723SSascha Wildner UINT8 DutyOffset; 181*1370a723SSascha Wildner UINT8 DutyWidth; 182*1370a723SSascha Wildner UINT8 DayAlrm; 183*1370a723SSascha Wildner UINT8 MonAlrm; 184*1370a723SSascha Wildner UINT8 Century; 185*1370a723SSascha Wildner UINT16 IaPcBootArch; 186*1370a723SSascha Wildner UINT8 Reserved1; 187*1370a723SSascha Wildner UINT32 Flags; 188*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ResetReg; 189*1370a723SSascha Wildner UINT8 ResetValue; 190*1370a723SSascha Wildner UINT8 Reserved2[3]; 191*1370a723SSascha Wildner UINT64 XFirmwareCtrl; 192*1370a723SSascha Wildner UINT64 XDsdt; 193*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk; 194*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk; 195*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk; 196*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk; 197*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk; 198*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk; 199*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk; 200*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk; 201*1370a723SSascha Wildner } EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE; 202*1370a723SSascha Wildner 203*1370a723SSascha Wildner /// 204*1370a723SSascha Wildner /// FADT Version (as defined in ACPI 3.0 spec.) 205*1370a723SSascha Wildner /// 206*1370a723SSascha Wildner #define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x04 207*1370a723SSascha Wildner 208*1370a723SSascha Wildner // 209*1370a723SSascha Wildner // Fixed ACPI Description Table Preferred Power Management Profile 210*1370a723SSascha Wildner // 211*1370a723SSascha Wildner #define EFI_ACPI_3_0_PM_PROFILE_UNSPECIFIED 0 212*1370a723SSascha Wildner #define EFI_ACPI_3_0_PM_PROFILE_DESKTOP 1 213*1370a723SSascha Wildner #define EFI_ACPI_3_0_PM_PROFILE_MOBILE 2 214*1370a723SSascha Wildner #define EFI_ACPI_3_0_PM_PROFILE_WORKSTATION 3 215*1370a723SSascha Wildner #define EFI_ACPI_3_0_PM_PROFILE_ENTERPRISE_SERVER 4 216*1370a723SSascha Wildner #define EFI_ACPI_3_0_PM_PROFILE_SOHO_SERVER 5 217*1370a723SSascha Wildner #define EFI_ACPI_3_0_PM_PROFILE_APPLIANCE_PC 6 218*1370a723SSascha Wildner #define EFI_ACPI_3_0_PM_PROFILE_PERFORMANCE_SERVER 7 219*1370a723SSascha Wildner 220*1370a723SSascha Wildner // 221*1370a723SSascha Wildner // Fixed ACPI Description Table Boot Architecture Flags 222*1370a723SSascha Wildner // All other bits are reserved and must be set to 0. 223*1370a723SSascha Wildner // 224*1370a723SSascha Wildner #define EFI_ACPI_3_0_LEGACY_DEVICES BIT0 225*1370a723SSascha Wildner #define EFI_ACPI_3_0_8042 BIT1 226*1370a723SSascha Wildner #define EFI_ACPI_3_0_VGA_NOT_PRESENT BIT2 227*1370a723SSascha Wildner #define EFI_ACPI_3_0_MSI_NOT_SUPPORTED BIT3 228*1370a723SSascha Wildner #define EFI_ACPI_3_0_PCIE_ASPM_CONTROLS BIT4 229*1370a723SSascha Wildner 230*1370a723SSascha Wildner // 231*1370a723SSascha Wildner // Fixed ACPI Description Table Fixed Feature Flags 232*1370a723SSascha Wildner // All other bits are reserved and must be set to 0. 233*1370a723SSascha Wildner // 234*1370a723SSascha Wildner #define EFI_ACPI_3_0_WBINVD BIT0 235*1370a723SSascha Wildner #define EFI_ACPI_3_0_WBINVD_FLUSH BIT1 236*1370a723SSascha Wildner #define EFI_ACPI_3_0_PROC_C1 BIT2 237*1370a723SSascha Wildner #define EFI_ACPI_3_0_P_LVL2_UP BIT3 238*1370a723SSascha Wildner #define EFI_ACPI_3_0_PWR_BUTTON BIT4 239*1370a723SSascha Wildner #define EFI_ACPI_3_0_SLP_BUTTON BIT5 240*1370a723SSascha Wildner #define EFI_ACPI_3_0_FIX_RTC BIT6 241*1370a723SSascha Wildner #define EFI_ACPI_3_0_RTC_S4 BIT7 242*1370a723SSascha Wildner #define EFI_ACPI_3_0_TMR_VAL_EXT BIT8 243*1370a723SSascha Wildner #define EFI_ACPI_3_0_DCK_CAP BIT9 244*1370a723SSascha Wildner #define EFI_ACPI_3_0_RESET_REG_SUP BIT10 245*1370a723SSascha Wildner #define EFI_ACPI_3_0_SEALED_CASE BIT11 246*1370a723SSascha Wildner #define EFI_ACPI_3_0_HEADLESS BIT12 247*1370a723SSascha Wildner #define EFI_ACPI_3_0_CPU_SW_SLP BIT13 248*1370a723SSascha Wildner #define EFI_ACPI_3_0_PCI_EXP_WAK BIT14 249*1370a723SSascha Wildner #define EFI_ACPI_3_0_USE_PLATFORM_CLOCK BIT15 250*1370a723SSascha Wildner #define EFI_ACPI_3_0_S4_RTC_STS_VALID BIT16 251*1370a723SSascha Wildner #define EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE BIT17 252*1370a723SSascha Wildner #define EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL BIT18 253*1370a723SSascha Wildner #define EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19 254*1370a723SSascha Wildner 255*1370a723SSascha Wildner /// 256*1370a723SSascha Wildner /// Firmware ACPI Control Structure 257*1370a723SSascha Wildner /// 258*1370a723SSascha Wildner typedef struct { 259*1370a723SSascha Wildner UINT32 Signature; 260*1370a723SSascha Wildner UINT32 Length; 261*1370a723SSascha Wildner UINT32 HardwareSignature; 262*1370a723SSascha Wildner UINT32 FirmwareWakingVector; 263*1370a723SSascha Wildner UINT32 GlobalLock; 264*1370a723SSascha Wildner UINT32 Flags; 265*1370a723SSascha Wildner UINT64 XFirmwareWakingVector; 266*1370a723SSascha Wildner UINT8 Version; 267*1370a723SSascha Wildner UINT8 Reserved[31]; 268*1370a723SSascha Wildner } EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE; 269*1370a723SSascha Wildner 270*1370a723SSascha Wildner /// 271*1370a723SSascha Wildner /// FACS Version (as defined in ACPI 3.0 spec.) 272*1370a723SSascha Wildner /// 273*1370a723SSascha Wildner #define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x01 274*1370a723SSascha Wildner 275*1370a723SSascha Wildner /// 276*1370a723SSascha Wildner /// Firmware Control Structure Feature Flags 277*1370a723SSascha Wildner /// All other bits are reserved and must be set to 0. 278*1370a723SSascha Wildner /// 279*1370a723SSascha Wildner #define EFI_ACPI_3_0_S4BIOS_F BIT0 280*1370a723SSascha Wildner 281*1370a723SSascha Wildner // 282*1370a723SSascha Wildner // Differentiated System Description Table, 283*1370a723SSascha Wildner // Secondary System Description Table 284*1370a723SSascha Wildner // and Persistent System Description Table, 285*1370a723SSascha Wildner // no definition needed as they are common description table header, the same with 286*1370a723SSascha Wildner // EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block. 287*1370a723SSascha Wildner // 288*1370a723SSascha Wildner #define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02 289*1370a723SSascha Wildner #define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02 290*1370a723SSascha Wildner 291*1370a723SSascha Wildner /// 292*1370a723SSascha Wildner /// Multiple APIC Description Table header definition. The rest of the table 293*1370a723SSascha Wildner /// must be defined in a platform specific manner. 294*1370a723SSascha Wildner /// 295*1370a723SSascha Wildner typedef struct { 296*1370a723SSascha Wildner EFI_ACPI_DESCRIPTION_HEADER Header; 297*1370a723SSascha Wildner UINT32 LocalApicAddress; 298*1370a723SSascha Wildner UINT32 Flags; 299*1370a723SSascha Wildner } EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER; 300*1370a723SSascha Wildner 301*1370a723SSascha Wildner /// 302*1370a723SSascha Wildner /// MADT Revision (as defined in ACPI 3.0 spec.) 303*1370a723SSascha Wildner /// 304*1370a723SSascha Wildner #define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x02 305*1370a723SSascha Wildner 306*1370a723SSascha Wildner /// 307*1370a723SSascha Wildner /// Multiple APIC Flags 308*1370a723SSascha Wildner /// All other bits are reserved and must be set to 0. 309*1370a723SSascha Wildner /// 310*1370a723SSascha Wildner #define EFI_ACPI_3_0_PCAT_COMPAT BIT0 311*1370a723SSascha Wildner 312*1370a723SSascha Wildner // 313*1370a723SSascha Wildner // Multiple APIC Description Table APIC structure types 314*1370a723SSascha Wildner // All other values between 0x09 an 0xFF are reserved and 315*1370a723SSascha Wildner // will be ignored by OSPM. 316*1370a723SSascha Wildner // 317*1370a723SSascha Wildner #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC 0x00 318*1370a723SSascha Wildner #define EFI_ACPI_3_0_IO_APIC 0x01 319*1370a723SSascha Wildner #define EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE 0x02 320*1370a723SSascha Wildner #define EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03 321*1370a723SSascha Wildner #define EFI_ACPI_3_0_LOCAL_APIC_NMI 0x04 322*1370a723SSascha Wildner #define EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05 323*1370a723SSascha Wildner #define EFI_ACPI_3_0_IO_SAPIC 0x06 324*1370a723SSascha Wildner #define EFI_ACPI_3_0_LOCAL_SAPIC 0x07 325*1370a723SSascha Wildner #define EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES 0x08 326*1370a723SSascha Wildner 327*1370a723SSascha Wildner // 328*1370a723SSascha Wildner // APIC Structure Definitions 329*1370a723SSascha Wildner // 330*1370a723SSascha Wildner 331*1370a723SSascha Wildner /// 332*1370a723SSascha Wildner /// Processor Local APIC Structure Definition 333*1370a723SSascha Wildner /// 334*1370a723SSascha Wildner typedef struct { 335*1370a723SSascha Wildner UINT8 Type; 336*1370a723SSascha Wildner UINT8 Length; 337*1370a723SSascha Wildner UINT8 AcpiProcessorId; 338*1370a723SSascha Wildner UINT8 ApicId; 339*1370a723SSascha Wildner UINT32 Flags; 340*1370a723SSascha Wildner } EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE; 341*1370a723SSascha Wildner 342*1370a723SSascha Wildner /// 343*1370a723SSascha Wildner /// Local APIC Flags. All other bits are reserved and must be 0. 344*1370a723SSascha Wildner /// 345*1370a723SSascha Wildner #define EFI_ACPI_3_0_LOCAL_APIC_ENABLED BIT0 346*1370a723SSascha Wildner 347*1370a723SSascha Wildner /// 348*1370a723SSascha Wildner /// IO APIC Structure 349*1370a723SSascha Wildner /// 350*1370a723SSascha Wildner typedef struct { 351*1370a723SSascha Wildner UINT8 Type; 352*1370a723SSascha Wildner UINT8 Length; 353*1370a723SSascha Wildner UINT8 IoApicId; 354*1370a723SSascha Wildner UINT8 Reserved; 355*1370a723SSascha Wildner UINT32 IoApicAddress; 356*1370a723SSascha Wildner UINT32 GlobalSystemInterruptBase; 357*1370a723SSascha Wildner } EFI_ACPI_3_0_IO_APIC_STRUCTURE; 358*1370a723SSascha Wildner 359*1370a723SSascha Wildner /// 360*1370a723SSascha Wildner /// Interrupt Source Override Structure 361*1370a723SSascha Wildner /// 362*1370a723SSascha Wildner typedef struct { 363*1370a723SSascha Wildner UINT8 Type; 364*1370a723SSascha Wildner UINT8 Length; 365*1370a723SSascha Wildner UINT8 Bus; 366*1370a723SSascha Wildner UINT8 Source; 367*1370a723SSascha Wildner UINT32 GlobalSystemInterrupt; 368*1370a723SSascha Wildner UINT16 Flags; 369*1370a723SSascha Wildner } EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE; 370*1370a723SSascha Wildner 371*1370a723SSascha Wildner /// 372*1370a723SSascha Wildner /// Platform Interrupt Sources Structure Definition 373*1370a723SSascha Wildner /// 374*1370a723SSascha Wildner typedef struct { 375*1370a723SSascha Wildner UINT8 Type; 376*1370a723SSascha Wildner UINT8 Length; 377*1370a723SSascha Wildner UINT16 Flags; 378*1370a723SSascha Wildner UINT8 InterruptType; 379*1370a723SSascha Wildner UINT8 ProcessorId; 380*1370a723SSascha Wildner UINT8 ProcessorEid; 381*1370a723SSascha Wildner UINT8 IoSapicVector; 382*1370a723SSascha Wildner UINT32 GlobalSystemInterrupt; 383*1370a723SSascha Wildner UINT32 PlatformInterruptSourceFlags; 384*1370a723SSascha Wildner UINT8 CpeiProcessorOverride; 385*1370a723SSascha Wildner UINT8 Reserved[31]; 386*1370a723SSascha Wildner } EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE; 387*1370a723SSascha Wildner 388*1370a723SSascha Wildner // 389*1370a723SSascha Wildner // MPS INTI flags. 390*1370a723SSascha Wildner // All other bits are reserved and must be set to 0. 391*1370a723SSascha Wildner // 392*1370a723SSascha Wildner #define EFI_ACPI_3_0_POLARITY (3 << 0) 393*1370a723SSascha Wildner #define EFI_ACPI_3_0_TRIGGER_MODE (3 << 2) 394*1370a723SSascha Wildner 395*1370a723SSascha Wildner /// 396*1370a723SSascha Wildner /// Non-Maskable Interrupt Source Structure 397*1370a723SSascha Wildner /// 398*1370a723SSascha Wildner typedef struct { 399*1370a723SSascha Wildner UINT8 Type; 400*1370a723SSascha Wildner UINT8 Length; 401*1370a723SSascha Wildner UINT16 Flags; 402*1370a723SSascha Wildner UINT32 GlobalSystemInterrupt; 403*1370a723SSascha Wildner } EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE; 404*1370a723SSascha Wildner 405*1370a723SSascha Wildner /// 406*1370a723SSascha Wildner /// Local APIC NMI Structure 407*1370a723SSascha Wildner /// 408*1370a723SSascha Wildner typedef struct { 409*1370a723SSascha Wildner UINT8 Type; 410*1370a723SSascha Wildner UINT8 Length; 411*1370a723SSascha Wildner UINT8 AcpiProcessorId; 412*1370a723SSascha Wildner UINT16 Flags; 413*1370a723SSascha Wildner UINT8 LocalApicLint; 414*1370a723SSascha Wildner } EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE; 415*1370a723SSascha Wildner 416*1370a723SSascha Wildner /// 417*1370a723SSascha Wildner /// Local APIC Address Override Structure 418*1370a723SSascha Wildner /// 419*1370a723SSascha Wildner typedef struct { 420*1370a723SSascha Wildner UINT8 Type; 421*1370a723SSascha Wildner UINT8 Length; 422*1370a723SSascha Wildner UINT16 Reserved; 423*1370a723SSascha Wildner UINT64 LocalApicAddress; 424*1370a723SSascha Wildner } EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE; 425*1370a723SSascha Wildner 426*1370a723SSascha Wildner /// 427*1370a723SSascha Wildner /// IO SAPIC Structure 428*1370a723SSascha Wildner /// 429*1370a723SSascha Wildner typedef struct { 430*1370a723SSascha Wildner UINT8 Type; 431*1370a723SSascha Wildner UINT8 Length; 432*1370a723SSascha Wildner UINT8 IoApicId; 433*1370a723SSascha Wildner UINT8 Reserved; 434*1370a723SSascha Wildner UINT32 GlobalSystemInterruptBase; 435*1370a723SSascha Wildner UINT64 IoSapicAddress; 436*1370a723SSascha Wildner } EFI_ACPI_3_0_IO_SAPIC_STRUCTURE; 437*1370a723SSascha Wildner 438*1370a723SSascha Wildner /// 439*1370a723SSascha Wildner /// Local SAPIC Structure 440*1370a723SSascha Wildner /// This struct followed by a null-terminated ASCII string - ACPI Processor UID String 441*1370a723SSascha Wildner /// 442*1370a723SSascha Wildner typedef struct { 443*1370a723SSascha Wildner UINT8 Type; 444*1370a723SSascha Wildner UINT8 Length; 445*1370a723SSascha Wildner UINT8 AcpiProcessorId; 446*1370a723SSascha Wildner UINT8 LocalSapicId; 447*1370a723SSascha Wildner UINT8 LocalSapicEid; 448*1370a723SSascha Wildner UINT8 Reserved[3]; 449*1370a723SSascha Wildner UINT32 Flags; 450*1370a723SSascha Wildner UINT32 ACPIProcessorUIDValue; 451*1370a723SSascha Wildner } EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE; 452*1370a723SSascha Wildner 453*1370a723SSascha Wildner /// 454*1370a723SSascha Wildner /// Platform Interrupt Sources Structure 455*1370a723SSascha Wildner /// 456*1370a723SSascha Wildner typedef struct { 457*1370a723SSascha Wildner UINT8 Type; 458*1370a723SSascha Wildner UINT8 Length; 459*1370a723SSascha Wildner UINT16 Flags; 460*1370a723SSascha Wildner UINT8 InterruptType; 461*1370a723SSascha Wildner UINT8 ProcessorId; 462*1370a723SSascha Wildner UINT8 ProcessorEid; 463*1370a723SSascha Wildner UINT8 IoSapicVector; 464*1370a723SSascha Wildner UINT32 GlobalSystemInterrupt; 465*1370a723SSascha Wildner UINT32 PlatformInterruptSourceFlags; 466*1370a723SSascha Wildner } EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE; 467*1370a723SSascha Wildner 468*1370a723SSascha Wildner /// 469*1370a723SSascha Wildner /// Platform Interrupt Source Flags. 470*1370a723SSascha Wildner /// All other bits are reserved and must be set to 0. 471*1370a723SSascha Wildner /// 472*1370a723SSascha Wildner #define EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE BIT0 473*1370a723SSascha Wildner 474*1370a723SSascha Wildner /// 475*1370a723SSascha Wildner /// Smart Battery Description Table (SBST) 476*1370a723SSascha Wildner /// 477*1370a723SSascha Wildner typedef struct { 478*1370a723SSascha Wildner EFI_ACPI_DESCRIPTION_HEADER Header; 479*1370a723SSascha Wildner UINT32 WarningEnergyLevel; 480*1370a723SSascha Wildner UINT32 LowEnergyLevel; 481*1370a723SSascha Wildner UINT32 CriticalEnergyLevel; 482*1370a723SSascha Wildner } EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE; 483*1370a723SSascha Wildner 484*1370a723SSascha Wildner /// 485*1370a723SSascha Wildner /// SBST Version (as defined in ACPI 3.0 spec.) 486*1370a723SSascha Wildner /// 487*1370a723SSascha Wildner #define EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01 488*1370a723SSascha Wildner 489*1370a723SSascha Wildner /// 490*1370a723SSascha Wildner /// Embedded Controller Boot Resources Table (ECDT) 491*1370a723SSascha Wildner /// The table is followed by a null terminated ASCII string that contains 492*1370a723SSascha Wildner /// a fully qualified reference to the name space object. 493*1370a723SSascha Wildner /// 494*1370a723SSascha Wildner typedef struct { 495*1370a723SSascha Wildner EFI_ACPI_DESCRIPTION_HEADER Header; 496*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcControl; 497*1370a723SSascha Wildner EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcData; 498*1370a723SSascha Wildner UINT32 Uid; 499*1370a723SSascha Wildner UINT8 GpeBit; 500*1370a723SSascha Wildner } EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE; 501*1370a723SSascha Wildner 502*1370a723SSascha Wildner /// 503*1370a723SSascha Wildner /// ECDT Version (as defined in ACPI 3.0 spec.) 504*1370a723SSascha Wildner /// 505*1370a723SSascha Wildner #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01 506*1370a723SSascha Wildner 507*1370a723SSascha Wildner /// 508*1370a723SSascha Wildner /// System Resource Affinity Table (SRAT. The rest of the table 509*1370a723SSascha Wildner /// must be defined in a platform specific manner. 510*1370a723SSascha Wildner /// 511*1370a723SSascha Wildner typedef struct { 512*1370a723SSascha Wildner EFI_ACPI_DESCRIPTION_HEADER Header; 513*1370a723SSascha Wildner UINT32 Reserved1; ///< Must be set to 1 514*1370a723SSascha Wildner UINT64 Reserved2; 515*1370a723SSascha Wildner } EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER; 516*1370a723SSascha Wildner 517*1370a723SSascha Wildner /// 518*1370a723SSascha Wildner /// SRAT Version (as defined in ACPI 3.0 spec.) 519*1370a723SSascha Wildner /// 520*1370a723SSascha Wildner #define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x02 521*1370a723SSascha Wildner 522*1370a723SSascha Wildner // 523*1370a723SSascha Wildner // SRAT structure types. 524*1370a723SSascha Wildner // All other values between 0x02 an 0xFF are reserved and 525*1370a723SSascha Wildner // will be ignored by OSPM. 526*1370a723SSascha Wildner // 527*1370a723SSascha Wildner #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00 528*1370a723SSascha Wildner #define EFI_ACPI_3_0_MEMORY_AFFINITY 0x01 529*1370a723SSascha Wildner 530*1370a723SSascha Wildner /// 531*1370a723SSascha Wildner /// Processor Local APIC/SAPIC Affinity Structure Definition 532*1370a723SSascha Wildner /// 533*1370a723SSascha Wildner typedef struct { 534*1370a723SSascha Wildner UINT8 Type; 535*1370a723SSascha Wildner UINT8 Length; 536*1370a723SSascha Wildner UINT8 ProximityDomain7To0; 537*1370a723SSascha Wildner UINT8 ApicId; 538*1370a723SSascha Wildner UINT32 Flags; 539*1370a723SSascha Wildner UINT8 LocalSapicEid; 540*1370a723SSascha Wildner UINT8 ProximityDomain31To8[3]; 541*1370a723SSascha Wildner UINT8 Reserved[4]; 542*1370a723SSascha Wildner } EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE; 543*1370a723SSascha Wildner 544*1370a723SSascha Wildner /// 545*1370a723SSascha Wildner /// Local APIC/SAPIC Flags. All other bits are reserved and must be 0. 546*1370a723SSascha Wildner /// 547*1370a723SSascha Wildner #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0) 548*1370a723SSascha Wildner 549*1370a723SSascha Wildner /// 550*1370a723SSascha Wildner /// Memory Affinity Structure Definition 551*1370a723SSascha Wildner /// 552*1370a723SSascha Wildner typedef struct { 553*1370a723SSascha Wildner UINT8 Type; 554*1370a723SSascha Wildner UINT8 Length; 555*1370a723SSascha Wildner UINT32 ProximityDomain; 556*1370a723SSascha Wildner UINT16 Reserved1; 557*1370a723SSascha Wildner UINT32 AddressBaseLow; 558*1370a723SSascha Wildner UINT32 AddressBaseHigh; 559*1370a723SSascha Wildner UINT32 LengthLow; 560*1370a723SSascha Wildner UINT32 LengthHigh; 561*1370a723SSascha Wildner UINT32 Reserved2; 562*1370a723SSascha Wildner UINT32 Flags; 563*1370a723SSascha Wildner UINT64 Reserved3; 564*1370a723SSascha Wildner } EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE; 565*1370a723SSascha Wildner 566*1370a723SSascha Wildner // 567*1370a723SSascha Wildner // Memory Flags. All other bits are reserved and must be 0. 568*1370a723SSascha Wildner // 569*1370a723SSascha Wildner #define EFI_ACPI_3_0_MEMORY_ENABLED (1 << 0) 570*1370a723SSascha Wildner #define EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE (1 << 1) 571*1370a723SSascha Wildner #define EFI_ACPI_3_0_MEMORY_NONVOLATILE (1 << 2) 572*1370a723SSascha Wildner 573*1370a723SSascha Wildner /// 574*1370a723SSascha Wildner /// System Locality Distance Information Table (SLIT). 575*1370a723SSascha Wildner /// The rest of the table is a matrix. 576*1370a723SSascha Wildner /// 577*1370a723SSascha Wildner typedef struct { 578*1370a723SSascha Wildner EFI_ACPI_DESCRIPTION_HEADER Header; 579*1370a723SSascha Wildner UINT64 NumberOfSystemLocalities; 580*1370a723SSascha Wildner } EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER; 581*1370a723SSascha Wildner 582*1370a723SSascha Wildner /// 583*1370a723SSascha Wildner /// SLIT Version (as defined in ACPI 3.0 spec.) 584*1370a723SSascha Wildner /// 585*1370a723SSascha Wildner #define EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01 586*1370a723SSascha Wildner 587*1370a723SSascha Wildner // 588*1370a723SSascha Wildner // Known table signatures 589*1370a723SSascha Wildner // 590*1370a723SSascha Wildner 591*1370a723SSascha Wildner /// 592*1370a723SSascha Wildner /// "RSD PTR " Root System Description Pointer 593*1370a723SSascha Wildner /// 594*1370a723SSascha Wildner #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') 595*1370a723SSascha Wildner 596*1370a723SSascha Wildner /// 597*1370a723SSascha Wildner /// "APIC" Multiple APIC Description Table 598*1370a723SSascha Wildner /// 599*1370a723SSascha Wildner #define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C') 600*1370a723SSascha Wildner 601*1370a723SSascha Wildner /// 602*1370a723SSascha Wildner /// "DSDT" Differentiated System Description Table 603*1370a723SSascha Wildner /// 604*1370a723SSascha Wildner #define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T') 605*1370a723SSascha Wildner 606*1370a723SSascha Wildner /// 607*1370a723SSascha Wildner /// "ECDT" Embedded Controller Boot Resources Table 608*1370a723SSascha Wildner /// 609*1370a723SSascha Wildner #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T') 610*1370a723SSascha Wildner 611*1370a723SSascha Wildner /// 612*1370a723SSascha Wildner /// "FACP" Fixed ACPI Description Table 613*1370a723SSascha Wildner /// 614*1370a723SSascha Wildner #define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P') 615*1370a723SSascha Wildner 616*1370a723SSascha Wildner /// 617*1370a723SSascha Wildner /// "FACS" Firmware ACPI Control Structure 618*1370a723SSascha Wildner /// 619*1370a723SSascha Wildner #define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S') 620*1370a723SSascha Wildner 621*1370a723SSascha Wildner /// 622*1370a723SSascha Wildner /// "PSDT" Persistent System Description Table 623*1370a723SSascha Wildner /// 624*1370a723SSascha Wildner #define EFI_ACPI_3_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T') 625*1370a723SSascha Wildner 626*1370a723SSascha Wildner /// 627*1370a723SSascha Wildner /// "RSDT" Root System Description Table 628*1370a723SSascha Wildner /// 629*1370a723SSascha Wildner #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T') 630*1370a723SSascha Wildner 631*1370a723SSascha Wildner /// 632*1370a723SSascha Wildner /// "SBST" Smart Battery Specification Table 633*1370a723SSascha Wildner /// 634*1370a723SSascha Wildner #define EFI_ACPI_3_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T') 635*1370a723SSascha Wildner 636*1370a723SSascha Wildner /// 637*1370a723SSascha Wildner /// "SLIT" System Locality Information Table 638*1370a723SSascha Wildner /// 639*1370a723SSascha Wildner #define EFI_ACPI_3_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T') 640*1370a723SSascha Wildner 641*1370a723SSascha Wildner /// 642*1370a723SSascha Wildner /// "SRAT" System Resource Affinity Table 643*1370a723SSascha Wildner /// 644*1370a723SSascha Wildner #define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T') 645*1370a723SSascha Wildner 646*1370a723SSascha Wildner /// 647*1370a723SSascha Wildner /// "SSDT" Secondary System Description Table 648*1370a723SSascha Wildner /// 649*1370a723SSascha Wildner #define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T') 650*1370a723SSascha Wildner 651*1370a723SSascha Wildner /// 652*1370a723SSascha Wildner /// "XSDT" Extended System Description Table 653*1370a723SSascha Wildner /// 654*1370a723SSascha Wildner #define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T') 655*1370a723SSascha Wildner 656*1370a723SSascha Wildner /// 657*1370a723SSascha Wildner /// "BOOT" MS Simple Boot Spec 658*1370a723SSascha Wildner /// 659*1370a723SSascha Wildner #define EFI_ACPI_3_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T') 660*1370a723SSascha Wildner 661*1370a723SSascha Wildner /// 662*1370a723SSascha Wildner /// "CPEP" Corrected Platform Error Polling Table 663*1370a723SSascha Wildner /// 664*1370a723SSascha Wildner #define EFI_ACPI_3_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P') 665*1370a723SSascha Wildner 666*1370a723SSascha Wildner /// 667*1370a723SSascha Wildner /// "DBGP" MS Debug Port Spec 668*1370a723SSascha Wildner /// 669*1370a723SSascha Wildner #define EFI_ACPI_3_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P') 670*1370a723SSascha Wildner 671*1370a723SSascha Wildner /// 672*1370a723SSascha Wildner /// "ETDT" Event Timer Description Table 673*1370a723SSascha Wildner /// 674*1370a723SSascha Wildner #define EFI_ACPI_3_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T') 675*1370a723SSascha Wildner 676*1370a723SSascha Wildner /// 677*1370a723SSascha Wildner /// "HPET" IA-PC High Precision Event Timer Table 678*1370a723SSascha Wildner /// 679*1370a723SSascha Wildner #define EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T') 680*1370a723SSascha Wildner 681*1370a723SSascha Wildner /// 682*1370a723SSascha Wildner /// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table 683*1370a723SSascha Wildner /// 684*1370a723SSascha Wildner #define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G') 685*1370a723SSascha Wildner 686*1370a723SSascha Wildner /// 687*1370a723SSascha Wildner /// "SPCR" Serial Port Console Redirection Table 688*1370a723SSascha Wildner /// 689*1370a723SSascha Wildner #define EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') 690*1370a723SSascha Wildner 691*1370a723SSascha Wildner /// 692*1370a723SSascha Wildner /// "SPMI" Server Platform Management Interface Table 693*1370a723SSascha Wildner /// 694*1370a723SSascha Wildner #define EFI_ACPI_3_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I') 695*1370a723SSascha Wildner 696*1370a723SSascha Wildner /// 697*1370a723SSascha Wildner /// "TCPA" Trusted Computing Platform Alliance Capabilities Table 698*1370a723SSascha Wildner /// 699*1370a723SSascha Wildner #define EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A') 700*1370a723SSascha Wildner 701*1370a723SSascha Wildner /// 702*1370a723SSascha Wildner /// "WDRT" Watchdog Resource Table 703*1370a723SSascha Wildner /// 704*1370a723SSascha Wildner #define EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T') 705*1370a723SSascha Wildner 706*1370a723SSascha Wildner /// 707*1370a723SSascha Wildner /// "WDAT" Watchdog Action Table 708*1370a723SSascha Wildner /// 709*1370a723SSascha Wildner #define EFI_ACPI_3_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T') 710*1370a723SSascha Wildner 711*1370a723SSascha Wildner /// 712*1370a723SSascha Wildner /// "WSPT" Windows Specific Properties Table 713*1370a723SSascha Wildner /// 714*1370a723SSascha Wildner #define EFI_ACPI_3_0_WINDOWS_SPECIFIC_PROPERTIES_TABLE_SIGNATURE SIGNATURE_32('W', 'S', 'P', 'T') 715*1370a723SSascha Wildner 716*1370a723SSascha Wildner /// 717*1370a723SSascha Wildner /// "iBFT" iSCSI Boot Firmware Table 718*1370a723SSascha Wildner /// 719*1370a723SSascha Wildner #define EFI_ACPI_3_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T') 720*1370a723SSascha Wildner 721*1370a723SSascha Wildner #pragma pack() 722*1370a723SSascha Wildner 723*1370a723SSascha Wildner #endif 724