10d1ba665SWarner Losh /** @file
20d1ba665SWarner Losh   ACPI 3.0 definitions from the ACPI Specification Revision 3.0b October 10, 2006
30d1ba665SWarner Losh 
4*3245fa21SMitchell Horne   Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5*3245fa21SMitchell Horne   SPDX-License-Identifier: BSD-2-Clause-Patent
60d1ba665SWarner Losh **/
70d1ba665SWarner Losh 
80d1ba665SWarner Losh #ifndef _ACPI_3_0_H_
90d1ba665SWarner Losh #define _ACPI_3_0_H_
100d1ba665SWarner Losh 
110d1ba665SWarner Losh #include <IndustryStandard/Acpi20.h>
120d1ba665SWarner Losh 
130d1ba665SWarner Losh //
14*3245fa21SMitchell Horne // Define for Descriptor
150d1ba665SWarner Losh //
160d1ba665SWarner Losh #define ACPI_LARGE_EXTENDED_ADDRESS_SPACE_DESCRIPTOR_NAME    0x0B
170d1ba665SWarner Losh 
180d1ba665SWarner Losh #define ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR    0x8B
190d1ba665SWarner Losh 
200d1ba665SWarner Losh //
210d1ba665SWarner Losh // Ensure proper structure formats
220d1ba665SWarner Losh //
230d1ba665SWarner Losh #pragma pack(1)
240d1ba665SWarner Losh 
250d1ba665SWarner Losh ///
260d1ba665SWarner Losh /// Extended Address Space Descriptor
270d1ba665SWarner Losh ///
280d1ba665SWarner Losh typedef PACKED struct {
290d1ba665SWarner Losh   ACPI_LARGE_RESOURCE_HEADER    Header;
300d1ba665SWarner Losh   UINT8                         ResType;
310d1ba665SWarner Losh   UINT8                         GenFlag;
320d1ba665SWarner Losh   UINT8                         SpecificFlag;
330d1ba665SWarner Losh   UINT8                         RevisionId;
340d1ba665SWarner Losh   UINT8                         Reserved;
350d1ba665SWarner Losh   UINT64                        AddrSpaceGranularity;
360d1ba665SWarner Losh   UINT64                        AddrRangeMin;
370d1ba665SWarner Losh   UINT64                        AddrRangeMax;
380d1ba665SWarner Losh   UINT64                        AddrTranslationOffset;
390d1ba665SWarner Losh   UINT64                        AddrLen;
400d1ba665SWarner Losh   UINT64                        TypeSpecificAttribute;
410d1ba665SWarner Losh } EFI_ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR;
420d1ba665SWarner Losh 
430d1ba665SWarner Losh #pragma pack()
440d1ba665SWarner Losh 
450d1ba665SWarner Losh //
460d1ba665SWarner Losh // Memory Type Specific Flags
470d1ba665SWarner Losh //
480d1ba665SWarner Losh #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UC  0x0000000000000001
490d1ba665SWarner Losh #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WC  0x0000000000000002
500d1ba665SWarner Losh #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WT  0x0000000000000004
510d1ba665SWarner Losh #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WB  0x0000000000000008
520d1ba665SWarner Losh #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UCE 0x0000000000000010
530d1ba665SWarner Losh #define EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_NV  0x0000000000008000
540d1ba665SWarner Losh 
550d1ba665SWarner Losh //
560d1ba665SWarner Losh // Ensure proper structure formats
570d1ba665SWarner Losh //
580d1ba665SWarner Losh #pragma pack(1)
590d1ba665SWarner Losh 
600d1ba665SWarner Losh ///
610d1ba665SWarner Losh /// ACPI 3.0 Generic Address Space definition
620d1ba665SWarner Losh ///
630d1ba665SWarner Losh typedef struct {
640d1ba665SWarner Losh   UINT8   AddressSpaceId;
650d1ba665SWarner Losh   UINT8   RegisterBitWidth;
660d1ba665SWarner Losh   UINT8   RegisterBitOffset;
670d1ba665SWarner Losh   UINT8   AccessSize;
680d1ba665SWarner Losh   UINT64  Address;
690d1ba665SWarner Losh } EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE;
700d1ba665SWarner Losh 
710d1ba665SWarner Losh //
720d1ba665SWarner Losh // Generic Address Space Address IDs
730d1ba665SWarner Losh //
740d1ba665SWarner Losh #define EFI_ACPI_3_0_SYSTEM_MEMORY              0
750d1ba665SWarner Losh #define EFI_ACPI_3_0_SYSTEM_IO                  1
760d1ba665SWarner Losh #define EFI_ACPI_3_0_PCI_CONFIGURATION_SPACE    2
770d1ba665SWarner Losh #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER        3
780d1ba665SWarner Losh #define EFI_ACPI_3_0_SMBUS                      4
790d1ba665SWarner Losh #define EFI_ACPI_3_0_FUNCTIONAL_FIXED_HARDWARE  0x7F
800d1ba665SWarner Losh 
810d1ba665SWarner Losh //
820d1ba665SWarner Losh // Generic Address Space Access Sizes
830d1ba665SWarner Losh //
840d1ba665SWarner Losh #define EFI_ACPI_3_0_UNDEFINED  0
850d1ba665SWarner Losh #define EFI_ACPI_3_0_BYTE       1
860d1ba665SWarner Losh #define EFI_ACPI_3_0_WORD       2
870d1ba665SWarner Losh #define EFI_ACPI_3_0_DWORD      3
880d1ba665SWarner Losh #define EFI_ACPI_3_0_QWORD      4
890d1ba665SWarner Losh 
900d1ba665SWarner Losh //
910d1ba665SWarner Losh // ACPI 3.0 table structures
920d1ba665SWarner Losh //
930d1ba665SWarner Losh 
940d1ba665SWarner Losh ///
950d1ba665SWarner Losh /// Root System Description Pointer Structure
960d1ba665SWarner Losh ///
970d1ba665SWarner Losh typedef struct {
980d1ba665SWarner Losh   UINT64  Signature;
990d1ba665SWarner Losh   UINT8   Checksum;
1000d1ba665SWarner Losh   UINT8   OemId[6];
1010d1ba665SWarner Losh   UINT8   Revision;
1020d1ba665SWarner Losh   UINT32  RsdtAddress;
1030d1ba665SWarner Losh   UINT32  Length;
1040d1ba665SWarner Losh   UINT64  XsdtAddress;
1050d1ba665SWarner Losh   UINT8   ExtendedChecksum;
1060d1ba665SWarner Losh   UINT8   Reserved[3];
1070d1ba665SWarner Losh } EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
1080d1ba665SWarner Losh 
1090d1ba665SWarner Losh ///
1100d1ba665SWarner Losh /// RSD_PTR Revision (as defined in ACPI 3.0b spec.)
1110d1ba665SWarner Losh ///
1120d1ba665SWarner Losh #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02  ///< ACPISpec (Revision 3.0b) says current value is 2
1130d1ba665SWarner Losh 
1140d1ba665SWarner Losh ///
1150d1ba665SWarner Losh /// Common table header, this prefaces all ACPI tables, including FACS, but
1160d1ba665SWarner Losh /// excluding the RSD PTR structure
1170d1ba665SWarner Losh ///
1180d1ba665SWarner Losh typedef struct {
1190d1ba665SWarner Losh   UINT32  Signature;
1200d1ba665SWarner Losh   UINT32  Length;
1210d1ba665SWarner Losh } EFI_ACPI_3_0_COMMON_HEADER;
1220d1ba665SWarner Losh 
1230d1ba665SWarner Losh //
1240d1ba665SWarner Losh // Root System Description Table
1250d1ba665SWarner Losh // No definition needed as it is a common description table header, the same with
1260d1ba665SWarner Losh // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
1270d1ba665SWarner Losh //
1280d1ba665SWarner Losh 
1290d1ba665SWarner Losh ///
1300d1ba665SWarner Losh /// RSDT Revision (as defined in ACPI 3.0 spec.)
1310d1ba665SWarner Losh ///
1320d1ba665SWarner Losh #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
1330d1ba665SWarner Losh 
1340d1ba665SWarner Losh //
1350d1ba665SWarner Losh // Extended System Description Table
1360d1ba665SWarner Losh // No definition needed as it is a common description table header, the same with
1370d1ba665SWarner Losh // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
1380d1ba665SWarner Losh //
1390d1ba665SWarner Losh 
1400d1ba665SWarner Losh ///
1410d1ba665SWarner Losh /// XSDT Revision (as defined in ACPI 3.0 spec.)
1420d1ba665SWarner Losh ///
1430d1ba665SWarner Losh #define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
1440d1ba665SWarner Losh 
1450d1ba665SWarner Losh ///
1460d1ba665SWarner Losh /// Fixed ACPI Description Table Structure (FADT)
1470d1ba665SWarner Losh ///
1480d1ba665SWarner Losh typedef struct {
1490d1ba665SWarner Losh   EFI_ACPI_DESCRIPTION_HEADER             Header;
1500d1ba665SWarner Losh   UINT32                                  FirmwareCtrl;
1510d1ba665SWarner Losh   UINT32                                  Dsdt;
1520d1ba665SWarner Losh   UINT8                                   Reserved0;
1530d1ba665SWarner Losh   UINT8                                   PreferredPmProfile;
1540d1ba665SWarner Losh   UINT16                                  SciInt;
1550d1ba665SWarner Losh   UINT32                                  SmiCmd;
1560d1ba665SWarner Losh   UINT8                                   AcpiEnable;
1570d1ba665SWarner Losh   UINT8                                   AcpiDisable;
1580d1ba665SWarner Losh   UINT8                                   S4BiosReq;
1590d1ba665SWarner Losh   UINT8                                   PstateCnt;
1600d1ba665SWarner Losh   UINT32                                  Pm1aEvtBlk;
1610d1ba665SWarner Losh   UINT32                                  Pm1bEvtBlk;
1620d1ba665SWarner Losh   UINT32                                  Pm1aCntBlk;
1630d1ba665SWarner Losh   UINT32                                  Pm1bCntBlk;
1640d1ba665SWarner Losh   UINT32                                  Pm2CntBlk;
1650d1ba665SWarner Losh   UINT32                                  PmTmrBlk;
1660d1ba665SWarner Losh   UINT32                                  Gpe0Blk;
1670d1ba665SWarner Losh   UINT32                                  Gpe1Blk;
1680d1ba665SWarner Losh   UINT8                                   Pm1EvtLen;
1690d1ba665SWarner Losh   UINT8                                   Pm1CntLen;
1700d1ba665SWarner Losh   UINT8                                   Pm2CntLen;
1710d1ba665SWarner Losh   UINT8                                   PmTmrLen;
1720d1ba665SWarner Losh   UINT8                                   Gpe0BlkLen;
1730d1ba665SWarner Losh   UINT8                                   Gpe1BlkLen;
1740d1ba665SWarner Losh   UINT8                                   Gpe1Base;
1750d1ba665SWarner Losh   UINT8                                   CstCnt;
1760d1ba665SWarner Losh   UINT16                                  PLvl2Lat;
1770d1ba665SWarner Losh   UINT16                                  PLvl3Lat;
1780d1ba665SWarner Losh   UINT16                                  FlushSize;
1790d1ba665SWarner Losh   UINT16                                  FlushStride;
1800d1ba665SWarner Losh   UINT8                                   DutyOffset;
1810d1ba665SWarner Losh   UINT8                                   DutyWidth;
1820d1ba665SWarner Losh   UINT8                                   DayAlrm;
1830d1ba665SWarner Losh   UINT8                                   MonAlrm;
1840d1ba665SWarner Losh   UINT8                                   Century;
1850d1ba665SWarner Losh   UINT16                                  IaPcBootArch;
1860d1ba665SWarner Losh   UINT8                                   Reserved1;
1870d1ba665SWarner Losh   UINT32                                  Flags;
1880d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  ResetReg;
1890d1ba665SWarner Losh   UINT8                                   ResetValue;
1900d1ba665SWarner Losh   UINT8                                   Reserved2[3];
1910d1ba665SWarner Losh   UINT64                                  XFirmwareCtrl;
1920d1ba665SWarner Losh   UINT64                                  XDsdt;
1930d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm1aEvtBlk;
1940d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm1bEvtBlk;
1950d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm1aCntBlk;
1960d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm1bCntBlk;
1970d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPm2CntBlk;
1980d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XPmTmrBlk;
1990d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XGpe0Blk;
2000d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  XGpe1Blk;
2010d1ba665SWarner Losh } EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE;
2020d1ba665SWarner Losh 
2030d1ba665SWarner Losh ///
2040d1ba665SWarner Losh /// FADT Version (as defined in ACPI 3.0 spec.)
2050d1ba665SWarner Losh ///
2060d1ba665SWarner Losh #define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION  0x04
2070d1ba665SWarner Losh 
2080d1ba665SWarner Losh //
2090d1ba665SWarner Losh // Fixed ACPI Description Table Preferred Power Management Profile
2100d1ba665SWarner Losh //
2110d1ba665SWarner Losh #define EFI_ACPI_3_0_PM_PROFILE_UNSPECIFIED         0
2120d1ba665SWarner Losh #define EFI_ACPI_3_0_PM_PROFILE_DESKTOP             1
2130d1ba665SWarner Losh #define EFI_ACPI_3_0_PM_PROFILE_MOBILE              2
2140d1ba665SWarner Losh #define EFI_ACPI_3_0_PM_PROFILE_WORKSTATION         3
2150d1ba665SWarner Losh #define EFI_ACPI_3_0_PM_PROFILE_ENTERPRISE_SERVER   4
2160d1ba665SWarner Losh #define EFI_ACPI_3_0_PM_PROFILE_SOHO_SERVER         5
2170d1ba665SWarner Losh #define EFI_ACPI_3_0_PM_PROFILE_APPLIANCE_PC        6
2180d1ba665SWarner Losh #define EFI_ACPI_3_0_PM_PROFILE_PERFORMANCE_SERVER  7
2190d1ba665SWarner Losh 
2200d1ba665SWarner Losh //
2210d1ba665SWarner Losh // Fixed ACPI Description Table Boot Architecture Flags
2220d1ba665SWarner Losh // All other bits are reserved and must be set to 0.
2230d1ba665SWarner Losh //
2240d1ba665SWarner Losh #define EFI_ACPI_3_0_LEGACY_DEVICES              BIT0
2250d1ba665SWarner Losh #define EFI_ACPI_3_0_8042                        BIT1
2260d1ba665SWarner Losh #define EFI_ACPI_3_0_VGA_NOT_PRESENT             BIT2
2270d1ba665SWarner Losh #define EFI_ACPI_3_0_MSI_NOT_SUPPORTED           BIT3
2280d1ba665SWarner Losh #define EFI_ACPI_3_0_PCIE_ASPM_CONTROLS          BIT4
2290d1ba665SWarner Losh 
2300d1ba665SWarner Losh //
2310d1ba665SWarner Losh // Fixed ACPI Description Table Fixed Feature Flags
2320d1ba665SWarner Losh // All other bits are reserved and must be set to 0.
2330d1ba665SWarner Losh //
2340d1ba665SWarner Losh #define EFI_ACPI_3_0_WBINVD                                 BIT0
2350d1ba665SWarner Losh #define EFI_ACPI_3_0_WBINVD_FLUSH                           BIT1
2360d1ba665SWarner Losh #define EFI_ACPI_3_0_PROC_C1                                BIT2
2370d1ba665SWarner Losh #define EFI_ACPI_3_0_P_LVL2_UP                              BIT3
2380d1ba665SWarner Losh #define EFI_ACPI_3_0_PWR_BUTTON                             BIT4
2390d1ba665SWarner Losh #define EFI_ACPI_3_0_SLP_BUTTON                             BIT5
2400d1ba665SWarner Losh #define EFI_ACPI_3_0_FIX_RTC                                BIT6
2410d1ba665SWarner Losh #define EFI_ACPI_3_0_RTC_S4                                 BIT7
2420d1ba665SWarner Losh #define EFI_ACPI_3_0_TMR_VAL_EXT                            BIT8
2430d1ba665SWarner Losh #define EFI_ACPI_3_0_DCK_CAP                                BIT9
2440d1ba665SWarner Losh #define EFI_ACPI_3_0_RESET_REG_SUP                          BIT10
2450d1ba665SWarner Losh #define EFI_ACPI_3_0_SEALED_CASE                            BIT11
2460d1ba665SWarner Losh #define EFI_ACPI_3_0_HEADLESS                               BIT12
2470d1ba665SWarner Losh #define EFI_ACPI_3_0_CPU_SW_SLP                             BIT13
2480d1ba665SWarner Losh #define EFI_ACPI_3_0_PCI_EXP_WAK                            BIT14
2490d1ba665SWarner Losh #define EFI_ACPI_3_0_USE_PLATFORM_CLOCK                     BIT15
2500d1ba665SWarner Losh #define EFI_ACPI_3_0_S4_RTC_STS_VALID                       BIT16
2510d1ba665SWarner Losh #define EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE                BIT17
2520d1ba665SWarner Losh #define EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL               BIT18
2530d1ba665SWarner Losh #define EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE   BIT19
2540d1ba665SWarner Losh 
2550d1ba665SWarner Losh ///
2560d1ba665SWarner Losh /// Firmware ACPI Control Structure
2570d1ba665SWarner Losh ///
2580d1ba665SWarner Losh typedef struct {
2590d1ba665SWarner Losh   UINT32  Signature;
2600d1ba665SWarner Losh   UINT32  Length;
2610d1ba665SWarner Losh   UINT32  HardwareSignature;
2620d1ba665SWarner Losh   UINT32  FirmwareWakingVector;
2630d1ba665SWarner Losh   UINT32  GlobalLock;
2640d1ba665SWarner Losh   UINT32  Flags;
2650d1ba665SWarner Losh   UINT64  XFirmwareWakingVector;
2660d1ba665SWarner Losh   UINT8   Version;
2670d1ba665SWarner Losh   UINT8   Reserved[31];
2680d1ba665SWarner Losh } EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
2690d1ba665SWarner Losh 
2700d1ba665SWarner Losh ///
2710d1ba665SWarner Losh /// FACS Version (as defined in ACPI 3.0 spec.)
2720d1ba665SWarner Losh ///
2730d1ba665SWarner Losh #define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION  0x01
2740d1ba665SWarner Losh 
2750d1ba665SWarner Losh ///
2760d1ba665SWarner Losh /// Firmware Control Structure Feature Flags
2770d1ba665SWarner Losh /// All other bits are reserved and must be set to 0.
2780d1ba665SWarner Losh ///
2790d1ba665SWarner Losh #define EFI_ACPI_3_0_S4BIOS_F       BIT0
2800d1ba665SWarner Losh 
2810d1ba665SWarner Losh //
2820d1ba665SWarner Losh // Differentiated System Description Table,
2830d1ba665SWarner Losh // Secondary System Description Table
2840d1ba665SWarner Losh // and Persistent System Description Table,
2850d1ba665SWarner Losh // no definition needed as they are common description table header, the same with
2860d1ba665SWarner Losh // EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
2870d1ba665SWarner Losh //
2880d1ba665SWarner Losh #define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION   0x02
2890d1ba665SWarner Losh #define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION        0x02
2900d1ba665SWarner Losh 
2910d1ba665SWarner Losh ///
2920d1ba665SWarner Losh /// Multiple APIC Description Table header definition.  The rest of the table
2930d1ba665SWarner Losh /// must be defined in a platform specific manner.
2940d1ba665SWarner Losh ///
2950d1ba665SWarner Losh typedef struct {
2960d1ba665SWarner Losh   EFI_ACPI_DESCRIPTION_HEADER Header;
2970d1ba665SWarner Losh   UINT32                      LocalApicAddress;
2980d1ba665SWarner Losh   UINT32                      Flags;
2990d1ba665SWarner Losh } EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
3000d1ba665SWarner Losh 
3010d1ba665SWarner Losh ///
3020d1ba665SWarner Losh /// MADT Revision (as defined in ACPI 3.0 spec.)
3030d1ba665SWarner Losh ///
3040d1ba665SWarner Losh #define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x02
3050d1ba665SWarner Losh 
3060d1ba665SWarner Losh ///
3070d1ba665SWarner Losh /// Multiple APIC Flags
3080d1ba665SWarner Losh /// All other bits are reserved and must be set to 0.
3090d1ba665SWarner Losh ///
3100d1ba665SWarner Losh #define EFI_ACPI_3_0_PCAT_COMPAT         BIT0
3110d1ba665SWarner Losh 
3120d1ba665SWarner Losh //
3130d1ba665SWarner Losh // Multiple APIC Description Table APIC structure types
3140d1ba665SWarner Losh // All other values between 0x09 an 0xFF are reserved and
3150d1ba665SWarner Losh // will be ignored by OSPM.
3160d1ba665SWarner Losh //
3170d1ba665SWarner Losh #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC           0x00
3180d1ba665SWarner Losh #define EFI_ACPI_3_0_IO_APIC                        0x01
3190d1ba665SWarner Losh #define EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE      0x02
3200d1ba665SWarner Losh #define EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE  0x03
3210d1ba665SWarner Losh #define EFI_ACPI_3_0_LOCAL_APIC_NMI                 0x04
3220d1ba665SWarner Losh #define EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE    0x05
3230d1ba665SWarner Losh #define EFI_ACPI_3_0_IO_SAPIC                       0x06
3240d1ba665SWarner Losh #define EFI_ACPI_3_0_LOCAL_SAPIC                    0x07
3250d1ba665SWarner Losh #define EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES     0x08
3260d1ba665SWarner Losh 
3270d1ba665SWarner Losh //
3280d1ba665SWarner Losh // APIC Structure Definitions
3290d1ba665SWarner Losh //
3300d1ba665SWarner Losh 
3310d1ba665SWarner Losh ///
3320d1ba665SWarner Losh /// Processor Local APIC Structure Definition
3330d1ba665SWarner Losh ///
3340d1ba665SWarner Losh typedef struct {
3350d1ba665SWarner Losh   UINT8   Type;
3360d1ba665SWarner Losh   UINT8   Length;
3370d1ba665SWarner Losh   UINT8   AcpiProcessorId;
3380d1ba665SWarner Losh   UINT8   ApicId;
3390d1ba665SWarner Losh   UINT32  Flags;
3400d1ba665SWarner Losh } EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
3410d1ba665SWarner Losh 
3420d1ba665SWarner Losh ///
3430d1ba665SWarner Losh /// Local APIC Flags.  All other bits are reserved and must be 0.
3440d1ba665SWarner Losh ///
3450d1ba665SWarner Losh #define EFI_ACPI_3_0_LOCAL_APIC_ENABLED        BIT0
3460d1ba665SWarner Losh 
3470d1ba665SWarner Losh ///
3480d1ba665SWarner Losh /// IO APIC Structure
3490d1ba665SWarner Losh ///
3500d1ba665SWarner Losh typedef struct {
3510d1ba665SWarner Losh   UINT8   Type;
3520d1ba665SWarner Losh   UINT8   Length;
3530d1ba665SWarner Losh   UINT8   IoApicId;
3540d1ba665SWarner Losh   UINT8   Reserved;
3550d1ba665SWarner Losh   UINT32  IoApicAddress;
3560d1ba665SWarner Losh   UINT32  GlobalSystemInterruptBase;
3570d1ba665SWarner Losh } EFI_ACPI_3_0_IO_APIC_STRUCTURE;
3580d1ba665SWarner Losh 
3590d1ba665SWarner Losh ///
3600d1ba665SWarner Losh /// Interrupt Source Override Structure
3610d1ba665SWarner Losh ///
3620d1ba665SWarner Losh typedef struct {
3630d1ba665SWarner Losh   UINT8   Type;
3640d1ba665SWarner Losh   UINT8   Length;
3650d1ba665SWarner Losh   UINT8   Bus;
3660d1ba665SWarner Losh   UINT8   Source;
3670d1ba665SWarner Losh   UINT32  GlobalSystemInterrupt;
3680d1ba665SWarner Losh   UINT16  Flags;
3690d1ba665SWarner Losh } EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
3700d1ba665SWarner Losh 
3710d1ba665SWarner Losh ///
3720d1ba665SWarner Losh /// Platform Interrupt Sources Structure Definition
3730d1ba665SWarner Losh ///
3740d1ba665SWarner Losh typedef struct {
3750d1ba665SWarner Losh   UINT8   Type;
3760d1ba665SWarner Losh   UINT8   Length;
3770d1ba665SWarner Losh   UINT16  Flags;
3780d1ba665SWarner Losh   UINT8   InterruptType;
3790d1ba665SWarner Losh   UINT8   ProcessorId;
3800d1ba665SWarner Losh   UINT8   ProcessorEid;
3810d1ba665SWarner Losh   UINT8   IoSapicVector;
3820d1ba665SWarner Losh   UINT32  GlobalSystemInterrupt;
3830d1ba665SWarner Losh   UINT32  PlatformInterruptSourceFlags;
3840d1ba665SWarner Losh   UINT8   CpeiProcessorOverride;
3850d1ba665SWarner Losh   UINT8   Reserved[31];
3860d1ba665SWarner Losh } EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;
3870d1ba665SWarner Losh 
3880d1ba665SWarner Losh //
3890d1ba665SWarner Losh // MPS INTI flags.
3900d1ba665SWarner Losh // All other bits are reserved and must be set to 0.
3910d1ba665SWarner Losh //
3920d1ba665SWarner Losh #define EFI_ACPI_3_0_POLARITY      (3 << 0)
3930d1ba665SWarner Losh #define EFI_ACPI_3_0_TRIGGER_MODE  (3 << 2)
3940d1ba665SWarner Losh 
3950d1ba665SWarner Losh ///
3960d1ba665SWarner Losh /// Non-Maskable Interrupt Source Structure
3970d1ba665SWarner Losh ///
3980d1ba665SWarner Losh typedef struct {
3990d1ba665SWarner Losh   UINT8   Type;
4000d1ba665SWarner Losh   UINT8   Length;
4010d1ba665SWarner Losh   UINT16  Flags;
4020d1ba665SWarner Losh   UINT32  GlobalSystemInterrupt;
4030d1ba665SWarner Losh } EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
4040d1ba665SWarner Losh 
4050d1ba665SWarner Losh ///
4060d1ba665SWarner Losh /// Local APIC NMI Structure
4070d1ba665SWarner Losh ///
4080d1ba665SWarner Losh typedef struct {
4090d1ba665SWarner Losh   UINT8   Type;
4100d1ba665SWarner Losh   UINT8   Length;
4110d1ba665SWarner Losh   UINT8   AcpiProcessorId;
4120d1ba665SWarner Losh   UINT16  Flags;
4130d1ba665SWarner Losh   UINT8   LocalApicLint;
4140d1ba665SWarner Losh } EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE;
4150d1ba665SWarner Losh 
4160d1ba665SWarner Losh ///
4170d1ba665SWarner Losh /// Local APIC Address Override Structure
4180d1ba665SWarner Losh ///
4190d1ba665SWarner Losh typedef struct {
4200d1ba665SWarner Losh   UINT8   Type;
4210d1ba665SWarner Losh   UINT8   Length;
4220d1ba665SWarner Losh   UINT16  Reserved;
4230d1ba665SWarner Losh   UINT64  LocalApicAddress;
4240d1ba665SWarner Losh } EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
4250d1ba665SWarner Losh 
4260d1ba665SWarner Losh ///
4270d1ba665SWarner Losh /// IO SAPIC Structure
4280d1ba665SWarner Losh ///
4290d1ba665SWarner Losh typedef struct {
4300d1ba665SWarner Losh   UINT8   Type;
4310d1ba665SWarner Losh   UINT8   Length;
4320d1ba665SWarner Losh   UINT8   IoApicId;
4330d1ba665SWarner Losh   UINT8   Reserved;
4340d1ba665SWarner Losh   UINT32  GlobalSystemInterruptBase;
4350d1ba665SWarner Losh   UINT64  IoSapicAddress;
4360d1ba665SWarner Losh } EFI_ACPI_3_0_IO_SAPIC_STRUCTURE;
4370d1ba665SWarner Losh 
4380d1ba665SWarner Losh ///
4390d1ba665SWarner Losh /// Local SAPIC Structure
4400d1ba665SWarner Losh /// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
4410d1ba665SWarner Losh ///
4420d1ba665SWarner Losh typedef struct {
4430d1ba665SWarner Losh   UINT8   Type;
4440d1ba665SWarner Losh   UINT8   Length;
4450d1ba665SWarner Losh   UINT8   AcpiProcessorId;
4460d1ba665SWarner Losh   UINT8   LocalSapicId;
4470d1ba665SWarner Losh   UINT8   LocalSapicEid;
4480d1ba665SWarner Losh   UINT8   Reserved[3];
4490d1ba665SWarner Losh   UINT32  Flags;
4500d1ba665SWarner Losh   UINT32  ACPIProcessorUIDValue;
4510d1ba665SWarner Losh } EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
4520d1ba665SWarner Losh 
4530d1ba665SWarner Losh ///
4540d1ba665SWarner Losh /// Platform Interrupt Sources Structure
4550d1ba665SWarner Losh ///
4560d1ba665SWarner Losh typedef struct {
4570d1ba665SWarner Losh   UINT8   Type;
4580d1ba665SWarner Losh   UINT8   Length;
4590d1ba665SWarner Losh   UINT16  Flags;
4600d1ba665SWarner Losh   UINT8   InterruptType;
4610d1ba665SWarner Losh   UINT8   ProcessorId;
4620d1ba665SWarner Losh   UINT8   ProcessorEid;
4630d1ba665SWarner Losh   UINT8   IoSapicVector;
4640d1ba665SWarner Losh   UINT32  GlobalSystemInterrupt;
4650d1ba665SWarner Losh   UINT32  PlatformInterruptSourceFlags;
4660d1ba665SWarner Losh } EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
4670d1ba665SWarner Losh 
4680d1ba665SWarner Losh ///
4690d1ba665SWarner Losh /// Platform Interrupt Source Flags.
4700d1ba665SWarner Losh /// All other bits are reserved and must be set to 0.
4710d1ba665SWarner Losh ///
4720d1ba665SWarner Losh #define EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE          BIT0
4730d1ba665SWarner Losh 
4740d1ba665SWarner Losh ///
4750d1ba665SWarner Losh /// Smart Battery Description Table (SBST)
4760d1ba665SWarner Losh ///
4770d1ba665SWarner Losh typedef struct {
4780d1ba665SWarner Losh   EFI_ACPI_DESCRIPTION_HEADER Header;
4790d1ba665SWarner Losh   UINT32                      WarningEnergyLevel;
4800d1ba665SWarner Losh   UINT32                      LowEnergyLevel;
4810d1ba665SWarner Losh   UINT32                      CriticalEnergyLevel;
4820d1ba665SWarner Losh } EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE;
4830d1ba665SWarner Losh 
4840d1ba665SWarner Losh ///
4850d1ba665SWarner Losh /// SBST Version (as defined in ACPI 3.0 spec.)
4860d1ba665SWarner Losh ///
4870d1ba665SWarner Losh #define EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
4880d1ba665SWarner Losh 
4890d1ba665SWarner Losh ///
4900d1ba665SWarner Losh /// Embedded Controller Boot Resources Table (ECDT)
4910d1ba665SWarner Losh /// The table is followed by a null terminated ASCII string that contains
4920d1ba665SWarner Losh /// a fully qualified reference to the name space object.
4930d1ba665SWarner Losh ///
4940d1ba665SWarner Losh typedef struct {
4950d1ba665SWarner Losh   EFI_ACPI_DESCRIPTION_HEADER             Header;
4960d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  EcControl;
4970d1ba665SWarner Losh   EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE  EcData;
4980d1ba665SWarner Losh   UINT32                                  Uid;
4990d1ba665SWarner Losh   UINT8                                   GpeBit;
5000d1ba665SWarner Losh } EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
5010d1ba665SWarner Losh 
5020d1ba665SWarner Losh ///
5030d1ba665SWarner Losh /// ECDT Version (as defined in ACPI 3.0 spec.)
5040d1ba665SWarner Losh ///
5050d1ba665SWarner Losh #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION  0x01
5060d1ba665SWarner Losh 
5070d1ba665SWarner Losh ///
5080d1ba665SWarner Losh /// System Resource Affinity Table (SRAT.  The rest of the table
5090d1ba665SWarner Losh /// must be defined in a platform specific manner.
5100d1ba665SWarner Losh ///
5110d1ba665SWarner Losh typedef struct {
5120d1ba665SWarner Losh   EFI_ACPI_DESCRIPTION_HEADER Header;
5130d1ba665SWarner Losh   UINT32                      Reserved1;  ///< Must be set to 1
5140d1ba665SWarner Losh   UINT64                      Reserved2;
5150d1ba665SWarner Losh } EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;
5160d1ba665SWarner Losh 
5170d1ba665SWarner Losh ///
5180d1ba665SWarner Losh /// SRAT Version (as defined in ACPI 3.0 spec.)
5190d1ba665SWarner Losh ///
5200d1ba665SWarner Losh #define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION  0x02
5210d1ba665SWarner Losh 
5220d1ba665SWarner Losh //
5230d1ba665SWarner Losh // SRAT structure types.
5240d1ba665SWarner Losh // All other values between 0x02 an 0xFF are reserved and
5250d1ba665SWarner Losh // will be ignored by OSPM.
5260d1ba665SWarner Losh //
5270d1ba665SWarner Losh #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY  0x00
5280d1ba665SWarner Losh #define EFI_ACPI_3_0_MEMORY_AFFINITY                      0x01
5290d1ba665SWarner Losh 
5300d1ba665SWarner Losh ///
5310d1ba665SWarner Losh /// Processor Local APIC/SAPIC Affinity Structure Definition
5320d1ba665SWarner Losh ///
5330d1ba665SWarner Losh typedef struct {
5340d1ba665SWarner Losh   UINT8   Type;
5350d1ba665SWarner Losh   UINT8   Length;
5360d1ba665SWarner Losh   UINT8   ProximityDomain7To0;
5370d1ba665SWarner Losh   UINT8   ApicId;
5380d1ba665SWarner Losh   UINT32  Flags;
5390d1ba665SWarner Losh   UINT8   LocalSapicEid;
5400d1ba665SWarner Losh   UINT8   ProximityDomain31To8[3];
5410d1ba665SWarner Losh   UINT8   Reserved[4];
5420d1ba665SWarner Losh } EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;
5430d1ba665SWarner Losh 
5440d1ba665SWarner Losh ///
5450d1ba665SWarner Losh /// Local APIC/SAPIC Flags.  All other bits are reserved and must be 0.
5460d1ba665SWarner Losh ///
5470d1ba665SWarner Losh #define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
5480d1ba665SWarner Losh 
5490d1ba665SWarner Losh ///
5500d1ba665SWarner Losh /// Memory Affinity Structure Definition
5510d1ba665SWarner Losh ///
5520d1ba665SWarner Losh typedef struct {
5530d1ba665SWarner Losh   UINT8   Type;
5540d1ba665SWarner Losh   UINT8   Length;
5550d1ba665SWarner Losh   UINT32  ProximityDomain;
5560d1ba665SWarner Losh   UINT16  Reserved1;
5570d1ba665SWarner Losh   UINT32  AddressBaseLow;
5580d1ba665SWarner Losh   UINT32  AddressBaseHigh;
5590d1ba665SWarner Losh   UINT32  LengthLow;
5600d1ba665SWarner Losh   UINT32  LengthHigh;
5610d1ba665SWarner Losh   UINT32  Reserved2;
5620d1ba665SWarner Losh   UINT32  Flags;
5630d1ba665SWarner Losh   UINT64  Reserved3;
5640d1ba665SWarner Losh } EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE;
5650d1ba665SWarner Losh 
5660d1ba665SWarner Losh //
5670d1ba665SWarner Losh // Memory Flags.  All other bits are reserved and must be 0.
5680d1ba665SWarner Losh //
5690d1ba665SWarner Losh #define EFI_ACPI_3_0_MEMORY_ENABLED       (1 << 0)
5700d1ba665SWarner Losh #define EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE (1 << 1)
5710d1ba665SWarner Losh #define EFI_ACPI_3_0_MEMORY_NONVOLATILE   (1 << 2)
5720d1ba665SWarner Losh 
5730d1ba665SWarner Losh ///
5740d1ba665SWarner Losh /// System Locality Distance Information Table (SLIT).
5750d1ba665SWarner Losh /// The rest of the table is a matrix.
5760d1ba665SWarner Losh ///
5770d1ba665SWarner Losh typedef struct {
5780d1ba665SWarner Losh   EFI_ACPI_DESCRIPTION_HEADER Header;
5790d1ba665SWarner Losh   UINT64                      NumberOfSystemLocalities;
5800d1ba665SWarner Losh } EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;
5810d1ba665SWarner Losh 
5820d1ba665SWarner Losh ///
5830d1ba665SWarner Losh /// SLIT Version (as defined in ACPI 3.0 spec.)
5840d1ba665SWarner Losh ///
5850d1ba665SWarner Losh #define EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION  0x01
5860d1ba665SWarner Losh 
5870d1ba665SWarner Losh //
5880d1ba665SWarner Losh // Known table signatures
5890d1ba665SWarner Losh //
5900d1ba665SWarner Losh 
5910d1ba665SWarner Losh ///
5920d1ba665SWarner Losh /// "RSD PTR " Root System Description Pointer
5930d1ba665SWarner Losh ///
5940d1ba665SWarner Losh #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE  SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
5950d1ba665SWarner Losh 
5960d1ba665SWarner Losh ///
5970d1ba665SWarner Losh /// "APIC" Multiple APIC Description Table
5980d1ba665SWarner Losh ///
5990d1ba665SWarner Losh #define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('A', 'P', 'I', 'C')
6000d1ba665SWarner Losh 
6010d1ba665SWarner Losh ///
6020d1ba665SWarner Losh /// "DSDT" Differentiated System Description Table
6030d1ba665SWarner Losh ///
6040d1ba665SWarner Losh #define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('D', 'S', 'D', 'T')
6050d1ba665SWarner Losh 
6060d1ba665SWarner Losh ///
6070d1ba665SWarner Losh /// "ECDT" Embedded Controller Boot Resources Table
6080d1ba665SWarner Losh ///
6090d1ba665SWarner Losh #define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE  SIGNATURE_32('E', 'C', 'D', 'T')
6100d1ba665SWarner Losh 
6110d1ba665SWarner Losh ///
6120d1ba665SWarner Losh /// "FACP" Fixed ACPI Description Table
6130d1ba665SWarner Losh ///
6140d1ba665SWarner Losh #define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('F', 'A', 'C', 'P')
6150d1ba665SWarner Losh 
6160d1ba665SWarner Losh ///
6170d1ba665SWarner Losh /// "FACS" Firmware ACPI Control Structure
6180d1ba665SWarner Losh ///
6190d1ba665SWarner Losh #define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE  SIGNATURE_32('F', 'A', 'C', 'S')
6200d1ba665SWarner Losh 
6210d1ba665SWarner Losh ///
6220d1ba665SWarner Losh /// "PSDT" Persistent System Description Table
6230d1ba665SWarner Losh ///
6240d1ba665SWarner Losh #define EFI_ACPI_3_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('P', 'S', 'D', 'T')
6250d1ba665SWarner Losh 
6260d1ba665SWarner Losh ///
6270d1ba665SWarner Losh /// "RSDT" Root System Description Table
6280d1ba665SWarner Losh ///
6290d1ba665SWarner Losh #define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('R', 'S', 'D', 'T')
6300d1ba665SWarner Losh 
6310d1ba665SWarner Losh ///
6320d1ba665SWarner Losh /// "SBST" Smart Battery Specification Table
6330d1ba665SWarner Losh ///
6340d1ba665SWarner Losh #define EFI_ACPI_3_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE  SIGNATURE_32('S', 'B', 'S', 'T')
6350d1ba665SWarner Losh 
6360d1ba665SWarner Losh ///
6370d1ba665SWarner Losh /// "SLIT" System Locality Information Table
6380d1ba665SWarner Losh ///
6390d1ba665SWarner Losh #define EFI_ACPI_3_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE  SIGNATURE_32('S', 'L', 'I', 'T')
6400d1ba665SWarner Losh 
6410d1ba665SWarner Losh ///
6420d1ba665SWarner Losh /// "SRAT" System Resource Affinity Table
6430d1ba665SWarner Losh ///
6440d1ba665SWarner Losh #define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE  SIGNATURE_32('S', 'R', 'A', 'T')
6450d1ba665SWarner Losh 
6460d1ba665SWarner Losh ///
6470d1ba665SWarner Losh /// "SSDT" Secondary System Description Table
6480d1ba665SWarner Losh ///
6490d1ba665SWarner Losh #define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('S', 'S', 'D', 'T')
6500d1ba665SWarner Losh 
6510d1ba665SWarner Losh ///
6520d1ba665SWarner Losh /// "XSDT" Extended System Description Table
6530d1ba665SWarner Losh ///
6540d1ba665SWarner Losh #define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('X', 'S', 'D', 'T')
6550d1ba665SWarner Losh 
6560d1ba665SWarner Losh ///
6570d1ba665SWarner Losh /// "BOOT" MS Simple Boot Spec
6580d1ba665SWarner Losh ///
6590d1ba665SWarner Losh #define EFI_ACPI_3_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE  SIGNATURE_32('B', 'O', 'O', 'T')
6600d1ba665SWarner Losh 
6610d1ba665SWarner Losh ///
6620d1ba665SWarner Losh /// "CPEP" Corrected Platform Error Polling Table
6630d1ba665SWarner Losh ///
6640d1ba665SWarner Losh #define EFI_ACPI_3_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE  SIGNATURE_32('C', 'P', 'E', 'P')
6650d1ba665SWarner Losh 
6660d1ba665SWarner Losh ///
6670d1ba665SWarner Losh /// "DBGP" MS Debug Port Spec
6680d1ba665SWarner Losh ///
6690d1ba665SWarner Losh #define EFI_ACPI_3_0_DEBUG_PORT_TABLE_SIGNATURE  SIGNATURE_32('D', 'B', 'G', 'P')
6700d1ba665SWarner Losh 
6710d1ba665SWarner Losh ///
6720d1ba665SWarner Losh /// "ETDT" Event Timer Description Table
6730d1ba665SWarner Losh ///
6740d1ba665SWarner Losh #define EFI_ACPI_3_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('E', 'T', 'D', 'T')
6750d1ba665SWarner Losh 
6760d1ba665SWarner Losh ///
6770d1ba665SWarner Losh /// "HPET" IA-PC High Precision Event Timer Table
6780d1ba665SWarner Losh ///
6790d1ba665SWarner Losh #define EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE  SIGNATURE_32('H', 'P', 'E', 'T')
6800d1ba665SWarner Losh 
6810d1ba665SWarner Losh ///
6820d1ba665SWarner Losh /// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
6830d1ba665SWarner Losh ///
6840d1ba665SWarner Losh #define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE  SIGNATURE_32('M', 'C', 'F', 'G')
6850d1ba665SWarner Losh 
6860d1ba665SWarner Losh ///
687*3245fa21SMitchell Horne /// "SPCR" Serial Port Console Redirection Table
6880d1ba665SWarner Losh ///
6890d1ba665SWarner Losh #define EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE  SIGNATURE_32('S', 'P', 'C', 'R')
6900d1ba665SWarner Losh 
6910d1ba665SWarner Losh ///
6920d1ba665SWarner Losh /// "SPMI" Server Platform Management Interface Table
6930d1ba665SWarner Losh ///
6940d1ba665SWarner Losh #define EFI_ACPI_3_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE  SIGNATURE_32('S', 'P', 'M', 'I')
6950d1ba665SWarner Losh 
6960d1ba665SWarner Losh ///
6970d1ba665SWarner Losh /// "TCPA" Trusted Computing Platform Alliance Capabilities Table
6980d1ba665SWarner Losh ///
6990d1ba665SWarner Losh #define EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE  SIGNATURE_32('T', 'C', 'P', 'A')
7000d1ba665SWarner Losh 
7010d1ba665SWarner Losh ///
7020d1ba665SWarner Losh /// "WDRT" Watchdog Resource Table
7030d1ba665SWarner Losh ///
7040d1ba665SWarner Losh #define EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE  SIGNATURE_32('W', 'D', 'R', 'T')
7050d1ba665SWarner Losh 
7060d1ba665SWarner Losh ///
7070d1ba665SWarner Losh /// "WDAT" Watchdog Action Table
7080d1ba665SWarner Losh ///
7090d1ba665SWarner Losh #define EFI_ACPI_3_0_WATCHDOG_ACTION_TABLE_SIGNATURE  SIGNATURE_32('W', 'D', 'A', 'T')
7100d1ba665SWarner Losh 
7110d1ba665SWarner Losh ///
7120d1ba665SWarner Losh /// "WSPT" Windows Specific Properties Table
7130d1ba665SWarner Losh ///
7140d1ba665SWarner Losh #define EFI_ACPI_3_0_WINDOWS_SPECIFIC_PROPERTIES_TABLE_SIGNATURE  SIGNATURE_32('W', 'S', 'P', 'T')
7150d1ba665SWarner Losh 
7160d1ba665SWarner Losh ///
7170d1ba665SWarner Losh /// "iBFT" iSCSI Boot Firmware Table
7180d1ba665SWarner Losh ///
7190d1ba665SWarner Losh #define EFI_ACPI_3_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE  SIGNATURE_32('i', 'B', 'F', 'T')
7200d1ba665SWarner Losh 
7210d1ba665SWarner Losh #pragma pack()
7220d1ba665SWarner Losh 
7230d1ba665SWarner Losh #endif
724