1*f334afcfSToomas Soome /** @file 2*f334afcfSToomas Soome ACPI 4.0 definitions from the ACPI Specification Revision 4.0a April 5, 2010 3*f334afcfSToomas Soome 4*f334afcfSToomas Soome Copyright (c) 2010 - 2022, Intel Corporation. All rights reserved.<BR> 5*f334afcfSToomas Soome SPDX-License-Identifier: BSD-2-Clause-Patent 6*f334afcfSToomas Soome **/ 7*f334afcfSToomas Soome 8*f334afcfSToomas Soome #ifndef _ACPI_4_0_H_ 9*f334afcfSToomas Soome #define _ACPI_4_0_H_ 10*f334afcfSToomas Soome 11*f334afcfSToomas Soome #include <IndustryStandard/Acpi30.h> 12*f334afcfSToomas Soome 13*f334afcfSToomas Soome // 14*f334afcfSToomas Soome // Ensure proper structure formats 15*f334afcfSToomas Soome // 16*f334afcfSToomas Soome #pragma pack(1) 17*f334afcfSToomas Soome 18*f334afcfSToomas Soome /// 19*f334afcfSToomas Soome /// ACPI 4.0 Generic Address Space definition 20*f334afcfSToomas Soome /// 21*f334afcfSToomas Soome typedef struct { 22*f334afcfSToomas Soome UINT8 AddressSpaceId; 23*f334afcfSToomas Soome UINT8 RegisterBitWidth; 24*f334afcfSToomas Soome UINT8 RegisterBitOffset; 25*f334afcfSToomas Soome UINT8 AccessSize; 26*f334afcfSToomas Soome UINT64 Address; 27*f334afcfSToomas Soome } EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE; 28*f334afcfSToomas Soome 29*f334afcfSToomas Soome // 30*f334afcfSToomas Soome // Generic Address Space Address IDs 31*f334afcfSToomas Soome // 32*f334afcfSToomas Soome #define EFI_ACPI_4_0_SYSTEM_MEMORY 0 33*f334afcfSToomas Soome #define EFI_ACPI_4_0_SYSTEM_IO 1 34*f334afcfSToomas Soome #define EFI_ACPI_4_0_PCI_CONFIGURATION_SPACE 2 35*f334afcfSToomas Soome #define EFI_ACPI_4_0_EMBEDDED_CONTROLLER 3 36*f334afcfSToomas Soome #define EFI_ACPI_4_0_SMBUS 4 37*f334afcfSToomas Soome #define EFI_ACPI_4_0_FUNCTIONAL_FIXED_HARDWARE 0x7F 38*f334afcfSToomas Soome 39*f334afcfSToomas Soome // 40*f334afcfSToomas Soome // Generic Address Space Access Sizes 41*f334afcfSToomas Soome // 42*f334afcfSToomas Soome #define EFI_ACPI_4_0_UNDEFINED 0 43*f334afcfSToomas Soome #define EFI_ACPI_4_0_BYTE 1 44*f334afcfSToomas Soome #define EFI_ACPI_4_0_WORD 2 45*f334afcfSToomas Soome #define EFI_ACPI_4_0_DWORD 3 46*f334afcfSToomas Soome #define EFI_ACPI_4_0_QWORD 4 47*f334afcfSToomas Soome 48*f334afcfSToomas Soome // 49*f334afcfSToomas Soome // ACPI 4.0 table structures 50*f334afcfSToomas Soome // 51*f334afcfSToomas Soome 52*f334afcfSToomas Soome /// 53*f334afcfSToomas Soome /// Root System Description Pointer Structure 54*f334afcfSToomas Soome /// 55*f334afcfSToomas Soome typedef struct { 56*f334afcfSToomas Soome UINT64 Signature; 57*f334afcfSToomas Soome UINT8 Checksum; 58*f334afcfSToomas Soome UINT8 OemId[6]; 59*f334afcfSToomas Soome UINT8 Revision; 60*f334afcfSToomas Soome UINT32 RsdtAddress; 61*f334afcfSToomas Soome UINT32 Length; 62*f334afcfSToomas Soome UINT64 XsdtAddress; 63*f334afcfSToomas Soome UINT8 ExtendedChecksum; 64*f334afcfSToomas Soome UINT8 Reserved[3]; 65*f334afcfSToomas Soome } EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER; 66*f334afcfSToomas Soome 67*f334afcfSToomas Soome /// 68*f334afcfSToomas Soome /// RSD_PTR Revision (as defined in ACPI 4.0b spec.) 69*f334afcfSToomas Soome /// 70*f334afcfSToomas Soome #define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 4.0a) says current value is 2 71*f334afcfSToomas Soome 72*f334afcfSToomas Soome /// 73*f334afcfSToomas Soome /// Common table header, this prefaces all ACPI tables, including FACS, but 74*f334afcfSToomas Soome /// excluding the RSD PTR structure 75*f334afcfSToomas Soome /// 76*f334afcfSToomas Soome typedef struct { 77*f334afcfSToomas Soome UINT32 Signature; 78*f334afcfSToomas Soome UINT32 Length; 79*f334afcfSToomas Soome } EFI_ACPI_4_0_COMMON_HEADER; 80*f334afcfSToomas Soome 81*f334afcfSToomas Soome // 82*f334afcfSToomas Soome // Root System Description Table 83*f334afcfSToomas Soome // No definition needed as it is a common description table header, the same with 84*f334afcfSToomas Soome // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. 85*f334afcfSToomas Soome // 86*f334afcfSToomas Soome 87*f334afcfSToomas Soome /// 88*f334afcfSToomas Soome /// RSDT Revision (as defined in ACPI 4.0 spec.) 89*f334afcfSToomas Soome /// 90*f334afcfSToomas Soome #define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 91*f334afcfSToomas Soome 92*f334afcfSToomas Soome // 93*f334afcfSToomas Soome // Extended System Description Table 94*f334afcfSToomas Soome // No definition needed as it is a common description table header, the same with 95*f334afcfSToomas Soome // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. 96*f334afcfSToomas Soome // 97*f334afcfSToomas Soome 98*f334afcfSToomas Soome /// 99*f334afcfSToomas Soome /// XSDT Revision (as defined in ACPI 4.0 spec.) 100*f334afcfSToomas Soome /// 101*f334afcfSToomas Soome #define EFI_ACPI_4_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 102*f334afcfSToomas Soome 103*f334afcfSToomas Soome /// 104*f334afcfSToomas Soome /// Fixed ACPI Description Table Structure (FADT) 105*f334afcfSToomas Soome /// 106*f334afcfSToomas Soome typedef struct { 107*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 108*f334afcfSToomas Soome UINT32 FirmwareCtrl; 109*f334afcfSToomas Soome UINT32 Dsdt; 110*f334afcfSToomas Soome UINT8 Reserved0; 111*f334afcfSToomas Soome UINT8 PreferredPmProfile; 112*f334afcfSToomas Soome UINT16 SciInt; 113*f334afcfSToomas Soome UINT32 SmiCmd; 114*f334afcfSToomas Soome UINT8 AcpiEnable; 115*f334afcfSToomas Soome UINT8 AcpiDisable; 116*f334afcfSToomas Soome UINT8 S4BiosReq; 117*f334afcfSToomas Soome UINT8 PstateCnt; 118*f334afcfSToomas Soome UINT32 Pm1aEvtBlk; 119*f334afcfSToomas Soome UINT32 Pm1bEvtBlk; 120*f334afcfSToomas Soome UINT32 Pm1aCntBlk; 121*f334afcfSToomas Soome UINT32 Pm1bCntBlk; 122*f334afcfSToomas Soome UINT32 Pm2CntBlk; 123*f334afcfSToomas Soome UINT32 PmTmrBlk; 124*f334afcfSToomas Soome UINT32 Gpe0Blk; 125*f334afcfSToomas Soome UINT32 Gpe1Blk; 126*f334afcfSToomas Soome UINT8 Pm1EvtLen; 127*f334afcfSToomas Soome UINT8 Pm1CntLen; 128*f334afcfSToomas Soome UINT8 Pm2CntLen; 129*f334afcfSToomas Soome UINT8 PmTmrLen; 130*f334afcfSToomas Soome UINT8 Gpe0BlkLen; 131*f334afcfSToomas Soome UINT8 Gpe1BlkLen; 132*f334afcfSToomas Soome UINT8 Gpe1Base; 133*f334afcfSToomas Soome UINT8 CstCnt; 134*f334afcfSToomas Soome UINT16 PLvl2Lat; 135*f334afcfSToomas Soome UINT16 PLvl3Lat; 136*f334afcfSToomas Soome UINT16 FlushSize; 137*f334afcfSToomas Soome UINT16 FlushStride; 138*f334afcfSToomas Soome UINT8 DutyOffset; 139*f334afcfSToomas Soome UINT8 DutyWidth; 140*f334afcfSToomas Soome UINT8 DayAlrm; 141*f334afcfSToomas Soome UINT8 MonAlrm; 142*f334afcfSToomas Soome UINT8 Century; 143*f334afcfSToomas Soome UINT16 IaPcBootArch; 144*f334afcfSToomas Soome UINT8 Reserved1; 145*f334afcfSToomas Soome UINT32 Flags; 146*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE ResetReg; 147*f334afcfSToomas Soome UINT8 ResetValue; 148*f334afcfSToomas Soome UINT8 Reserved2[3]; 149*f334afcfSToomas Soome UINT64 XFirmwareCtrl; 150*f334afcfSToomas Soome UINT64 XDsdt; 151*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk; 152*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk; 153*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk; 154*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk; 155*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk; 156*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk; 157*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk; 158*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk; 159*f334afcfSToomas Soome } EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE; 160*f334afcfSToomas Soome 161*f334afcfSToomas Soome /// 162*f334afcfSToomas Soome /// FADT Version (as defined in ACPI 4.0 spec.) 163*f334afcfSToomas Soome /// 164*f334afcfSToomas Soome #define EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x04 165*f334afcfSToomas Soome 166*f334afcfSToomas Soome // 167*f334afcfSToomas Soome // Fixed ACPI Description Table Preferred Power Management Profile 168*f334afcfSToomas Soome // 169*f334afcfSToomas Soome #define EFI_ACPI_4_0_PM_PROFILE_UNSPECIFIED 0 170*f334afcfSToomas Soome #define EFI_ACPI_4_0_PM_PROFILE_DESKTOP 1 171*f334afcfSToomas Soome #define EFI_ACPI_4_0_PM_PROFILE_MOBILE 2 172*f334afcfSToomas Soome #define EFI_ACPI_4_0_PM_PROFILE_WORKSTATION 3 173*f334afcfSToomas Soome #define EFI_ACPI_4_0_PM_PROFILE_ENTERPRISE_SERVER 4 174*f334afcfSToomas Soome #define EFI_ACPI_4_0_PM_PROFILE_SOHO_SERVER 5 175*f334afcfSToomas Soome #define EFI_ACPI_4_0_PM_PROFILE_APPLIANCE_PC 6 176*f334afcfSToomas Soome #define EFI_ACPI_4_0_PM_PROFILE_PERFORMANCE_SERVER 7 177*f334afcfSToomas Soome 178*f334afcfSToomas Soome // 179*f334afcfSToomas Soome // Fixed ACPI Description Table Boot Architecture Flags 180*f334afcfSToomas Soome // All other bits are reserved and must be set to 0. 181*f334afcfSToomas Soome // 182*f334afcfSToomas Soome #define EFI_ACPI_4_0_LEGACY_DEVICES BIT0 183*f334afcfSToomas Soome #define EFI_ACPI_4_0_8042 BIT1 184*f334afcfSToomas Soome #define EFI_ACPI_4_0_VGA_NOT_PRESENT BIT2 185*f334afcfSToomas Soome #define EFI_ACPI_4_0_MSI_NOT_SUPPORTED BIT3 186*f334afcfSToomas Soome #define EFI_ACPI_4_0_PCIE_ASPM_CONTROLS BIT4 187*f334afcfSToomas Soome 188*f334afcfSToomas Soome // 189*f334afcfSToomas Soome // Fixed ACPI Description Table Fixed Feature Flags 190*f334afcfSToomas Soome // All other bits are reserved and must be set to 0. 191*f334afcfSToomas Soome // 192*f334afcfSToomas Soome #define EFI_ACPI_4_0_WBINVD BIT0 193*f334afcfSToomas Soome #define EFI_ACPI_4_0_WBINVD_FLUSH BIT1 194*f334afcfSToomas Soome #define EFI_ACPI_4_0_PROC_C1 BIT2 195*f334afcfSToomas Soome #define EFI_ACPI_4_0_P_LVL2_UP BIT3 196*f334afcfSToomas Soome #define EFI_ACPI_4_0_PWR_BUTTON BIT4 197*f334afcfSToomas Soome #define EFI_ACPI_4_0_SLP_BUTTON BIT5 198*f334afcfSToomas Soome #define EFI_ACPI_4_0_FIX_RTC BIT6 199*f334afcfSToomas Soome #define EFI_ACPI_4_0_RTC_S4 BIT7 200*f334afcfSToomas Soome #define EFI_ACPI_4_0_TMR_VAL_EXT BIT8 201*f334afcfSToomas Soome #define EFI_ACPI_4_0_DCK_CAP BIT9 202*f334afcfSToomas Soome #define EFI_ACPI_4_0_RESET_REG_SUP BIT10 203*f334afcfSToomas Soome #define EFI_ACPI_4_0_SEALED_CASE BIT11 204*f334afcfSToomas Soome #define EFI_ACPI_4_0_HEADLESS BIT12 205*f334afcfSToomas Soome #define EFI_ACPI_4_0_CPU_SW_SLP BIT13 206*f334afcfSToomas Soome #define EFI_ACPI_4_0_PCI_EXP_WAK BIT14 207*f334afcfSToomas Soome #define EFI_ACPI_4_0_USE_PLATFORM_CLOCK BIT15 208*f334afcfSToomas Soome #define EFI_ACPI_4_0_S4_RTC_STS_VALID BIT16 209*f334afcfSToomas Soome #define EFI_ACPI_4_0_REMOTE_POWER_ON_CAPABLE BIT17 210*f334afcfSToomas Soome #define EFI_ACPI_4_0_FORCE_APIC_CLUSTER_MODEL BIT18 211*f334afcfSToomas Soome #define EFI_ACPI_4_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19 212*f334afcfSToomas Soome 213*f334afcfSToomas Soome /// 214*f334afcfSToomas Soome /// Firmware ACPI Control Structure 215*f334afcfSToomas Soome /// 216*f334afcfSToomas Soome typedef struct { 217*f334afcfSToomas Soome UINT32 Signature; 218*f334afcfSToomas Soome UINT32 Length; 219*f334afcfSToomas Soome UINT32 HardwareSignature; 220*f334afcfSToomas Soome UINT32 FirmwareWakingVector; 221*f334afcfSToomas Soome UINT32 GlobalLock; 222*f334afcfSToomas Soome UINT32 Flags; 223*f334afcfSToomas Soome UINT64 XFirmwareWakingVector; 224*f334afcfSToomas Soome UINT8 Version; 225*f334afcfSToomas Soome UINT8 Reserved0[3]; 226*f334afcfSToomas Soome UINT32 OspmFlags; 227*f334afcfSToomas Soome UINT8 Reserved1[24]; 228*f334afcfSToomas Soome } EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE; 229*f334afcfSToomas Soome 230*f334afcfSToomas Soome /// 231*f334afcfSToomas Soome /// FACS Version (as defined in ACPI 4.0 spec.) 232*f334afcfSToomas Soome /// 233*f334afcfSToomas Soome #define EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02 234*f334afcfSToomas Soome 235*f334afcfSToomas Soome /// 236*f334afcfSToomas Soome /// Firmware Control Structure Feature Flags 237*f334afcfSToomas Soome /// All other bits are reserved and must be set to 0. 238*f334afcfSToomas Soome /// 239*f334afcfSToomas Soome #define EFI_ACPI_4_0_S4BIOS_F BIT0 240*f334afcfSToomas Soome #define EFI_ACPI_4_0_64BIT_WAKE_SUPPORTED_F BIT1 241*f334afcfSToomas Soome 242*f334afcfSToomas Soome /// 243*f334afcfSToomas Soome /// OSPM Enabled Firmware Control Structure Flags 244*f334afcfSToomas Soome /// All other bits are reserved and must be set to 0. 245*f334afcfSToomas Soome /// 246*f334afcfSToomas Soome #define EFI_ACPI_4_0_OSPM_64BIT_WAKE__F BIT0 247*f334afcfSToomas Soome 248*f334afcfSToomas Soome // 249*f334afcfSToomas Soome // Differentiated System Description Table, 250*f334afcfSToomas Soome // Secondary System Description Table 251*f334afcfSToomas Soome // and Persistent System Description Table, 252*f334afcfSToomas Soome // no definition needed as they are common description table header, the same with 253*f334afcfSToomas Soome // EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block. 254*f334afcfSToomas Soome // 255*f334afcfSToomas Soome #define EFI_ACPI_4_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02 256*f334afcfSToomas Soome #define EFI_ACPI_4_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02 257*f334afcfSToomas Soome 258*f334afcfSToomas Soome /// 259*f334afcfSToomas Soome /// Multiple APIC Description Table header definition. The rest of the table 260*f334afcfSToomas Soome /// must be defined in a platform specific manner. 261*f334afcfSToomas Soome /// 262*f334afcfSToomas Soome typedef struct { 263*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 264*f334afcfSToomas Soome UINT32 LocalApicAddress; 265*f334afcfSToomas Soome UINT32 Flags; 266*f334afcfSToomas Soome } EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER; 267*f334afcfSToomas Soome 268*f334afcfSToomas Soome /// 269*f334afcfSToomas Soome /// MADT Revision (as defined in ACPI 4.0 spec.) 270*f334afcfSToomas Soome /// 271*f334afcfSToomas Soome #define EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x03 272*f334afcfSToomas Soome 273*f334afcfSToomas Soome /// 274*f334afcfSToomas Soome /// Multiple APIC Flags 275*f334afcfSToomas Soome /// All other bits are reserved and must be set to 0. 276*f334afcfSToomas Soome /// 277*f334afcfSToomas Soome #define EFI_ACPI_4_0_PCAT_COMPAT BIT0 278*f334afcfSToomas Soome 279*f334afcfSToomas Soome // 280*f334afcfSToomas Soome // Multiple APIC Description Table APIC structure types 281*f334afcfSToomas Soome // All other values between 0x0B an 0xFF are reserved and 282*f334afcfSToomas Soome // will be ignored by OSPM. 283*f334afcfSToomas Soome // 284*f334afcfSToomas Soome #define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC 0x00 285*f334afcfSToomas Soome #define EFI_ACPI_4_0_IO_APIC 0x01 286*f334afcfSToomas Soome #define EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE 0x02 287*f334afcfSToomas Soome #define EFI_ACPI_4_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03 288*f334afcfSToomas Soome #define EFI_ACPI_4_0_LOCAL_APIC_NMI 0x04 289*f334afcfSToomas Soome #define EFI_ACPI_4_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05 290*f334afcfSToomas Soome #define EFI_ACPI_4_0_IO_SAPIC 0x06 291*f334afcfSToomas Soome #define EFI_ACPI_4_0_LOCAL_SAPIC 0x07 292*f334afcfSToomas Soome #define EFI_ACPI_4_0_PLATFORM_INTERRUPT_SOURCES 0x08 293*f334afcfSToomas Soome #define EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC 0x09 294*f334afcfSToomas Soome #define EFI_ACPI_4_0_LOCAL_X2APIC_NMI 0x0A 295*f334afcfSToomas Soome 296*f334afcfSToomas Soome // 297*f334afcfSToomas Soome // APIC Structure Definitions 298*f334afcfSToomas Soome // 299*f334afcfSToomas Soome 300*f334afcfSToomas Soome /// 301*f334afcfSToomas Soome /// Processor Local APIC Structure Definition 302*f334afcfSToomas Soome /// 303*f334afcfSToomas Soome typedef struct { 304*f334afcfSToomas Soome UINT8 Type; 305*f334afcfSToomas Soome UINT8 Length; 306*f334afcfSToomas Soome UINT8 AcpiProcessorId; 307*f334afcfSToomas Soome UINT8 ApicId; 308*f334afcfSToomas Soome UINT32 Flags; 309*f334afcfSToomas Soome } EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_STRUCTURE; 310*f334afcfSToomas Soome 311*f334afcfSToomas Soome /// 312*f334afcfSToomas Soome /// Local APIC Flags. All other bits are reserved and must be 0. 313*f334afcfSToomas Soome /// 314*f334afcfSToomas Soome #define EFI_ACPI_4_0_LOCAL_APIC_ENABLED BIT0 315*f334afcfSToomas Soome 316*f334afcfSToomas Soome /// 317*f334afcfSToomas Soome /// IO APIC Structure 318*f334afcfSToomas Soome /// 319*f334afcfSToomas Soome typedef struct { 320*f334afcfSToomas Soome UINT8 Type; 321*f334afcfSToomas Soome UINT8 Length; 322*f334afcfSToomas Soome UINT8 IoApicId; 323*f334afcfSToomas Soome UINT8 Reserved; 324*f334afcfSToomas Soome UINT32 IoApicAddress; 325*f334afcfSToomas Soome UINT32 GlobalSystemInterruptBase; 326*f334afcfSToomas Soome } EFI_ACPI_4_0_IO_APIC_STRUCTURE; 327*f334afcfSToomas Soome 328*f334afcfSToomas Soome /// 329*f334afcfSToomas Soome /// Interrupt Source Override Structure 330*f334afcfSToomas Soome /// 331*f334afcfSToomas Soome typedef struct { 332*f334afcfSToomas Soome UINT8 Type; 333*f334afcfSToomas Soome UINT8 Length; 334*f334afcfSToomas Soome UINT8 Bus; 335*f334afcfSToomas Soome UINT8 Source; 336*f334afcfSToomas Soome UINT32 GlobalSystemInterrupt; 337*f334afcfSToomas Soome UINT16 Flags; 338*f334afcfSToomas Soome } EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE; 339*f334afcfSToomas Soome 340*f334afcfSToomas Soome /// 341*f334afcfSToomas Soome /// Platform Interrupt Sources Structure Definition 342*f334afcfSToomas Soome /// 343*f334afcfSToomas Soome typedef struct { 344*f334afcfSToomas Soome UINT8 Type; 345*f334afcfSToomas Soome UINT8 Length; 346*f334afcfSToomas Soome UINT16 Flags; 347*f334afcfSToomas Soome UINT8 InterruptType; 348*f334afcfSToomas Soome UINT8 ProcessorId; 349*f334afcfSToomas Soome UINT8 ProcessorEid; 350*f334afcfSToomas Soome UINT8 IoSapicVector; 351*f334afcfSToomas Soome UINT32 GlobalSystemInterrupt; 352*f334afcfSToomas Soome UINT32 PlatformInterruptSourceFlags; 353*f334afcfSToomas Soome UINT8 CpeiProcessorOverride; 354*f334afcfSToomas Soome UINT8 Reserved[31]; 355*f334afcfSToomas Soome } EFI_ACPI_4_0_PLATFORM_INTERRUPT_APIC_STRUCTURE; 356*f334afcfSToomas Soome 357*f334afcfSToomas Soome // 358*f334afcfSToomas Soome // MPS INTI flags. 359*f334afcfSToomas Soome // All other bits are reserved and must be set to 0. 360*f334afcfSToomas Soome // 361*f334afcfSToomas Soome #define EFI_ACPI_4_0_POLARITY (3 << 0) 362*f334afcfSToomas Soome #define EFI_ACPI_4_0_TRIGGER_MODE (3 << 2) 363*f334afcfSToomas Soome 364*f334afcfSToomas Soome /// 365*f334afcfSToomas Soome /// Non-Maskable Interrupt Source Structure 366*f334afcfSToomas Soome /// 367*f334afcfSToomas Soome typedef struct { 368*f334afcfSToomas Soome UINT8 Type; 369*f334afcfSToomas Soome UINT8 Length; 370*f334afcfSToomas Soome UINT16 Flags; 371*f334afcfSToomas Soome UINT32 GlobalSystemInterrupt; 372*f334afcfSToomas Soome } EFI_ACPI_4_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE; 373*f334afcfSToomas Soome 374*f334afcfSToomas Soome /// 375*f334afcfSToomas Soome /// Local APIC NMI Structure 376*f334afcfSToomas Soome /// 377*f334afcfSToomas Soome typedef struct { 378*f334afcfSToomas Soome UINT8 Type; 379*f334afcfSToomas Soome UINT8 Length; 380*f334afcfSToomas Soome UINT8 AcpiProcessorId; 381*f334afcfSToomas Soome UINT16 Flags; 382*f334afcfSToomas Soome UINT8 LocalApicLint; 383*f334afcfSToomas Soome } EFI_ACPI_4_0_LOCAL_APIC_NMI_STRUCTURE; 384*f334afcfSToomas Soome 385*f334afcfSToomas Soome /// 386*f334afcfSToomas Soome /// Local APIC Address Override Structure 387*f334afcfSToomas Soome /// 388*f334afcfSToomas Soome typedef struct { 389*f334afcfSToomas Soome UINT8 Type; 390*f334afcfSToomas Soome UINT8 Length; 391*f334afcfSToomas Soome UINT16 Reserved; 392*f334afcfSToomas Soome UINT64 LocalApicAddress; 393*f334afcfSToomas Soome } EFI_ACPI_4_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE; 394*f334afcfSToomas Soome 395*f334afcfSToomas Soome /// 396*f334afcfSToomas Soome /// IO SAPIC Structure 397*f334afcfSToomas Soome /// 398*f334afcfSToomas Soome typedef struct { 399*f334afcfSToomas Soome UINT8 Type; 400*f334afcfSToomas Soome UINT8 Length; 401*f334afcfSToomas Soome UINT8 IoApicId; 402*f334afcfSToomas Soome UINT8 Reserved; 403*f334afcfSToomas Soome UINT32 GlobalSystemInterruptBase; 404*f334afcfSToomas Soome UINT64 IoSapicAddress; 405*f334afcfSToomas Soome } EFI_ACPI_4_0_IO_SAPIC_STRUCTURE; 406*f334afcfSToomas Soome 407*f334afcfSToomas Soome /// 408*f334afcfSToomas Soome /// Local SAPIC Structure 409*f334afcfSToomas Soome /// This struct followed by a null-terminated ASCII string - ACPI Processor UID String 410*f334afcfSToomas Soome /// 411*f334afcfSToomas Soome typedef struct { 412*f334afcfSToomas Soome UINT8 Type; 413*f334afcfSToomas Soome UINT8 Length; 414*f334afcfSToomas Soome UINT8 AcpiProcessorId; 415*f334afcfSToomas Soome UINT8 LocalSapicId; 416*f334afcfSToomas Soome UINT8 LocalSapicEid; 417*f334afcfSToomas Soome UINT8 Reserved[3]; 418*f334afcfSToomas Soome UINT32 Flags; 419*f334afcfSToomas Soome UINT32 ACPIProcessorUIDValue; 420*f334afcfSToomas Soome } EFI_ACPI_4_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE; 421*f334afcfSToomas Soome 422*f334afcfSToomas Soome /// 423*f334afcfSToomas Soome /// Platform Interrupt Sources Structure 424*f334afcfSToomas Soome /// 425*f334afcfSToomas Soome typedef struct { 426*f334afcfSToomas Soome UINT8 Type; 427*f334afcfSToomas Soome UINT8 Length; 428*f334afcfSToomas Soome UINT16 Flags; 429*f334afcfSToomas Soome UINT8 InterruptType; 430*f334afcfSToomas Soome UINT8 ProcessorId; 431*f334afcfSToomas Soome UINT8 ProcessorEid; 432*f334afcfSToomas Soome UINT8 IoSapicVector; 433*f334afcfSToomas Soome UINT32 GlobalSystemInterrupt; 434*f334afcfSToomas Soome UINT32 PlatformInterruptSourceFlags; 435*f334afcfSToomas Soome } EFI_ACPI_4_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE; 436*f334afcfSToomas Soome 437*f334afcfSToomas Soome /// 438*f334afcfSToomas Soome /// Platform Interrupt Source Flags. 439*f334afcfSToomas Soome /// All other bits are reserved and must be set to 0. 440*f334afcfSToomas Soome /// 441*f334afcfSToomas Soome #define EFI_ACPI_4_0_CPEI_PROCESSOR_OVERRIDE BIT0 442*f334afcfSToomas Soome 443*f334afcfSToomas Soome /// 444*f334afcfSToomas Soome /// Processor Local x2APIC Structure Definition 445*f334afcfSToomas Soome /// 446*f334afcfSToomas Soome typedef struct { 447*f334afcfSToomas Soome UINT8 Type; 448*f334afcfSToomas Soome UINT8 Length; 449*f334afcfSToomas Soome UINT8 Reserved[2]; 450*f334afcfSToomas Soome UINT32 X2ApicId; 451*f334afcfSToomas Soome UINT32 Flags; 452*f334afcfSToomas Soome UINT32 AcpiProcessorUid; 453*f334afcfSToomas Soome } EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE; 454*f334afcfSToomas Soome 455*f334afcfSToomas Soome /// 456*f334afcfSToomas Soome /// Local x2APIC NMI Structure 457*f334afcfSToomas Soome /// 458*f334afcfSToomas Soome typedef struct { 459*f334afcfSToomas Soome UINT8 Type; 460*f334afcfSToomas Soome UINT8 Length; 461*f334afcfSToomas Soome UINT16 Flags; 462*f334afcfSToomas Soome UINT32 AcpiProcessorUid; 463*f334afcfSToomas Soome UINT8 LocalX2ApicLint; 464*f334afcfSToomas Soome UINT8 Reserved[3]; 465*f334afcfSToomas Soome } EFI_ACPI_4_0_LOCAL_X2APIC_NMI_STRUCTURE; 466*f334afcfSToomas Soome 467*f334afcfSToomas Soome /// 468*f334afcfSToomas Soome /// Smart Battery Description Table (SBST) 469*f334afcfSToomas Soome /// 470*f334afcfSToomas Soome typedef struct { 471*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 472*f334afcfSToomas Soome UINT32 WarningEnergyLevel; 473*f334afcfSToomas Soome UINT32 LowEnergyLevel; 474*f334afcfSToomas Soome UINT32 CriticalEnergyLevel; 475*f334afcfSToomas Soome } EFI_ACPI_4_0_SMART_BATTERY_DESCRIPTION_TABLE; 476*f334afcfSToomas Soome 477*f334afcfSToomas Soome /// 478*f334afcfSToomas Soome /// SBST Version (as defined in ACPI 4.0 spec.) 479*f334afcfSToomas Soome /// 480*f334afcfSToomas Soome #define EFI_ACPI_4_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01 481*f334afcfSToomas Soome 482*f334afcfSToomas Soome /// 483*f334afcfSToomas Soome /// Embedded Controller Boot Resources Table (ECDT) 484*f334afcfSToomas Soome /// The table is followed by a null terminated ASCII string that contains 485*f334afcfSToomas Soome /// a fully qualified reference to the name space object. 486*f334afcfSToomas Soome /// 487*f334afcfSToomas Soome typedef struct { 488*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 489*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE EcControl; 490*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE EcData; 491*f334afcfSToomas Soome UINT32 Uid; 492*f334afcfSToomas Soome UINT8 GpeBit; 493*f334afcfSToomas Soome } EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE; 494*f334afcfSToomas Soome 495*f334afcfSToomas Soome /// 496*f334afcfSToomas Soome /// ECDT Version (as defined in ACPI 4.0 spec.) 497*f334afcfSToomas Soome /// 498*f334afcfSToomas Soome #define EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01 499*f334afcfSToomas Soome 500*f334afcfSToomas Soome /// 501*f334afcfSToomas Soome /// System Resource Affinity Table (SRAT. The rest of the table 502*f334afcfSToomas Soome /// must be defined in a platform specific manner. 503*f334afcfSToomas Soome /// 504*f334afcfSToomas Soome typedef struct { 505*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 506*f334afcfSToomas Soome UINT32 Reserved1; ///< Must be set to 1 507*f334afcfSToomas Soome UINT64 Reserved2; 508*f334afcfSToomas Soome } EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER; 509*f334afcfSToomas Soome 510*f334afcfSToomas Soome /// 511*f334afcfSToomas Soome /// SRAT Version (as defined in ACPI 4.0 spec.) 512*f334afcfSToomas Soome /// 513*f334afcfSToomas Soome #define EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03 514*f334afcfSToomas Soome 515*f334afcfSToomas Soome // 516*f334afcfSToomas Soome // SRAT structure types. 517*f334afcfSToomas Soome // All other values between 0x03 an 0xFF are reserved and 518*f334afcfSToomas Soome // will be ignored by OSPM. 519*f334afcfSToomas Soome // 520*f334afcfSToomas Soome #define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00 521*f334afcfSToomas Soome #define EFI_ACPI_4_0_MEMORY_AFFINITY 0x01 522*f334afcfSToomas Soome #define EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02 523*f334afcfSToomas Soome 524*f334afcfSToomas Soome /// 525*f334afcfSToomas Soome /// Processor Local APIC/SAPIC Affinity Structure Definition 526*f334afcfSToomas Soome /// 527*f334afcfSToomas Soome typedef struct { 528*f334afcfSToomas Soome UINT8 Type; 529*f334afcfSToomas Soome UINT8 Length; 530*f334afcfSToomas Soome UINT8 ProximityDomain7To0; 531*f334afcfSToomas Soome UINT8 ApicId; 532*f334afcfSToomas Soome UINT32 Flags; 533*f334afcfSToomas Soome UINT8 LocalSapicEid; 534*f334afcfSToomas Soome UINT8 ProximityDomain31To8[3]; 535*f334afcfSToomas Soome UINT32 ClockDomain; 536*f334afcfSToomas Soome } EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE; 537*f334afcfSToomas Soome 538*f334afcfSToomas Soome /// 539*f334afcfSToomas Soome /// Local APIC/SAPIC Flags. All other bits are reserved and must be 0. 540*f334afcfSToomas Soome /// 541*f334afcfSToomas Soome #define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0) 542*f334afcfSToomas Soome 543*f334afcfSToomas Soome /// 544*f334afcfSToomas Soome /// Memory Affinity Structure Definition 545*f334afcfSToomas Soome /// 546*f334afcfSToomas Soome typedef struct { 547*f334afcfSToomas Soome UINT8 Type; 548*f334afcfSToomas Soome UINT8 Length; 549*f334afcfSToomas Soome UINT32 ProximityDomain; 550*f334afcfSToomas Soome UINT16 Reserved1; 551*f334afcfSToomas Soome UINT32 AddressBaseLow; 552*f334afcfSToomas Soome UINT32 AddressBaseHigh; 553*f334afcfSToomas Soome UINT32 LengthLow; 554*f334afcfSToomas Soome UINT32 LengthHigh; 555*f334afcfSToomas Soome UINT32 Reserved2; 556*f334afcfSToomas Soome UINT32 Flags; 557*f334afcfSToomas Soome UINT64 Reserved3; 558*f334afcfSToomas Soome } EFI_ACPI_4_0_MEMORY_AFFINITY_STRUCTURE; 559*f334afcfSToomas Soome 560*f334afcfSToomas Soome // 561*f334afcfSToomas Soome // Memory Flags. All other bits are reserved and must be 0. 562*f334afcfSToomas Soome // 563*f334afcfSToomas Soome #define EFI_ACPI_4_0_MEMORY_ENABLED (1 << 0) 564*f334afcfSToomas Soome #define EFI_ACPI_4_0_MEMORY_HOT_PLUGGABLE (1 << 1) 565*f334afcfSToomas Soome #define EFI_ACPI_4_0_MEMORY_NONVOLATILE (1 << 2) 566*f334afcfSToomas Soome 567*f334afcfSToomas Soome /// 568*f334afcfSToomas Soome /// Processor Local x2APIC Affinity Structure Definition 569*f334afcfSToomas Soome /// 570*f334afcfSToomas Soome typedef struct { 571*f334afcfSToomas Soome UINT8 Type; 572*f334afcfSToomas Soome UINT8 Length; 573*f334afcfSToomas Soome UINT8 Reserved1[2]; 574*f334afcfSToomas Soome UINT32 ProximityDomain; 575*f334afcfSToomas Soome UINT32 X2ApicId; 576*f334afcfSToomas Soome UINT32 Flags; 577*f334afcfSToomas Soome UINT32 ClockDomain; 578*f334afcfSToomas Soome UINT8 Reserved2[4]; 579*f334afcfSToomas Soome } EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE; 580*f334afcfSToomas Soome 581*f334afcfSToomas Soome /// 582*f334afcfSToomas Soome /// System Locality Distance Information Table (SLIT). 583*f334afcfSToomas Soome /// The rest of the table is a matrix. 584*f334afcfSToomas Soome /// 585*f334afcfSToomas Soome typedef struct { 586*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 587*f334afcfSToomas Soome UINT64 NumberOfSystemLocalities; 588*f334afcfSToomas Soome } EFI_ACPI_4_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER; 589*f334afcfSToomas Soome 590*f334afcfSToomas Soome /// 591*f334afcfSToomas Soome /// SLIT Version (as defined in ACPI 4.0 spec.) 592*f334afcfSToomas Soome /// 593*f334afcfSToomas Soome #define EFI_ACPI_4_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01 594*f334afcfSToomas Soome 595*f334afcfSToomas Soome /// 596*f334afcfSToomas Soome /// Corrected Platform Error Polling Table (CPEP) 597*f334afcfSToomas Soome /// 598*f334afcfSToomas Soome typedef struct { 599*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 600*f334afcfSToomas Soome UINT8 Reserved[8]; 601*f334afcfSToomas Soome } EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER; 602*f334afcfSToomas Soome 603*f334afcfSToomas Soome /// 604*f334afcfSToomas Soome /// CPEP Version (as defined in ACPI 4.0 spec.) 605*f334afcfSToomas Soome /// 606*f334afcfSToomas Soome #define EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01 607*f334afcfSToomas Soome 608*f334afcfSToomas Soome // 609*f334afcfSToomas Soome // CPEP processor structure types. 610*f334afcfSToomas Soome // 611*f334afcfSToomas Soome #define EFI_ACPI_4_0_CPEP_PROCESSOR_APIC_SAPIC 0x00 612*f334afcfSToomas Soome 613*f334afcfSToomas Soome /// 614*f334afcfSToomas Soome /// Corrected Platform Error Polling Processor Structure Definition 615*f334afcfSToomas Soome /// 616*f334afcfSToomas Soome typedef struct { 617*f334afcfSToomas Soome UINT8 Type; 618*f334afcfSToomas Soome UINT8 Length; 619*f334afcfSToomas Soome UINT8 ProcessorId; 620*f334afcfSToomas Soome UINT8 ProcessorEid; 621*f334afcfSToomas Soome UINT32 PollingInterval; 622*f334afcfSToomas Soome } EFI_ACPI_4_0_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE; 623*f334afcfSToomas Soome 624*f334afcfSToomas Soome /// 625*f334afcfSToomas Soome /// Maximum System Characteristics Table (MSCT) 626*f334afcfSToomas Soome /// 627*f334afcfSToomas Soome typedef struct { 628*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 629*f334afcfSToomas Soome UINT32 OffsetProxDomInfo; 630*f334afcfSToomas Soome UINT32 MaximumNumberOfProximityDomains; 631*f334afcfSToomas Soome UINT32 MaximumNumberOfClockDomains; 632*f334afcfSToomas Soome UINT64 MaximumPhysicalAddress; 633*f334afcfSToomas Soome } EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER; 634*f334afcfSToomas Soome 635*f334afcfSToomas Soome /// 636*f334afcfSToomas Soome /// MSCT Version (as defined in ACPI 4.0 spec.) 637*f334afcfSToomas Soome /// 638*f334afcfSToomas Soome #define EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01 639*f334afcfSToomas Soome 640*f334afcfSToomas Soome /// 641*f334afcfSToomas Soome /// Maximum Proximity Domain Information Structure Definition 642*f334afcfSToomas Soome /// 643*f334afcfSToomas Soome typedef struct { 644*f334afcfSToomas Soome UINT8 Revision; 645*f334afcfSToomas Soome UINT8 Length; 646*f334afcfSToomas Soome UINT32 ProximityDomainRangeLow; 647*f334afcfSToomas Soome UINT32 ProximityDomainRangeHigh; 648*f334afcfSToomas Soome UINT32 MaximumProcessorCapacity; 649*f334afcfSToomas Soome UINT64 MaximumMemoryCapacity; 650*f334afcfSToomas Soome } EFI_ACPI_4_0_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE; 651*f334afcfSToomas Soome 652*f334afcfSToomas Soome /// 653*f334afcfSToomas Soome /// Boot Error Record Table (BERT) 654*f334afcfSToomas Soome /// 655*f334afcfSToomas Soome typedef struct { 656*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 657*f334afcfSToomas Soome UINT32 BootErrorRegionLength; 658*f334afcfSToomas Soome UINT64 BootErrorRegion; 659*f334afcfSToomas Soome } EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_HEADER; 660*f334afcfSToomas Soome 661*f334afcfSToomas Soome /// 662*f334afcfSToomas Soome /// BERT Version (as defined in ACPI 4.0 spec.) 663*f334afcfSToomas Soome /// 664*f334afcfSToomas Soome #define EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_REVISION 0x01 665*f334afcfSToomas Soome 666*f334afcfSToomas Soome /// 667*f334afcfSToomas Soome /// Boot Error Region Block Status Definition 668*f334afcfSToomas Soome /// 669*f334afcfSToomas Soome typedef struct { 670*f334afcfSToomas Soome UINT32 UncorrectableErrorValid : 1; 671*f334afcfSToomas Soome UINT32 CorrectableErrorValid : 1; 672*f334afcfSToomas Soome UINT32 MultipleUncorrectableErrors : 1; 673*f334afcfSToomas Soome UINT32 MultipleCorrectableErrors : 1; 674*f334afcfSToomas Soome UINT32 ErrorDataEntryCount : 10; 675*f334afcfSToomas Soome UINT32 Reserved : 18; 676*f334afcfSToomas Soome } EFI_ACPI_4_0_ERROR_BLOCK_STATUS; 677*f334afcfSToomas Soome 678*f334afcfSToomas Soome /// 679*f334afcfSToomas Soome /// Boot Error Region Definition 680*f334afcfSToomas Soome /// 681*f334afcfSToomas Soome typedef struct { 682*f334afcfSToomas Soome EFI_ACPI_4_0_ERROR_BLOCK_STATUS BlockStatus; 683*f334afcfSToomas Soome UINT32 RawDataOffset; 684*f334afcfSToomas Soome UINT32 RawDataLength; 685*f334afcfSToomas Soome UINT32 DataLength; 686*f334afcfSToomas Soome UINT32 ErrorSeverity; 687*f334afcfSToomas Soome } EFI_ACPI_4_0_BOOT_ERROR_REGION_STRUCTURE; 688*f334afcfSToomas Soome 689*f334afcfSToomas Soome // 690*f334afcfSToomas Soome // Boot Error Severity types 691*f334afcfSToomas Soome // 692*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_SEVERITY_CORRECTABLE 0x00 693*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_SEVERITY_RECOVERABLE 0x00 694*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_SEVERITY_FATAL 0x01 695*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_SEVERITY_CORRECTED 0x02 696*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_SEVERITY_NONE 0x03 697*f334afcfSToomas Soome 698*f334afcfSToomas Soome /// 699*f334afcfSToomas Soome /// Generic Error Data Entry Definition 700*f334afcfSToomas Soome /// 701*f334afcfSToomas Soome typedef struct { 702*f334afcfSToomas Soome UINT8 SectionType[16]; 703*f334afcfSToomas Soome UINT32 ErrorSeverity; 704*f334afcfSToomas Soome UINT16 Revision; 705*f334afcfSToomas Soome UINT8 ValidationBits; 706*f334afcfSToomas Soome UINT8 Flags; 707*f334afcfSToomas Soome UINT32 ErrorDataLength; 708*f334afcfSToomas Soome UINT8 FruId[16]; 709*f334afcfSToomas Soome UINT8 FruText[20]; 710*f334afcfSToomas Soome } EFI_ACPI_4_0_GENERIC_ERROR_DATA_ENTRY_STRUCTURE; 711*f334afcfSToomas Soome 712*f334afcfSToomas Soome /// 713*f334afcfSToomas Soome /// Generic Error Data Entry Version (as defined in ACPI 4.0 spec.) 714*f334afcfSToomas Soome /// 715*f334afcfSToomas Soome #define EFI_ACPI_4_0_GENERIC_ERROR_DATA_ENTRY_REVISION 0x0201 716*f334afcfSToomas Soome 717*f334afcfSToomas Soome /// 718*f334afcfSToomas Soome /// HEST - Hardware Error Source Table 719*f334afcfSToomas Soome /// 720*f334afcfSToomas Soome typedef struct { 721*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 722*f334afcfSToomas Soome UINT32 ErrorSourceCount; 723*f334afcfSToomas Soome } EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_HEADER; 724*f334afcfSToomas Soome 725*f334afcfSToomas Soome /// 726*f334afcfSToomas Soome /// HEST Version (as defined in ACPI 4.0 spec.) 727*f334afcfSToomas Soome /// 728*f334afcfSToomas Soome #define EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x01 729*f334afcfSToomas Soome 730*f334afcfSToomas Soome // 731*f334afcfSToomas Soome // Error Source structure types. 732*f334afcfSToomas Soome // 733*f334afcfSToomas Soome #define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x00 734*f334afcfSToomas Soome #define EFI_ACPI_4_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x01 735*f334afcfSToomas Soome #define EFI_ACPI_4_0_IA32_ARCHITECTURE_NMI_ERROR 0x02 736*f334afcfSToomas Soome #define EFI_ACPI_4_0_PCI_EXPRESS_ROOT_PORT_AER 0x06 737*f334afcfSToomas Soome #define EFI_ACPI_4_0_PCI_EXPRESS_DEVICE_AER 0x07 738*f334afcfSToomas Soome #define EFI_ACPI_4_0_PCI_EXPRESS_BRIDGE_AER 0x08 739*f334afcfSToomas Soome #define EFI_ACPI_4_0_GENERIC_HARDWARE_ERROR 0x09 740*f334afcfSToomas Soome 741*f334afcfSToomas Soome // 742*f334afcfSToomas Soome // Error Source structure flags. 743*f334afcfSToomas Soome // 744*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0) 745*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_SOURCE_FLAG_GLOBAL (1 << 1) 746*f334afcfSToomas Soome 747*f334afcfSToomas Soome /// 748*f334afcfSToomas Soome /// IA-32 Architecture Machine Check Exception Structure Definition 749*f334afcfSToomas Soome /// 750*f334afcfSToomas Soome typedef struct { 751*f334afcfSToomas Soome UINT16 Type; 752*f334afcfSToomas Soome UINT16 SourceId; 753*f334afcfSToomas Soome UINT8 Reserved0[2]; 754*f334afcfSToomas Soome UINT8 Flags; 755*f334afcfSToomas Soome UINT8 Enabled; 756*f334afcfSToomas Soome UINT32 NumberOfRecordsToPreAllocate; 757*f334afcfSToomas Soome UINT32 MaxSectionsPerRecord; 758*f334afcfSToomas Soome UINT64 GlobalCapabilityInitData; 759*f334afcfSToomas Soome UINT64 GlobalControlInitData; 760*f334afcfSToomas Soome UINT8 NumberOfHardwareBanks; 761*f334afcfSToomas Soome UINT8 Reserved1[7]; 762*f334afcfSToomas Soome } EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION_STRUCTURE; 763*f334afcfSToomas Soome 764*f334afcfSToomas Soome /// 765*f334afcfSToomas Soome /// IA-32 Architecture Machine Check Bank Structure Definition 766*f334afcfSToomas Soome /// 767*f334afcfSToomas Soome typedef struct { 768*f334afcfSToomas Soome UINT8 BankNumber; 769*f334afcfSToomas Soome UINT8 ClearStatusOnInitialization; 770*f334afcfSToomas Soome UINT8 StatusDataFormat; 771*f334afcfSToomas Soome UINT8 Reserved0; 772*f334afcfSToomas Soome UINT32 ControlRegisterMsrAddress; 773*f334afcfSToomas Soome UINT64 ControlInitData; 774*f334afcfSToomas Soome UINT32 StatusRegisterMsrAddress; 775*f334afcfSToomas Soome UINT32 AddressRegisterMsrAddress; 776*f334afcfSToomas Soome UINT32 MiscRegisterMsrAddress; 777*f334afcfSToomas Soome } EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_BANK_STRUCTURE; 778*f334afcfSToomas Soome 779*f334afcfSToomas Soome /// 780*f334afcfSToomas Soome /// IA-32 Architecture Machine Check Bank Structure MCA data format 781*f334afcfSToomas Soome /// 782*f334afcfSToomas Soome #define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x00 783*f334afcfSToomas Soome #define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x01 784*f334afcfSToomas Soome #define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x02 785*f334afcfSToomas Soome 786*f334afcfSToomas Soome // 787*f334afcfSToomas Soome // Hardware Error Notification types. All other values are reserved 788*f334afcfSToomas Soome // 789*f334afcfSToomas Soome #define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_POLLED 0x00 790*f334afcfSToomas Soome #define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x01 791*f334afcfSToomas Soome #define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x02 792*f334afcfSToomas Soome #define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_SCI 0x03 793*f334afcfSToomas Soome #define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_NMI 0x04 794*f334afcfSToomas Soome 795*f334afcfSToomas Soome /// 796*f334afcfSToomas Soome /// Hardware Error Notification Configuration Write Enable Structure Definition 797*f334afcfSToomas Soome /// 798*f334afcfSToomas Soome typedef struct { 799*f334afcfSToomas Soome UINT16 Type : 1; 800*f334afcfSToomas Soome UINT16 PollInterval : 1; 801*f334afcfSToomas Soome UINT16 SwitchToPollingThresholdValue : 1; 802*f334afcfSToomas Soome UINT16 SwitchToPollingThresholdWindow : 1; 803*f334afcfSToomas Soome UINT16 ErrorThresholdValue : 1; 804*f334afcfSToomas Soome UINT16 ErrorThresholdWindow : 1; 805*f334afcfSToomas Soome UINT16 Reserved : 10; 806*f334afcfSToomas Soome } EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE; 807*f334afcfSToomas Soome 808*f334afcfSToomas Soome /// 809*f334afcfSToomas Soome /// Hardware Error Notification Structure Definition 810*f334afcfSToomas Soome /// 811*f334afcfSToomas Soome typedef struct { 812*f334afcfSToomas Soome UINT8 Type; 813*f334afcfSToomas Soome UINT8 Length; 814*f334afcfSToomas Soome EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable; 815*f334afcfSToomas Soome UINT32 PollInterval; 816*f334afcfSToomas Soome UINT32 Vector; 817*f334afcfSToomas Soome UINT32 SwitchToPollingThresholdValue; 818*f334afcfSToomas Soome UINT32 SwitchToPollingThresholdWindow; 819*f334afcfSToomas Soome UINT32 ErrorThresholdValue; 820*f334afcfSToomas Soome UINT32 ErrorThresholdWindow; 821*f334afcfSToomas Soome } EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE; 822*f334afcfSToomas Soome 823*f334afcfSToomas Soome /// 824*f334afcfSToomas Soome /// IA-32 Architecture Corrected Machine Check Structure Definition 825*f334afcfSToomas Soome /// 826*f334afcfSToomas Soome typedef struct { 827*f334afcfSToomas Soome UINT16 Type; 828*f334afcfSToomas Soome UINT16 SourceId; 829*f334afcfSToomas Soome UINT8 Reserved0[2]; 830*f334afcfSToomas Soome UINT8 Flags; 831*f334afcfSToomas Soome UINT8 Enabled; 832*f334afcfSToomas Soome UINT32 NumberOfRecordsToPreAllocate; 833*f334afcfSToomas Soome UINT32 MaxSectionsPerRecord; 834*f334afcfSToomas Soome EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure; 835*f334afcfSToomas Soome UINT8 NumberOfHardwareBanks; 836*f334afcfSToomas Soome UINT8 Reserved1[3]; 837*f334afcfSToomas Soome } EFI_ACPI_4_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK_STRUCTURE; 838*f334afcfSToomas Soome 839*f334afcfSToomas Soome /// 840*f334afcfSToomas Soome /// IA-32 Architecture NMI Error Structure Definition 841*f334afcfSToomas Soome /// 842*f334afcfSToomas Soome typedef struct { 843*f334afcfSToomas Soome UINT16 Type; 844*f334afcfSToomas Soome UINT16 SourceId; 845*f334afcfSToomas Soome UINT8 Reserved0[2]; 846*f334afcfSToomas Soome UINT32 NumberOfRecordsToPreAllocate; 847*f334afcfSToomas Soome UINT32 MaxSectionsPerRecord; 848*f334afcfSToomas Soome UINT32 MaxRawDataLength; 849*f334afcfSToomas Soome } EFI_ACPI_4_0_IA32_ARCHITECTURE_NMI_ERROR_STRUCTURE; 850*f334afcfSToomas Soome 851*f334afcfSToomas Soome /// 852*f334afcfSToomas Soome /// PCI Express Root Port AER Structure Definition 853*f334afcfSToomas Soome /// 854*f334afcfSToomas Soome typedef struct { 855*f334afcfSToomas Soome UINT16 Type; 856*f334afcfSToomas Soome UINT16 SourceId; 857*f334afcfSToomas Soome UINT8 Reserved0[2]; 858*f334afcfSToomas Soome UINT8 Flags; 859*f334afcfSToomas Soome UINT8 Enabled; 860*f334afcfSToomas Soome UINT32 NumberOfRecordsToPreAllocate; 861*f334afcfSToomas Soome UINT32 MaxSectionsPerRecord; 862*f334afcfSToomas Soome UINT32 Bus; 863*f334afcfSToomas Soome UINT16 Device; 864*f334afcfSToomas Soome UINT16 Function; 865*f334afcfSToomas Soome UINT16 DeviceControl; 866*f334afcfSToomas Soome UINT8 Reserved1[2]; 867*f334afcfSToomas Soome UINT32 UncorrectableErrorMask; 868*f334afcfSToomas Soome UINT32 UncorrectableErrorSeverity; 869*f334afcfSToomas Soome UINT32 CorrectableErrorMask; 870*f334afcfSToomas Soome UINT32 AdvancedErrorCapabilitiesAndControl; 871*f334afcfSToomas Soome UINT32 RootErrorCommand; 872*f334afcfSToomas Soome } EFI_ACPI_4_0_PCI_EXPRESS_ROOT_PORT_AER_STRUCTURE; 873*f334afcfSToomas Soome 874*f334afcfSToomas Soome /// 875*f334afcfSToomas Soome /// PCI Express Device AER Structure Definition 876*f334afcfSToomas Soome /// 877*f334afcfSToomas Soome typedef struct { 878*f334afcfSToomas Soome UINT16 Type; 879*f334afcfSToomas Soome UINT16 SourceId; 880*f334afcfSToomas Soome UINT8 Reserved0[2]; 881*f334afcfSToomas Soome UINT8 Flags; 882*f334afcfSToomas Soome UINT8 Enabled; 883*f334afcfSToomas Soome UINT32 NumberOfRecordsToPreAllocate; 884*f334afcfSToomas Soome UINT32 MaxSectionsPerRecord; 885*f334afcfSToomas Soome UINT32 Bus; 886*f334afcfSToomas Soome UINT16 Device; 887*f334afcfSToomas Soome UINT16 Function; 888*f334afcfSToomas Soome UINT16 DeviceControl; 889*f334afcfSToomas Soome UINT8 Reserved1[2]; 890*f334afcfSToomas Soome UINT32 UncorrectableErrorMask; 891*f334afcfSToomas Soome UINT32 UncorrectableErrorSeverity; 892*f334afcfSToomas Soome UINT32 CorrectableErrorMask; 893*f334afcfSToomas Soome UINT32 AdvancedErrorCapabilitiesAndControl; 894*f334afcfSToomas Soome } EFI_ACPI_4_0_PCI_EXPRESS_DEVICE_AER_STRUCTURE; 895*f334afcfSToomas Soome 896*f334afcfSToomas Soome /// 897*f334afcfSToomas Soome /// PCI Express Bridge AER Structure Definition 898*f334afcfSToomas Soome /// 899*f334afcfSToomas Soome typedef struct { 900*f334afcfSToomas Soome UINT16 Type; 901*f334afcfSToomas Soome UINT16 SourceId; 902*f334afcfSToomas Soome UINT8 Reserved0[2]; 903*f334afcfSToomas Soome UINT8 Flags; 904*f334afcfSToomas Soome UINT8 Enabled; 905*f334afcfSToomas Soome UINT32 NumberOfRecordsToPreAllocate; 906*f334afcfSToomas Soome UINT32 MaxSectionsPerRecord; 907*f334afcfSToomas Soome UINT32 Bus; 908*f334afcfSToomas Soome UINT16 Device; 909*f334afcfSToomas Soome UINT16 Function; 910*f334afcfSToomas Soome UINT16 DeviceControl; 911*f334afcfSToomas Soome UINT8 Reserved1[2]; 912*f334afcfSToomas Soome UINT32 UncorrectableErrorMask; 913*f334afcfSToomas Soome UINT32 UncorrectableErrorSeverity; 914*f334afcfSToomas Soome UINT32 CorrectableErrorMask; 915*f334afcfSToomas Soome UINT32 AdvancedErrorCapabilitiesAndControl; 916*f334afcfSToomas Soome UINT32 SecondaryUncorrectableErrorMask; 917*f334afcfSToomas Soome UINT32 SecondaryUncorrectableErrorSeverity; 918*f334afcfSToomas Soome UINT32 SecondaryAdvancedErrorCapabilitiesAndControl; 919*f334afcfSToomas Soome } EFI_ACPI_4_0_PCI_EXPRESS_BRIDGE_AER_STRUCTURE; 920*f334afcfSToomas Soome 921*f334afcfSToomas Soome /// 922*f334afcfSToomas Soome /// Generic Hardware Error Source Structure Definition 923*f334afcfSToomas Soome /// 924*f334afcfSToomas Soome typedef struct { 925*f334afcfSToomas Soome UINT16 Type; 926*f334afcfSToomas Soome UINT16 SourceId; 927*f334afcfSToomas Soome UINT16 RelatedSourceId; 928*f334afcfSToomas Soome UINT8 Flags; 929*f334afcfSToomas Soome UINT8 Enabled; 930*f334afcfSToomas Soome UINT32 NumberOfRecordsToPreAllocate; 931*f334afcfSToomas Soome UINT32 MaxSectionsPerRecord; 932*f334afcfSToomas Soome UINT32 MaxRawDataLength; 933*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress; 934*f334afcfSToomas Soome EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure; 935*f334afcfSToomas Soome UINT32 ErrorStatusBlockLength; 936*f334afcfSToomas Soome } EFI_ACPI_4_0_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE; 937*f334afcfSToomas Soome 938*f334afcfSToomas Soome /// 939*f334afcfSToomas Soome /// Generic Error Status Definition 940*f334afcfSToomas Soome /// 941*f334afcfSToomas Soome typedef struct { 942*f334afcfSToomas Soome EFI_ACPI_4_0_ERROR_BLOCK_STATUS BlockStatus; 943*f334afcfSToomas Soome UINT32 RawDataOffset; 944*f334afcfSToomas Soome UINT32 RawDataLength; 945*f334afcfSToomas Soome UINT32 DataLength; 946*f334afcfSToomas Soome UINT32 ErrorSeverity; 947*f334afcfSToomas Soome } EFI_ACPI_4_0_GENERIC_ERROR_STATUS_STRUCTURE; 948*f334afcfSToomas Soome 949*f334afcfSToomas Soome /// 950*f334afcfSToomas Soome /// ERST - Error Record Serialization Table 951*f334afcfSToomas Soome /// 952*f334afcfSToomas Soome typedef struct { 953*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 954*f334afcfSToomas Soome UINT32 SerializationHeaderSize; 955*f334afcfSToomas Soome UINT8 Reserved0[4]; 956*f334afcfSToomas Soome UINT32 InstructionEntryCount; 957*f334afcfSToomas Soome } EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_HEADER; 958*f334afcfSToomas Soome 959*f334afcfSToomas Soome /// 960*f334afcfSToomas Soome /// ERST Version (as defined in ACPI 4.0 spec.) 961*f334afcfSToomas Soome /// 962*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x01 963*f334afcfSToomas Soome 964*f334afcfSToomas Soome /// 965*f334afcfSToomas Soome /// ERST Serialization Actions 966*f334afcfSToomas Soome /// 967*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_BEGIN_WRITE_OPERATION 0x00 968*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_BEGIN_READ_OPERATION 0x01 969*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_BEGIN_CLEAR_OPERATION 0x02 970*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_END_OPERATION 0x03 971*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_SET_RECORD_OFFSET 0x04 972*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_EXECUTE_OPERATION 0x05 973*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_CHECK_BUSY_STATUS 0x06 974*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_GET_COMMAND_STATUS 0x07 975*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_GET_RECORD_IDENTIFIER 0x08 976*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_SET_RECORD_IDENTIFIER 0x09 977*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_GET_RECORD_COUNT 0x0A 978*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B 979*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D 980*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E 981*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F 982*f334afcfSToomas Soome 983*f334afcfSToomas Soome /// 984*f334afcfSToomas Soome /// ERST Action Command Status 985*f334afcfSToomas Soome /// 986*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_SUCCESS 0x00 987*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_NOT_ENOUGH_SPACE 0x01 988*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_HARDWARE_NOT_AVAILABLE 0x02 989*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_FAILED 0x03 990*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_RECORD_STORE_EMPTY 0x04 991*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_RECORD_NOT_FOUND 0x05 992*f334afcfSToomas Soome 993*f334afcfSToomas Soome /// 994*f334afcfSToomas Soome /// ERST Serialization Instructions 995*f334afcfSToomas Soome /// 996*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_READ_REGISTER 0x00 997*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_READ_REGISTER_VALUE 0x01 998*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_WRITE_REGISTER 0x02 999*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_WRITE_REGISTER_VALUE 0x03 1000*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_NOOP 0x04 1001*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_LOAD_VAR1 0x05 1002*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_LOAD_VAR2 0x06 1003*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_STORE_VAR1 0x07 1004*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_ADD 0x08 1005*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_SUBTRACT 0x09 1006*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_ADD_VALUE 0x0A 1007*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_SUBTRACT_VALUE 0x0B 1008*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_STALL 0x0C 1009*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_STALL_WHILE_TRUE 0x0D 1010*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E 1011*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_GOTO 0x0F 1012*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_SET_SRC_ADDRESS_BASE 0x10 1013*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_SET_DST_ADDRESS_BASE 0x11 1014*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_MOVE_DATA 0x12 1015*f334afcfSToomas Soome 1016*f334afcfSToomas Soome /// 1017*f334afcfSToomas Soome /// ERST Instruction Flags 1018*f334afcfSToomas Soome /// 1019*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERST_PRESERVE_REGISTER 0x01 1020*f334afcfSToomas Soome 1021*f334afcfSToomas Soome /// 1022*f334afcfSToomas Soome /// ERST Serialization Instruction Entry 1023*f334afcfSToomas Soome /// 1024*f334afcfSToomas Soome typedef struct { 1025*f334afcfSToomas Soome UINT8 SerializationAction; 1026*f334afcfSToomas Soome UINT8 Instruction; 1027*f334afcfSToomas Soome UINT8 Flags; 1028*f334afcfSToomas Soome UINT8 Reserved0; 1029*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion; 1030*f334afcfSToomas Soome UINT64 Value; 1031*f334afcfSToomas Soome UINT64 Mask; 1032*f334afcfSToomas Soome } EFI_ACPI_4_0_ERST_SERIALIZATION_INSTRUCTION_ENTRY; 1033*f334afcfSToomas Soome 1034*f334afcfSToomas Soome /// 1035*f334afcfSToomas Soome /// EINJ - Error Injection Table 1036*f334afcfSToomas Soome /// 1037*f334afcfSToomas Soome typedef struct { 1038*f334afcfSToomas Soome EFI_ACPI_DESCRIPTION_HEADER Header; 1039*f334afcfSToomas Soome UINT32 InjectionHeaderSize; 1040*f334afcfSToomas Soome UINT8 InjectionFlags; 1041*f334afcfSToomas Soome UINT8 Reserved0[3]; 1042*f334afcfSToomas Soome UINT32 InjectionEntryCount; 1043*f334afcfSToomas Soome } EFI_ACPI_4_0_ERROR_INJECTION_TABLE_HEADER; 1044*f334afcfSToomas Soome 1045*f334afcfSToomas Soome /// 1046*f334afcfSToomas Soome /// EINJ Version (as defined in ACPI 4.0 spec.) 1047*f334afcfSToomas Soome /// 1048*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_INJECTION_TABLE_REVISION 0x01 1049*f334afcfSToomas Soome 1050*f334afcfSToomas Soome /// 1051*f334afcfSToomas Soome /// EINJ Error Injection Actions 1052*f334afcfSToomas Soome /// 1053*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_BEGIN_INJECTION_OPERATION 0x00 1054*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x01 1055*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_SET_ERROR_TYPE 0x02 1056*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_GET_ERROR_TYPE 0x03 1057*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_END_OPERATION 0x04 1058*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_EXECUTE_OPERATION 0x05 1059*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_CHECK_BUSY_STATUS 0x06 1060*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_GET_COMMAND_STATUS 0x07 1061*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_TRIGGER_ERROR 0xFF 1062*f334afcfSToomas Soome 1063*f334afcfSToomas Soome /// 1064*f334afcfSToomas Soome /// EINJ Action Command Status 1065*f334afcfSToomas Soome /// 1066*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_SUCCESS 0x00 1067*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_UNKNOWN_FAILURE 0x01 1068*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_STATUS_INVALID_ACCESS 0x02 1069*f334afcfSToomas Soome 1070*f334afcfSToomas Soome /// 1071*f334afcfSToomas Soome /// EINJ Error Type Definition 1072*f334afcfSToomas Soome /// 1073*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0) 1074*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1) 1075*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2) 1076*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3) 1077*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4) 1078*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5) 1079*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6) 1080*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7) 1081*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8) 1082*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9) 1083*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10) 1084*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11) 1085*f334afcfSToomas Soome 1086*f334afcfSToomas Soome /// 1087*f334afcfSToomas Soome /// EINJ Injection Instructions 1088*f334afcfSToomas Soome /// 1089*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_READ_REGISTER 0x00 1090*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_READ_REGISTER_VALUE 0x01 1091*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_WRITE_REGISTER 0x02 1092*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_WRITE_REGISTER_VALUE 0x03 1093*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_NOOP 0x04 1094*f334afcfSToomas Soome 1095*f334afcfSToomas Soome /// 1096*f334afcfSToomas Soome /// EINJ Instruction Flags 1097*f334afcfSToomas Soome /// 1098*f334afcfSToomas Soome #define EFI_ACPI_4_0_EINJ_PRESERVE_REGISTER 0x01 1099*f334afcfSToomas Soome 1100*f334afcfSToomas Soome /// 1101*f334afcfSToomas Soome /// EINJ Injection Instruction Entry 1102*f334afcfSToomas Soome /// 1103*f334afcfSToomas Soome typedef struct { 1104*f334afcfSToomas Soome UINT8 InjectionAction; 1105*f334afcfSToomas Soome UINT8 Instruction; 1106*f334afcfSToomas Soome UINT8 Flags; 1107*f334afcfSToomas Soome UINT8 Reserved0; 1108*f334afcfSToomas Soome EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion; 1109*f334afcfSToomas Soome UINT64 Value; 1110*f334afcfSToomas Soome UINT64 Mask; 1111*f334afcfSToomas Soome } EFI_ACPI_4_0_EINJ_INJECTION_INSTRUCTION_ENTRY; 1112*f334afcfSToomas Soome 1113*f334afcfSToomas Soome /// 1114*f334afcfSToomas Soome /// EINJ Trigger Action Table 1115*f334afcfSToomas Soome /// 1116*f334afcfSToomas Soome typedef struct { 1117*f334afcfSToomas Soome UINT32 HeaderSize; 1118*f334afcfSToomas Soome UINT32 Revision; 1119*f334afcfSToomas Soome UINT32 TableSize; 1120*f334afcfSToomas Soome UINT32 EntryCount; 1121*f334afcfSToomas Soome } EFI_ACPI_4_0_EINJ_TRIGGER_ACTION_TABLE; 1122*f334afcfSToomas Soome 1123*f334afcfSToomas Soome // 1124*f334afcfSToomas Soome // Known table signatures 1125*f334afcfSToomas Soome // 1126*f334afcfSToomas Soome 1127*f334afcfSToomas Soome /// 1128*f334afcfSToomas Soome /// "RSD PTR " Root System Description Pointer 1129*f334afcfSToomas Soome /// 1130*f334afcfSToomas Soome #define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') 1131*f334afcfSToomas Soome 1132*f334afcfSToomas Soome /// 1133*f334afcfSToomas Soome /// "APIC" Multiple APIC Description Table 1134*f334afcfSToomas Soome /// 1135*f334afcfSToomas Soome #define EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C') 1136*f334afcfSToomas Soome 1137*f334afcfSToomas Soome /// 1138*f334afcfSToomas Soome /// "BERT" Boot Error Record Table 1139*f334afcfSToomas Soome /// 1140*f334afcfSToomas Soome #define EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T') 1141*f334afcfSToomas Soome 1142*f334afcfSToomas Soome /// 1143*f334afcfSToomas Soome /// "CPEP" Corrected Platform Error Polling Table 1144*f334afcfSToomas Soome /// 1145*f334afcfSToomas Soome #define EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P') 1146*f334afcfSToomas Soome 1147*f334afcfSToomas Soome /// 1148*f334afcfSToomas Soome /// "DSDT" Differentiated System Description Table 1149*f334afcfSToomas Soome /// 1150*f334afcfSToomas Soome #define EFI_ACPI_4_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T') 1151*f334afcfSToomas Soome 1152*f334afcfSToomas Soome /// 1153*f334afcfSToomas Soome /// "ECDT" Embedded Controller Boot Resources Table 1154*f334afcfSToomas Soome /// 1155*f334afcfSToomas Soome #define EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T') 1156*f334afcfSToomas Soome 1157*f334afcfSToomas Soome /// 1158*f334afcfSToomas Soome /// "EINJ" Error Injection Table 1159*f334afcfSToomas Soome /// 1160*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J') 1161*f334afcfSToomas Soome 1162*f334afcfSToomas Soome /// 1163*f334afcfSToomas Soome /// "ERST" Error Record Serialization Table 1164*f334afcfSToomas Soome /// 1165*f334afcfSToomas Soome #define EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T') 1166*f334afcfSToomas Soome 1167*f334afcfSToomas Soome /// 1168*f334afcfSToomas Soome /// "FACP" Fixed ACPI Description Table 1169*f334afcfSToomas Soome /// 1170*f334afcfSToomas Soome #define EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P') 1171*f334afcfSToomas Soome 1172*f334afcfSToomas Soome /// 1173*f334afcfSToomas Soome /// "FACS" Firmware ACPI Control Structure 1174*f334afcfSToomas Soome /// 1175*f334afcfSToomas Soome #define EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S') 1176*f334afcfSToomas Soome 1177*f334afcfSToomas Soome /// 1178*f334afcfSToomas Soome /// "HEST" Hardware Error Source Table 1179*f334afcfSToomas Soome /// 1180*f334afcfSToomas Soome #define EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T') 1181*f334afcfSToomas Soome 1182*f334afcfSToomas Soome /// 1183*f334afcfSToomas Soome /// "MSCT" Maximum System Characteristics Table 1184*f334afcfSToomas Soome /// 1185*f334afcfSToomas Soome #define EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T') 1186*f334afcfSToomas Soome 1187*f334afcfSToomas Soome /// 1188*f334afcfSToomas Soome /// "PSDT" Persistent System Description Table 1189*f334afcfSToomas Soome /// 1190*f334afcfSToomas Soome #define EFI_ACPI_4_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T') 1191*f334afcfSToomas Soome 1192*f334afcfSToomas Soome /// 1193*f334afcfSToomas Soome /// "RSDT" Root System Description Table 1194*f334afcfSToomas Soome /// 1195*f334afcfSToomas Soome #define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T') 1196*f334afcfSToomas Soome 1197*f334afcfSToomas Soome /// 1198*f334afcfSToomas Soome /// "SBST" Smart Battery Specification Table 1199*f334afcfSToomas Soome /// 1200*f334afcfSToomas Soome #define EFI_ACPI_4_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T') 1201*f334afcfSToomas Soome 1202*f334afcfSToomas Soome /// 1203*f334afcfSToomas Soome /// "SLIT" System Locality Information Table 1204*f334afcfSToomas Soome /// 1205*f334afcfSToomas Soome #define EFI_ACPI_4_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T') 1206*f334afcfSToomas Soome 1207*f334afcfSToomas Soome /// 1208*f334afcfSToomas Soome /// "SRAT" System Resource Affinity Table 1209*f334afcfSToomas Soome /// 1210*f334afcfSToomas Soome #define EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T') 1211*f334afcfSToomas Soome 1212*f334afcfSToomas Soome /// 1213*f334afcfSToomas Soome /// "SSDT" Secondary System Description Table 1214*f334afcfSToomas Soome /// 1215*f334afcfSToomas Soome #define EFI_ACPI_4_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T') 1216*f334afcfSToomas Soome 1217*f334afcfSToomas Soome /// 1218*f334afcfSToomas Soome /// "XSDT" Extended System Description Table 1219*f334afcfSToomas Soome /// 1220*f334afcfSToomas Soome #define EFI_ACPI_4_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T') 1221*f334afcfSToomas Soome 1222*f334afcfSToomas Soome /// 1223*f334afcfSToomas Soome /// "BOOT" MS Simple Boot Spec 1224*f334afcfSToomas Soome /// 1225*f334afcfSToomas Soome #define EFI_ACPI_4_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T') 1226*f334afcfSToomas Soome 1227*f334afcfSToomas Soome /// 1228*f334afcfSToomas Soome /// "DBGP" MS Debug Port Spec 1229*f334afcfSToomas Soome /// 1230*f334afcfSToomas Soome #define EFI_ACPI_4_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P') 1231*f334afcfSToomas Soome 1232*f334afcfSToomas Soome /// 1233*f334afcfSToomas Soome /// "DMAR" DMA Remapping Table 1234*f334afcfSToomas Soome /// 1235*f334afcfSToomas Soome #define EFI_ACPI_4_0_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R') 1236*f334afcfSToomas Soome 1237*f334afcfSToomas Soome /// 1238*f334afcfSToomas Soome /// "ETDT" Event Timer Description Table 1239*f334afcfSToomas Soome /// 1240*f334afcfSToomas Soome #define EFI_ACPI_4_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T') 1241*f334afcfSToomas Soome 1242*f334afcfSToomas Soome /// 1243*f334afcfSToomas Soome /// "HPET" IA-PC High Precision Event Timer Table 1244*f334afcfSToomas Soome /// 1245*f334afcfSToomas Soome #define EFI_ACPI_4_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T') 1246*f334afcfSToomas Soome 1247*f334afcfSToomas Soome /// 1248*f334afcfSToomas Soome /// "iBFT" iSCSI Boot Firmware Table 1249*f334afcfSToomas Soome /// 1250*f334afcfSToomas Soome #define EFI_ACPI_4_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T') 1251*f334afcfSToomas Soome 1252*f334afcfSToomas Soome /// 1253*f334afcfSToomas Soome /// "IVRS" I/O Virtualization Reporting Structure 1254*f334afcfSToomas Soome /// 1255*f334afcfSToomas Soome #define EFI_ACPI_4_0_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S') 1256*f334afcfSToomas Soome 1257*f334afcfSToomas Soome /// 1258*f334afcfSToomas Soome /// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table 1259*f334afcfSToomas Soome /// 1260*f334afcfSToomas Soome #define EFI_ACPI_4_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G') 1261*f334afcfSToomas Soome 1262*f334afcfSToomas Soome /// 1263*f334afcfSToomas Soome /// "MCHI" Management Controller Host Interface Table 1264*f334afcfSToomas Soome /// 1265*f334afcfSToomas Soome #define EFI_ACPI_4_0_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I') 1266*f334afcfSToomas Soome 1267*f334afcfSToomas Soome /// 1268*f334afcfSToomas Soome /// "SPCR" Serial Port Console Redirection Table 1269*f334afcfSToomas Soome /// 1270*f334afcfSToomas Soome #define EFI_ACPI_4_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') 1271*f334afcfSToomas Soome 1272*f334afcfSToomas Soome /// 1273*f334afcfSToomas Soome /// "SPMI" Server Platform Management Interface Table 1274*f334afcfSToomas Soome /// 1275*f334afcfSToomas Soome #define EFI_ACPI_4_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I') 1276*f334afcfSToomas Soome 1277*f334afcfSToomas Soome /// 1278*f334afcfSToomas Soome /// "TCPA" Trusted Computing Platform Alliance Capabilities Table 1279*f334afcfSToomas Soome /// 1280*f334afcfSToomas Soome #define EFI_ACPI_4_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A') 1281*f334afcfSToomas Soome 1282*f334afcfSToomas Soome /// 1283*f334afcfSToomas Soome /// "UEFI" UEFI ACPI Data Table 1284*f334afcfSToomas Soome /// 1285*f334afcfSToomas Soome #define EFI_ACPI_4_0_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I') 1286*f334afcfSToomas Soome 1287*f334afcfSToomas Soome /// 1288*f334afcfSToomas Soome /// "WAET" Windows ACPI Enlightenment Table 1289*f334afcfSToomas Soome /// 1290*f334afcfSToomas Soome #define EFI_ACPI_4_0_WINDOWS_ACPI_ENLIGHTENMENT_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T') 1291*f334afcfSToomas Soome 1292*f334afcfSToomas Soome /// 1293*f334afcfSToomas Soome /// "WDAT" Watchdog Action Table 1294*f334afcfSToomas Soome /// 1295*f334afcfSToomas Soome #define EFI_ACPI_4_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T') 1296*f334afcfSToomas Soome 1297*f334afcfSToomas Soome /// 1298*f334afcfSToomas Soome /// "WDRT" Watchdog Resource Table 1299*f334afcfSToomas Soome /// 1300*f334afcfSToomas Soome #define EFI_ACPI_4_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T') 1301*f334afcfSToomas Soome 1302*f334afcfSToomas Soome #pragma pack() 1303*f334afcfSToomas Soome 1304*f334afcfSToomas Soome #endif 1305