Path: blob/main/sys/contrib/edk2/Include/IndustryStandard/Acpi40.h
48291 views
/** @file1ACPI 4.0 definitions from the ACPI Specification Revision 4.0a April 5, 201023Copyright (c) 2010 - 2022, Intel Corporation. All rights reserved.<BR>4SPDX-License-Identifier: BSD-2-Clause-Patent5**/67#ifndef _ACPI_4_0_H_8#define _ACPI_4_0_H_910#include <IndustryStandard/Acpi30.h>1112///13/// _PSD Revision for ACPI 4.014///15#define EFI_ACPI_4_0_AML_PSD_REVISION 01617//18// Ensure proper structure formats19//20#pragma pack(1)2122///23/// ACPI 4.0 Generic Address Space definition24///25typedef struct {26UINT8 AddressSpaceId;27UINT8 RegisterBitWidth;28UINT8 RegisterBitOffset;29UINT8 AccessSize;30UINT64 Address;31} EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE;3233//34// Generic Address Space Address IDs35//36#define EFI_ACPI_4_0_SYSTEM_MEMORY 037#define EFI_ACPI_4_0_SYSTEM_IO 138#define EFI_ACPI_4_0_PCI_CONFIGURATION_SPACE 239#define EFI_ACPI_4_0_EMBEDDED_CONTROLLER 340#define EFI_ACPI_4_0_SMBUS 441#define EFI_ACPI_4_0_FUNCTIONAL_FIXED_HARDWARE 0x7F4243//44// Generic Address Space Access Sizes45//46#define EFI_ACPI_4_0_UNDEFINED 047#define EFI_ACPI_4_0_BYTE 148#define EFI_ACPI_4_0_WORD 249#define EFI_ACPI_4_0_DWORD 350#define EFI_ACPI_4_0_QWORD 45152//53// ACPI 4.0 table structures54//5556///57/// Root System Description Pointer Structure58///59typedef struct {60UINT64 Signature;61UINT8 Checksum;62UINT8 OemId[6];63UINT8 Revision;64UINT32 RsdtAddress;65UINT32 Length;66UINT64 XsdtAddress;67UINT8 ExtendedChecksum;68UINT8 Reserved[3];69} EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER;7071///72/// RSD_PTR Revision (as defined in ACPI 4.0b spec.)73///74#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 4.0a) says current value is 27576///77/// Common table header, this prefaces all ACPI tables, including FACS, but78/// excluding the RSD PTR structure79///80typedef struct {81UINT32 Signature;82UINT32 Length;83} EFI_ACPI_4_0_COMMON_HEADER;8485//86// Root System Description Table87// No definition needed as it is a common description table header, the same with88// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.89//9091///92/// RSDT Revision (as defined in ACPI 4.0 spec.)93///94#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x019596//97// Extended System Description Table98// No definition needed as it is a common description table header, the same with99// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.100//101102///103/// XSDT Revision (as defined in ACPI 4.0 spec.)104///105#define EFI_ACPI_4_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01106107///108/// Fixed ACPI Description Table Structure (FADT)109///110typedef struct {111EFI_ACPI_DESCRIPTION_HEADER Header;112UINT32 FirmwareCtrl;113UINT32 Dsdt;114UINT8 Reserved0;115UINT8 PreferredPmProfile;116UINT16 SciInt;117UINT32 SmiCmd;118UINT8 AcpiEnable;119UINT8 AcpiDisable;120UINT8 S4BiosReq;121UINT8 PstateCnt;122UINT32 Pm1aEvtBlk;123UINT32 Pm1bEvtBlk;124UINT32 Pm1aCntBlk;125UINT32 Pm1bCntBlk;126UINT32 Pm2CntBlk;127UINT32 PmTmrBlk;128UINT32 Gpe0Blk;129UINT32 Gpe1Blk;130UINT8 Pm1EvtLen;131UINT8 Pm1CntLen;132UINT8 Pm2CntLen;133UINT8 PmTmrLen;134UINT8 Gpe0BlkLen;135UINT8 Gpe1BlkLen;136UINT8 Gpe1Base;137UINT8 CstCnt;138UINT16 PLvl2Lat;139UINT16 PLvl3Lat;140UINT16 FlushSize;141UINT16 FlushStride;142UINT8 DutyOffset;143UINT8 DutyWidth;144UINT8 DayAlrm;145UINT8 MonAlrm;146UINT8 Century;147UINT16 IaPcBootArch;148UINT8 Reserved1;149UINT32 Flags;150EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE ResetReg;151UINT8 ResetValue;152UINT8 Reserved2[3];153UINT64 XFirmwareCtrl;154UINT64 XDsdt;155EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;156EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;157EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;158EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;159EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;160EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;161EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;162EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;163} EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE;164165///166/// FADT Version (as defined in ACPI 4.0 spec.)167///168#define EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x04169170//171// Fixed ACPI Description Table Preferred Power Management Profile172//173#define EFI_ACPI_4_0_PM_PROFILE_UNSPECIFIED 0174#define EFI_ACPI_4_0_PM_PROFILE_DESKTOP 1175#define EFI_ACPI_4_0_PM_PROFILE_MOBILE 2176#define EFI_ACPI_4_0_PM_PROFILE_WORKSTATION 3177#define EFI_ACPI_4_0_PM_PROFILE_ENTERPRISE_SERVER 4178#define EFI_ACPI_4_0_PM_PROFILE_SOHO_SERVER 5179#define EFI_ACPI_4_0_PM_PROFILE_APPLIANCE_PC 6180#define EFI_ACPI_4_0_PM_PROFILE_PERFORMANCE_SERVER 7181182//183// Fixed ACPI Description Table Boot Architecture Flags184// All other bits are reserved and must be set to 0.185//186#define EFI_ACPI_4_0_LEGACY_DEVICES BIT0187#define EFI_ACPI_4_0_8042 BIT1188#define EFI_ACPI_4_0_VGA_NOT_PRESENT BIT2189#define EFI_ACPI_4_0_MSI_NOT_SUPPORTED BIT3190#define EFI_ACPI_4_0_PCIE_ASPM_CONTROLS BIT4191192//193// Fixed ACPI Description Table Fixed Feature Flags194// All other bits are reserved and must be set to 0.195//196#define EFI_ACPI_4_0_WBINVD BIT0197#define EFI_ACPI_4_0_WBINVD_FLUSH BIT1198#define EFI_ACPI_4_0_PROC_C1 BIT2199#define EFI_ACPI_4_0_P_LVL2_UP BIT3200#define EFI_ACPI_4_0_PWR_BUTTON BIT4201#define EFI_ACPI_4_0_SLP_BUTTON BIT5202#define EFI_ACPI_4_0_FIX_RTC BIT6203#define EFI_ACPI_4_0_RTC_S4 BIT7204#define EFI_ACPI_4_0_TMR_VAL_EXT BIT8205#define EFI_ACPI_4_0_DCK_CAP BIT9206#define EFI_ACPI_4_0_RESET_REG_SUP BIT10207#define EFI_ACPI_4_0_SEALED_CASE BIT11208#define EFI_ACPI_4_0_HEADLESS BIT12209#define EFI_ACPI_4_0_CPU_SW_SLP BIT13210#define EFI_ACPI_4_0_PCI_EXP_WAK BIT14211#define EFI_ACPI_4_0_USE_PLATFORM_CLOCK BIT15212#define EFI_ACPI_4_0_S4_RTC_STS_VALID BIT16213#define EFI_ACPI_4_0_REMOTE_POWER_ON_CAPABLE BIT17214#define EFI_ACPI_4_0_FORCE_APIC_CLUSTER_MODEL BIT18215#define EFI_ACPI_4_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19216217///218/// Firmware ACPI Control Structure219///220typedef struct {221UINT32 Signature;222UINT32 Length;223UINT32 HardwareSignature;224UINT32 FirmwareWakingVector;225UINT32 GlobalLock;226UINT32 Flags;227UINT64 XFirmwareWakingVector;228UINT8 Version;229UINT8 Reserved0[3];230UINT32 OspmFlags;231UINT8 Reserved1[24];232} EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;233234///235/// FACS Version (as defined in ACPI 4.0 spec.)236///237#define EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02238239///240/// Firmware Control Structure Feature Flags241/// All other bits are reserved and must be set to 0.242///243#define EFI_ACPI_4_0_S4BIOS_F BIT0244#define EFI_ACPI_4_0_64BIT_WAKE_SUPPORTED_F BIT1245246///247/// OSPM Enabled Firmware Control Structure Flags248/// All other bits are reserved and must be set to 0.249///250#define EFI_ACPI_4_0_OSPM_64BIT_WAKE__F BIT0251252//253// Differentiated System Description Table,254// Secondary System Description Table255// and Persistent System Description Table,256// no definition needed as they are common description table header, the same with257// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.258//259#define EFI_ACPI_4_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02260#define EFI_ACPI_4_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02261262///263/// Multiple APIC Description Table header definition. The rest of the table264/// must be defined in a platform specific manner.265///266typedef struct {267EFI_ACPI_DESCRIPTION_HEADER Header;268UINT32 LocalApicAddress;269UINT32 Flags;270} EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;271272///273/// MADT Revision (as defined in ACPI 4.0 spec.)274///275#define EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x03276277///278/// Multiple APIC Flags279/// All other bits are reserved and must be set to 0.280///281#define EFI_ACPI_4_0_PCAT_COMPAT BIT0282283//284// Multiple APIC Description Table APIC structure types285// All other values between 0x0B an 0xFF are reserved and286// will be ignored by OSPM.287//288#define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC 0x00289#define EFI_ACPI_4_0_IO_APIC 0x01290#define EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE 0x02291#define EFI_ACPI_4_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03292#define EFI_ACPI_4_0_LOCAL_APIC_NMI 0x04293#define EFI_ACPI_4_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05294#define EFI_ACPI_4_0_IO_SAPIC 0x06295#define EFI_ACPI_4_0_LOCAL_SAPIC 0x07296#define EFI_ACPI_4_0_PLATFORM_INTERRUPT_SOURCES 0x08297#define EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC 0x09298#define EFI_ACPI_4_0_LOCAL_X2APIC_NMI 0x0A299300//301// APIC Structure Definitions302//303304///305/// Processor Local APIC Structure Definition306///307typedef struct {308UINT8 Type;309UINT8 Length;310UINT8 AcpiProcessorId;311UINT8 ApicId;312UINT32 Flags;313} EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_STRUCTURE;314315///316/// Local APIC Flags. All other bits are reserved and must be 0.317///318#define EFI_ACPI_4_0_LOCAL_APIC_ENABLED BIT0319320///321/// IO APIC Structure322///323typedef struct {324UINT8 Type;325UINT8 Length;326UINT8 IoApicId;327UINT8 Reserved;328UINT32 IoApicAddress;329UINT32 GlobalSystemInterruptBase;330} EFI_ACPI_4_0_IO_APIC_STRUCTURE;331332///333/// Interrupt Source Override Structure334///335typedef struct {336UINT8 Type;337UINT8 Length;338UINT8 Bus;339UINT8 Source;340UINT32 GlobalSystemInterrupt;341UINT16 Flags;342} EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;343344///345/// Platform Interrupt Sources Structure Definition346///347typedef struct {348UINT8 Type;349UINT8 Length;350UINT16 Flags;351UINT8 InterruptType;352UINT8 ProcessorId;353UINT8 ProcessorEid;354UINT8 IoSapicVector;355UINT32 GlobalSystemInterrupt;356UINT32 PlatformInterruptSourceFlags;357UINT8 CpeiProcessorOverride;358UINT8 Reserved[31];359} EFI_ACPI_4_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;360361//362// MPS INTI flags.363// All other bits are reserved and must be set to 0.364//365#define EFI_ACPI_4_0_POLARITY (3 << 0)366#define EFI_ACPI_4_0_TRIGGER_MODE (3 << 2)367368///369/// Non-Maskable Interrupt Source Structure370///371typedef struct {372UINT8 Type;373UINT8 Length;374UINT16 Flags;375UINT32 GlobalSystemInterrupt;376} EFI_ACPI_4_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;377378///379/// Local APIC NMI Structure380///381typedef struct {382UINT8 Type;383UINT8 Length;384UINT8 AcpiProcessorId;385UINT16 Flags;386UINT8 LocalApicLint;387} EFI_ACPI_4_0_LOCAL_APIC_NMI_STRUCTURE;388389///390/// Local APIC Address Override Structure391///392typedef struct {393UINT8 Type;394UINT8 Length;395UINT16 Reserved;396UINT64 LocalApicAddress;397} EFI_ACPI_4_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;398399///400/// IO SAPIC Structure401///402typedef struct {403UINT8 Type;404UINT8 Length;405UINT8 IoApicId;406UINT8 Reserved;407UINT32 GlobalSystemInterruptBase;408UINT64 IoSapicAddress;409} EFI_ACPI_4_0_IO_SAPIC_STRUCTURE;410411///412/// Local SAPIC Structure413/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String414///415typedef struct {416UINT8 Type;417UINT8 Length;418UINT8 AcpiProcessorId;419UINT8 LocalSapicId;420UINT8 LocalSapicEid;421UINT8 Reserved[3];422UINT32 Flags;423UINT32 ACPIProcessorUIDValue;424} EFI_ACPI_4_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;425426///427/// Platform Interrupt Sources Structure428///429typedef struct {430UINT8 Type;431UINT8 Length;432UINT16 Flags;433UINT8 InterruptType;434UINT8 ProcessorId;435UINT8 ProcessorEid;436UINT8 IoSapicVector;437UINT32 GlobalSystemInterrupt;438UINT32 PlatformInterruptSourceFlags;439} EFI_ACPI_4_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;440441///442/// Platform Interrupt Source Flags.443/// All other bits are reserved and must be set to 0.444///445#define EFI_ACPI_4_0_CPEI_PROCESSOR_OVERRIDE BIT0446447///448/// Processor Local x2APIC Structure Definition449///450typedef struct {451UINT8 Type;452UINT8 Length;453UINT8 Reserved[2];454UINT32 X2ApicId;455UINT32 Flags;456UINT32 AcpiProcessorUid;457} EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE;458459///460/// Local x2APIC NMI Structure461///462typedef struct {463UINT8 Type;464UINT8 Length;465UINT16 Flags;466UINT32 AcpiProcessorUid;467UINT8 LocalX2ApicLint;468UINT8 Reserved[3];469} EFI_ACPI_4_0_LOCAL_X2APIC_NMI_STRUCTURE;470471///472/// Smart Battery Description Table (SBST)473///474typedef struct {475EFI_ACPI_DESCRIPTION_HEADER Header;476UINT32 WarningEnergyLevel;477UINT32 LowEnergyLevel;478UINT32 CriticalEnergyLevel;479} EFI_ACPI_4_0_SMART_BATTERY_DESCRIPTION_TABLE;480481///482/// SBST Version (as defined in ACPI 4.0 spec.)483///484#define EFI_ACPI_4_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01485486///487/// Embedded Controller Boot Resources Table (ECDT)488/// The table is followed by a null terminated ASCII string that contains489/// a fully qualified reference to the name space object.490///491typedef struct {492EFI_ACPI_DESCRIPTION_HEADER Header;493EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE EcControl;494EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE EcData;495UINT32 Uid;496UINT8 GpeBit;497} EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;498499///500/// ECDT Version (as defined in ACPI 4.0 spec.)501///502#define EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01503504///505/// System Resource Affinity Table (SRAT. The rest of the table506/// must be defined in a platform specific manner.507///508typedef struct {509EFI_ACPI_DESCRIPTION_HEADER Header;510UINT32 Reserved1; ///< Must be set to 1511UINT64 Reserved2;512} EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;513514///515/// SRAT Version (as defined in ACPI 4.0 spec.)516///517#define EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03518519//520// SRAT structure types.521// All other values between 0x03 an 0xFF are reserved and522// will be ignored by OSPM.523//524#define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00525#define EFI_ACPI_4_0_MEMORY_AFFINITY 0x01526#define EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02527528///529/// Processor Local APIC/SAPIC Affinity Structure Definition530///531typedef struct {532UINT8 Type;533UINT8 Length;534UINT8 ProximityDomain7To0;535UINT8 ApicId;536UINT32 Flags;537UINT8 LocalSapicEid;538UINT8 ProximityDomain31To8[3];539UINT32 ClockDomain;540} EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;541542///543/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.544///545#define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)546547///548/// Memory Affinity Structure Definition549///550typedef struct {551UINT8 Type;552UINT8 Length;553UINT32 ProximityDomain;554UINT16 Reserved1;555UINT32 AddressBaseLow;556UINT32 AddressBaseHigh;557UINT32 LengthLow;558UINT32 LengthHigh;559UINT32 Reserved2;560UINT32 Flags;561UINT64 Reserved3;562} EFI_ACPI_4_0_MEMORY_AFFINITY_STRUCTURE;563564//565// Memory Flags. All other bits are reserved and must be 0.566//567#define EFI_ACPI_4_0_MEMORY_ENABLED (1 << 0)568#define EFI_ACPI_4_0_MEMORY_HOT_PLUGGABLE (1 << 1)569#define EFI_ACPI_4_0_MEMORY_NONVOLATILE (1 << 2)570571///572/// Processor Local x2APIC Affinity Structure Definition573///574typedef struct {575UINT8 Type;576UINT8 Length;577UINT8 Reserved1[2];578UINT32 ProximityDomain;579UINT32 X2ApicId;580UINT32 Flags;581UINT32 ClockDomain;582UINT8 Reserved2[4];583} EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE;584585///586/// System Locality Distance Information Table (SLIT).587/// The rest of the table is a matrix.588///589typedef struct {590EFI_ACPI_DESCRIPTION_HEADER Header;591UINT64 NumberOfSystemLocalities;592} EFI_ACPI_4_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;593594///595/// SLIT Version (as defined in ACPI 4.0 spec.)596///597#define EFI_ACPI_4_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01598599///600/// Corrected Platform Error Polling Table (CPEP)601///602typedef struct {603EFI_ACPI_DESCRIPTION_HEADER Header;604UINT8 Reserved[8];605} EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER;606607///608/// CPEP Version (as defined in ACPI 4.0 spec.)609///610#define EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01611612//613// CPEP processor structure types.614//615#define EFI_ACPI_4_0_CPEP_PROCESSOR_APIC_SAPIC 0x00616617///618/// Corrected Platform Error Polling Processor Structure Definition619///620typedef struct {621UINT8 Type;622UINT8 Length;623UINT8 ProcessorId;624UINT8 ProcessorEid;625UINT32 PollingInterval;626} EFI_ACPI_4_0_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE;627628///629/// Maximum System Characteristics Table (MSCT)630///631typedef struct {632EFI_ACPI_DESCRIPTION_HEADER Header;633UINT32 OffsetProxDomInfo;634UINT32 MaximumNumberOfProximityDomains;635UINT32 MaximumNumberOfClockDomains;636UINT64 MaximumPhysicalAddress;637} EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER;638639///640/// MSCT Version (as defined in ACPI 4.0 spec.)641///642#define EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01643644///645/// Maximum Proximity Domain Information Structure Definition646///647typedef struct {648UINT8 Revision;649UINT8 Length;650UINT32 ProximityDomainRangeLow;651UINT32 ProximityDomainRangeHigh;652UINT32 MaximumProcessorCapacity;653UINT64 MaximumMemoryCapacity;654} EFI_ACPI_4_0_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE;655656///657/// Boot Error Record Table (BERT)658///659typedef struct {660EFI_ACPI_DESCRIPTION_HEADER Header;661UINT32 BootErrorRegionLength;662UINT64 BootErrorRegion;663} EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_HEADER;664665///666/// BERT Version (as defined in ACPI 4.0 spec.)667///668#define EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_REVISION 0x01669670///671/// Boot Error Region Block Status Definition672///673typedef struct {674UINT32 UncorrectableErrorValid : 1;675UINT32 CorrectableErrorValid : 1;676UINT32 MultipleUncorrectableErrors : 1;677UINT32 MultipleCorrectableErrors : 1;678UINT32 ErrorDataEntryCount : 10;679UINT32 Reserved : 18;680} EFI_ACPI_4_0_ERROR_BLOCK_STATUS;681682///683/// Boot Error Region Definition684///685typedef struct {686EFI_ACPI_4_0_ERROR_BLOCK_STATUS BlockStatus;687UINT32 RawDataOffset;688UINT32 RawDataLength;689UINT32 DataLength;690UINT32 ErrorSeverity;691} EFI_ACPI_4_0_BOOT_ERROR_REGION_STRUCTURE;692693//694// Boot Error Severity types695//696#define EFI_ACPI_4_0_ERROR_SEVERITY_CORRECTABLE 0x00697#define EFI_ACPI_4_0_ERROR_SEVERITY_RECOVERABLE 0x00698#define EFI_ACPI_4_0_ERROR_SEVERITY_FATAL 0x01699#define EFI_ACPI_4_0_ERROR_SEVERITY_CORRECTED 0x02700#define EFI_ACPI_4_0_ERROR_SEVERITY_NONE 0x03701702///703/// Generic Error Data Entry Definition704///705typedef struct {706UINT8 SectionType[16];707UINT32 ErrorSeverity;708UINT16 Revision;709UINT8 ValidationBits;710UINT8 Flags;711UINT32 ErrorDataLength;712UINT8 FruId[16];713UINT8 FruText[20];714} EFI_ACPI_4_0_GENERIC_ERROR_DATA_ENTRY_STRUCTURE;715716///717/// Generic Error Data Entry Version (as defined in ACPI 4.0 spec.)718///719#define EFI_ACPI_4_0_GENERIC_ERROR_DATA_ENTRY_REVISION 0x0201720721///722/// HEST - Hardware Error Source Table723///724typedef struct {725EFI_ACPI_DESCRIPTION_HEADER Header;726UINT32 ErrorSourceCount;727} EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_HEADER;728729///730/// HEST Version (as defined in ACPI 4.0 spec.)731///732#define EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x01733734//735// Error Source structure types.736//737#define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x00738#define EFI_ACPI_4_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x01739#define EFI_ACPI_4_0_IA32_ARCHITECTURE_NMI_ERROR 0x02740#define EFI_ACPI_4_0_PCI_EXPRESS_ROOT_PORT_AER 0x06741#define EFI_ACPI_4_0_PCI_EXPRESS_DEVICE_AER 0x07742#define EFI_ACPI_4_0_PCI_EXPRESS_BRIDGE_AER 0x08743#define EFI_ACPI_4_0_GENERIC_HARDWARE_ERROR 0x09744745//746// Error Source structure flags.747//748#define EFI_ACPI_4_0_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0)749#define EFI_ACPI_4_0_ERROR_SOURCE_FLAG_GLOBAL (1 << 1)750751///752/// IA-32 Architecture Machine Check Exception Structure Definition753///754typedef struct {755UINT16 Type;756UINT16 SourceId;757UINT8 Reserved0[2];758UINT8 Flags;759UINT8 Enabled;760UINT32 NumberOfRecordsToPreAllocate;761UINT32 MaxSectionsPerRecord;762UINT64 GlobalCapabilityInitData;763UINT64 GlobalControlInitData;764UINT8 NumberOfHardwareBanks;765UINT8 Reserved1[7];766} EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION_STRUCTURE;767768///769/// IA-32 Architecture Machine Check Bank Structure Definition770///771typedef struct {772UINT8 BankNumber;773UINT8 ClearStatusOnInitialization;774UINT8 StatusDataFormat;775UINT8 Reserved0;776UINT32 ControlRegisterMsrAddress;777UINT64 ControlInitData;778UINT32 StatusRegisterMsrAddress;779UINT32 AddressRegisterMsrAddress;780UINT32 MiscRegisterMsrAddress;781} EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_BANK_STRUCTURE;782783///784/// IA-32 Architecture Machine Check Bank Structure MCA data format785///786#define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x00787#define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x01788#define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x02789790//791// Hardware Error Notification types. All other values are reserved792//793#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_POLLED 0x00794#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x01795#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x02796#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_SCI 0x03797#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_NMI 0x04798799///800/// Hardware Error Notification Configuration Write Enable Structure Definition801///802typedef struct {803UINT16 Type : 1;804UINT16 PollInterval : 1;805UINT16 SwitchToPollingThresholdValue : 1;806UINT16 SwitchToPollingThresholdWindow : 1;807UINT16 ErrorThresholdValue : 1;808UINT16 ErrorThresholdWindow : 1;809UINT16 Reserved : 10;810} EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE;811812///813/// Hardware Error Notification Structure Definition814///815typedef struct {816UINT8 Type;817UINT8 Length;818EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable;819UINT32 PollInterval;820UINT32 Vector;821UINT32 SwitchToPollingThresholdValue;822UINT32 SwitchToPollingThresholdWindow;823UINT32 ErrorThresholdValue;824UINT32 ErrorThresholdWindow;825} EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE;826827///828/// IA-32 Architecture Corrected Machine Check Structure Definition829///830typedef struct {831UINT16 Type;832UINT16 SourceId;833UINT8 Reserved0[2];834UINT8 Flags;835UINT8 Enabled;836UINT32 NumberOfRecordsToPreAllocate;837UINT32 MaxSectionsPerRecord;838EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;839UINT8 NumberOfHardwareBanks;840UINT8 Reserved1[3];841} EFI_ACPI_4_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK_STRUCTURE;842843///844/// IA-32 Architecture NMI Error Structure Definition845///846typedef struct {847UINT16 Type;848UINT16 SourceId;849UINT8 Reserved0[2];850UINT32 NumberOfRecordsToPreAllocate;851UINT32 MaxSectionsPerRecord;852UINT32 MaxRawDataLength;853} EFI_ACPI_4_0_IA32_ARCHITECTURE_NMI_ERROR_STRUCTURE;854855///856/// PCI Express Root Port AER Structure Definition857///858typedef struct {859UINT16 Type;860UINT16 SourceId;861UINT8 Reserved0[2];862UINT8 Flags;863UINT8 Enabled;864UINT32 NumberOfRecordsToPreAllocate;865UINT32 MaxSectionsPerRecord;866UINT32 Bus;867UINT16 Device;868UINT16 Function;869UINT16 DeviceControl;870UINT8 Reserved1[2];871UINT32 UncorrectableErrorMask;872UINT32 UncorrectableErrorSeverity;873UINT32 CorrectableErrorMask;874UINT32 AdvancedErrorCapabilitiesAndControl;875UINT32 RootErrorCommand;876} EFI_ACPI_4_0_PCI_EXPRESS_ROOT_PORT_AER_STRUCTURE;877878///879/// PCI Express Device AER Structure Definition880///881typedef struct {882UINT16 Type;883UINT16 SourceId;884UINT8 Reserved0[2];885UINT8 Flags;886UINT8 Enabled;887UINT32 NumberOfRecordsToPreAllocate;888UINT32 MaxSectionsPerRecord;889UINT32 Bus;890UINT16 Device;891UINT16 Function;892UINT16 DeviceControl;893UINT8 Reserved1[2];894UINT32 UncorrectableErrorMask;895UINT32 UncorrectableErrorSeverity;896UINT32 CorrectableErrorMask;897UINT32 AdvancedErrorCapabilitiesAndControl;898} EFI_ACPI_4_0_PCI_EXPRESS_DEVICE_AER_STRUCTURE;899900///901/// PCI Express Bridge AER Structure Definition902///903typedef struct {904UINT16 Type;905UINT16 SourceId;906UINT8 Reserved0[2];907UINT8 Flags;908UINT8 Enabled;909UINT32 NumberOfRecordsToPreAllocate;910UINT32 MaxSectionsPerRecord;911UINT32 Bus;912UINT16 Device;913UINT16 Function;914UINT16 DeviceControl;915UINT8 Reserved1[2];916UINT32 UncorrectableErrorMask;917UINT32 UncorrectableErrorSeverity;918UINT32 CorrectableErrorMask;919UINT32 AdvancedErrorCapabilitiesAndControl;920UINT32 SecondaryUncorrectableErrorMask;921UINT32 SecondaryUncorrectableErrorSeverity;922UINT32 SecondaryAdvancedErrorCapabilitiesAndControl;923} EFI_ACPI_4_0_PCI_EXPRESS_BRIDGE_AER_STRUCTURE;924925///926/// Generic Hardware Error Source Structure Definition927///928typedef struct {929UINT16 Type;930UINT16 SourceId;931UINT16 RelatedSourceId;932UINT8 Flags;933UINT8 Enabled;934UINT32 NumberOfRecordsToPreAllocate;935UINT32 MaxSectionsPerRecord;936UINT32 MaxRawDataLength;937EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;938EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;939UINT32 ErrorStatusBlockLength;940} EFI_ACPI_4_0_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE;941942///943/// Generic Error Status Definition944///945typedef struct {946EFI_ACPI_4_0_ERROR_BLOCK_STATUS BlockStatus;947UINT32 RawDataOffset;948UINT32 RawDataLength;949UINT32 DataLength;950UINT32 ErrorSeverity;951} EFI_ACPI_4_0_GENERIC_ERROR_STATUS_STRUCTURE;952953///954/// ERST - Error Record Serialization Table955///956typedef struct {957EFI_ACPI_DESCRIPTION_HEADER Header;958UINT32 SerializationHeaderSize;959UINT8 Reserved0[4];960UINT32 InstructionEntryCount;961} EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_HEADER;962963///964/// ERST Version (as defined in ACPI 4.0 spec.)965///966#define EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x01967968///969/// ERST Serialization Actions970///971#define EFI_ACPI_4_0_ERST_BEGIN_WRITE_OPERATION 0x00972#define EFI_ACPI_4_0_ERST_BEGIN_READ_OPERATION 0x01973#define EFI_ACPI_4_0_ERST_BEGIN_CLEAR_OPERATION 0x02974#define EFI_ACPI_4_0_ERST_END_OPERATION 0x03975#define EFI_ACPI_4_0_ERST_SET_RECORD_OFFSET 0x04976#define EFI_ACPI_4_0_ERST_EXECUTE_OPERATION 0x05977#define EFI_ACPI_4_0_ERST_CHECK_BUSY_STATUS 0x06978#define EFI_ACPI_4_0_ERST_GET_COMMAND_STATUS 0x07979#define EFI_ACPI_4_0_ERST_GET_RECORD_IDENTIFIER 0x08980#define EFI_ACPI_4_0_ERST_SET_RECORD_IDENTIFIER 0x09981#define EFI_ACPI_4_0_ERST_GET_RECORD_COUNT 0x0A982#define EFI_ACPI_4_0_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B983#define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D984#define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E985#define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F986987///988/// ERST Action Command Status989///990#define EFI_ACPI_4_0_EINJ_STATUS_SUCCESS 0x00991#define EFI_ACPI_4_0_EINJ_STATUS_NOT_ENOUGH_SPACE 0x01992#define EFI_ACPI_4_0_EINJ_STATUS_HARDWARE_NOT_AVAILABLE 0x02993#define EFI_ACPI_4_0_EINJ_STATUS_FAILED 0x03994#define EFI_ACPI_4_0_EINJ_STATUS_RECORD_STORE_EMPTY 0x04995#define EFI_ACPI_4_0_EINJ_STATUS_RECORD_NOT_FOUND 0x05996997///998/// ERST Serialization Instructions999///1000#define EFI_ACPI_4_0_ERST_READ_REGISTER 0x001001#define EFI_ACPI_4_0_ERST_READ_REGISTER_VALUE 0x011002#define EFI_ACPI_4_0_ERST_WRITE_REGISTER 0x021003#define EFI_ACPI_4_0_ERST_WRITE_REGISTER_VALUE 0x031004#define EFI_ACPI_4_0_ERST_NOOP 0x041005#define EFI_ACPI_4_0_ERST_LOAD_VAR1 0x051006#define EFI_ACPI_4_0_ERST_LOAD_VAR2 0x061007#define EFI_ACPI_4_0_ERST_STORE_VAR1 0x071008#define EFI_ACPI_4_0_ERST_ADD 0x081009#define EFI_ACPI_4_0_ERST_SUBTRACT 0x091010#define EFI_ACPI_4_0_ERST_ADD_VALUE 0x0A1011#define EFI_ACPI_4_0_ERST_SUBTRACT_VALUE 0x0B1012#define EFI_ACPI_4_0_ERST_STALL 0x0C1013#define EFI_ACPI_4_0_ERST_STALL_WHILE_TRUE 0x0D1014#define EFI_ACPI_4_0_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E1015#define EFI_ACPI_4_0_ERST_GOTO 0x0F1016#define EFI_ACPI_4_0_ERST_SET_SRC_ADDRESS_BASE 0x101017#define EFI_ACPI_4_0_ERST_SET_DST_ADDRESS_BASE 0x111018#define EFI_ACPI_4_0_ERST_MOVE_DATA 0x1210191020///1021/// ERST Instruction Flags1022///1023#define EFI_ACPI_4_0_ERST_PRESERVE_REGISTER 0x0110241025///1026/// ERST Serialization Instruction Entry1027///1028typedef struct {1029UINT8 SerializationAction;1030UINT8 Instruction;1031UINT8 Flags;1032UINT8 Reserved0;1033EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;1034UINT64 Value;1035UINT64 Mask;1036} EFI_ACPI_4_0_ERST_SERIALIZATION_INSTRUCTION_ENTRY;10371038///1039/// EINJ - Error Injection Table1040///1041typedef struct {1042EFI_ACPI_DESCRIPTION_HEADER Header;1043UINT32 InjectionHeaderSize;1044UINT8 InjectionFlags;1045UINT8 Reserved0[3];1046UINT32 InjectionEntryCount;1047} EFI_ACPI_4_0_ERROR_INJECTION_TABLE_HEADER;10481049///1050/// EINJ Version (as defined in ACPI 4.0 spec.)1051///1052#define EFI_ACPI_4_0_ERROR_INJECTION_TABLE_REVISION 0x0110531054///1055/// EINJ Error Injection Actions1056///1057#define EFI_ACPI_4_0_EINJ_BEGIN_INJECTION_OPERATION 0x001058#define EFI_ACPI_4_0_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x011059#define EFI_ACPI_4_0_EINJ_SET_ERROR_TYPE 0x021060#define EFI_ACPI_4_0_EINJ_GET_ERROR_TYPE 0x031061#define EFI_ACPI_4_0_EINJ_END_OPERATION 0x041062#define EFI_ACPI_4_0_EINJ_EXECUTE_OPERATION 0x051063#define EFI_ACPI_4_0_EINJ_CHECK_BUSY_STATUS 0x061064#define EFI_ACPI_4_0_EINJ_GET_COMMAND_STATUS 0x071065#define EFI_ACPI_4_0_EINJ_TRIGGER_ERROR 0xFF10661067///1068/// EINJ Action Command Status1069///1070#define EFI_ACPI_4_0_EINJ_STATUS_SUCCESS 0x001071#define EFI_ACPI_4_0_EINJ_STATUS_UNKNOWN_FAILURE 0x011072#define EFI_ACPI_4_0_EINJ_STATUS_INVALID_ACCESS 0x0210731074///1075/// EINJ Error Type Definition1076///1077#define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0)1078#define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1)1079#define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2)1080#define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3)1081#define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4)1082#define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5)1083#define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6)1084#define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7)1085#define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8)1086#define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9)1087#define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10)1088#define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11)10891090///1091/// EINJ Injection Instructions1092///1093#define EFI_ACPI_4_0_EINJ_READ_REGISTER 0x001094#define EFI_ACPI_4_0_EINJ_READ_REGISTER_VALUE 0x011095#define EFI_ACPI_4_0_EINJ_WRITE_REGISTER 0x021096#define EFI_ACPI_4_0_EINJ_WRITE_REGISTER_VALUE 0x031097#define EFI_ACPI_4_0_EINJ_NOOP 0x0410981099///1100/// EINJ Instruction Flags1101///1102#define EFI_ACPI_4_0_EINJ_PRESERVE_REGISTER 0x0111031104///1105/// EINJ Injection Instruction Entry1106///1107typedef struct {1108UINT8 InjectionAction;1109UINT8 Instruction;1110UINT8 Flags;1111UINT8 Reserved0;1112EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;1113UINT64 Value;1114UINT64 Mask;1115} EFI_ACPI_4_0_EINJ_INJECTION_INSTRUCTION_ENTRY;11161117///1118/// EINJ Trigger Action Table1119///1120typedef struct {1121UINT32 HeaderSize;1122UINT32 Revision;1123UINT32 TableSize;1124UINT32 EntryCount;1125} EFI_ACPI_4_0_EINJ_TRIGGER_ACTION_TABLE;11261127//1128// Known table signatures1129//11301131///1132/// "RSD PTR " Root System Description Pointer1133///1134#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')11351136///1137/// "APIC" Multiple APIC Description Table1138///1139#define EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')11401141///1142/// "BERT" Boot Error Record Table1143///1144#define EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T')11451146///1147/// "CPEP" Corrected Platform Error Polling Table1148///1149#define EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')11501151///1152/// "DSDT" Differentiated System Description Table1153///1154#define EFI_ACPI_4_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')11551156///1157/// "ECDT" Embedded Controller Boot Resources Table1158///1159#define EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')11601161///1162/// "EINJ" Error Injection Table1163///1164#define EFI_ACPI_4_0_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J')11651166///1167/// "ERST" Error Record Serialization Table1168///1169#define EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T')11701171///1172/// "FACP" Fixed ACPI Description Table1173///1174#define EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')11751176///1177/// "FACS" Firmware ACPI Control Structure1178///1179#define EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')11801181///1182/// "HEST" Hardware Error Source Table1183///1184#define EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T')11851186///1187/// "MSCT" Maximum System Characteristics Table1188///1189#define EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T')11901191///1192/// "PSDT" Persistent System Description Table1193///1194#define EFI_ACPI_4_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')11951196///1197/// "RSDT" Root System Description Table1198///1199#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')12001201///1202/// "SBST" Smart Battery Specification Table1203///1204#define EFI_ACPI_4_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')12051206///1207/// "SLIT" System Locality Information Table1208///1209#define EFI_ACPI_4_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')12101211///1212/// "SRAT" System Resource Affinity Table1213///1214#define EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')12151216///1217/// "SSDT" Secondary System Description Table1218///1219#define EFI_ACPI_4_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')12201221///1222/// "XSDT" Extended System Description Table1223///1224#define EFI_ACPI_4_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')12251226///1227/// "BOOT" MS Simple Boot Spec1228///1229#define EFI_ACPI_4_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')12301231///1232/// "DBGP" MS Debug Port Spec1233///1234#define EFI_ACPI_4_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')12351236///1237/// "DMAR" DMA Remapping Table1238///1239#define EFI_ACPI_4_0_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R')12401241///1242/// "ETDT" Event Timer Description Table1243///1244#define EFI_ACPI_4_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')12451246///1247/// "HPET" IA-PC High Precision Event Timer Table1248///1249#define EFI_ACPI_4_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')12501251///1252/// "iBFT" iSCSI Boot Firmware Table1253///1254#define EFI_ACPI_4_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')12551256///1257/// "IVRS" I/O Virtualization Reporting Structure1258///1259#define EFI_ACPI_4_0_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S')12601261///1262/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table1263///1264#define EFI_ACPI_4_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')12651266///1267/// "MCHI" Management Controller Host Interface Table1268///1269#define EFI_ACPI_4_0_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I')12701271///1272/// "SPCR" Serial Port Console Redirection Table1273///1274#define EFI_ACPI_4_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')12751276///1277/// "SPMI" Server Platform Management Interface Table1278///1279#define EFI_ACPI_4_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')12801281///1282/// "TCPA" Trusted Computing Platform Alliance Capabilities Table1283///1284#define EFI_ACPI_4_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')12851286///1287/// "UEFI" UEFI ACPI Data Table1288///1289#define EFI_ACPI_4_0_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I')12901291///1292/// "WAET" Windows ACPI Enlightenment Table1293///1294#define EFI_ACPI_4_0_WINDOWS_ACPI_ENLIGHTENMENT_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T')12951296///1297/// "WDAT" Watchdog Action Table1298///1299#define EFI_ACPI_4_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')13001301///1302/// "WDRT" Watchdog Resource Table1303///1304#define EFI_ACPI_4_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')13051306#pragma pack()13071308#endif130913101311