Path: blob/main/sys/contrib/edk2/Include/IndustryStandard/Acpi60.h
48291 views
/** @file1ACPI 6.0 definitions from the ACPI Specification Revision 6.0 Errata A January, 2016.23Copyright (c) 2015 - 2022, Intel Corporation. All rights reserved.<BR>4(C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>5Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>6SPDX-License-Identifier: BSD-2-Clause-Patent7**/89#ifndef _ACPI_6_0_H_10#define _ACPI_6_0_H_1112#include <IndustryStandard/Acpi51.h>1314///15/// _PSD Revision for ACPI 6.016///17#define EFI_ACPI_6_0_AML_PSD_REVISION 01819///20/// _CPC Revision for ACPI 6.021///22#define EFI_ACPI_6_0_AML_CPC_REVISION 22324//25// Ensure proper structure formats26//27#pragma pack(1)2829///30/// ACPI 6.0 Generic Address Space definition31///32typedef struct {33UINT8 AddressSpaceId;34UINT8 RegisterBitWidth;35UINT8 RegisterBitOffset;36UINT8 AccessSize;37UINT64 Address;38} EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE;3940//41// Generic Address Space Address IDs42//43#define EFI_ACPI_6_0_SYSTEM_MEMORY 044#define EFI_ACPI_6_0_SYSTEM_IO 145#define EFI_ACPI_6_0_PCI_CONFIGURATION_SPACE 246#define EFI_ACPI_6_0_EMBEDDED_CONTROLLER 347#define EFI_ACPI_6_0_SMBUS 448#define EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL 0x0A49#define EFI_ACPI_6_0_FUNCTIONAL_FIXED_HARDWARE 0x7F5051//52// Generic Address Space Access Sizes53//54#define EFI_ACPI_6_0_UNDEFINED 055#define EFI_ACPI_6_0_BYTE 156#define EFI_ACPI_6_0_WORD 257#define EFI_ACPI_6_0_DWORD 358#define EFI_ACPI_6_0_QWORD 45960//61// ACPI 6.0 table structures62//6364///65/// Root System Description Pointer Structure66///67typedef struct {68UINT64 Signature;69UINT8 Checksum;70UINT8 OemId[6];71UINT8 Revision;72UINT32 RsdtAddress;73UINT32 Length;74UINT64 XsdtAddress;75UINT8 ExtendedChecksum;76UINT8 Reserved[3];77} EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER;7879///80/// RSD_PTR Revision (as defined in ACPI 6.0 spec.)81///82#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 6.0) says current value is 28384///85/// Common table header, this prefaces all ACPI tables, including FACS, but86/// excluding the RSD PTR structure87///88typedef struct {89UINT32 Signature;90UINT32 Length;91} EFI_ACPI_6_0_COMMON_HEADER;9293//94// Root System Description Table95// No definition needed as it is a common description table header, the same with96// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.97//9899///100/// RSDT Revision (as defined in ACPI 6.0 spec.)101///102#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01103104//105// Extended System Description Table106// No definition needed as it is a common description table header, the same with107// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.108//109110///111/// XSDT Revision (as defined in ACPI 6.0 spec.)112///113#define EFI_ACPI_6_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01114115///116/// Fixed ACPI Description Table Structure (FADT)117///118typedef struct {119EFI_ACPI_DESCRIPTION_HEADER Header;120UINT32 FirmwareCtrl;121UINT32 Dsdt;122UINT8 Reserved0;123UINT8 PreferredPmProfile;124UINT16 SciInt;125UINT32 SmiCmd;126UINT8 AcpiEnable;127UINT8 AcpiDisable;128UINT8 S4BiosReq;129UINT8 PstateCnt;130UINT32 Pm1aEvtBlk;131UINT32 Pm1bEvtBlk;132UINT32 Pm1aCntBlk;133UINT32 Pm1bCntBlk;134UINT32 Pm2CntBlk;135UINT32 PmTmrBlk;136UINT32 Gpe0Blk;137UINT32 Gpe1Blk;138UINT8 Pm1EvtLen;139UINT8 Pm1CntLen;140UINT8 Pm2CntLen;141UINT8 PmTmrLen;142UINT8 Gpe0BlkLen;143UINT8 Gpe1BlkLen;144UINT8 Gpe1Base;145UINT8 CstCnt;146UINT16 PLvl2Lat;147UINT16 PLvl3Lat;148UINT16 FlushSize;149UINT16 FlushStride;150UINT8 DutyOffset;151UINT8 DutyWidth;152UINT8 DayAlrm;153UINT8 MonAlrm;154UINT8 Century;155UINT16 IaPcBootArch;156UINT8 Reserved1;157UINT32 Flags;158EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ResetReg;159UINT8 ResetValue;160UINT16 ArmBootArch;161UINT8 MinorVersion;162UINT64 XFirmwareCtrl;163UINT64 XDsdt;164EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;165EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;166EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;167EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;168EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;169EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;170EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;171EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;172EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg;173EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg;174UINT64 HypervisorVendorIdentity;175} EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE;176177///178/// FADT Version (as defined in ACPI 6.0 spec.)179///180#define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x06181#define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION 0x00182183//184// Fixed ACPI Description Table Preferred Power Management Profile185//186#define EFI_ACPI_6_0_PM_PROFILE_UNSPECIFIED 0187#define EFI_ACPI_6_0_PM_PROFILE_DESKTOP 1188#define EFI_ACPI_6_0_PM_PROFILE_MOBILE 2189#define EFI_ACPI_6_0_PM_PROFILE_WORKSTATION 3190#define EFI_ACPI_6_0_PM_PROFILE_ENTERPRISE_SERVER 4191#define EFI_ACPI_6_0_PM_PROFILE_SOHO_SERVER 5192#define EFI_ACPI_6_0_PM_PROFILE_APPLIANCE_PC 6193#define EFI_ACPI_6_0_PM_PROFILE_PERFORMANCE_SERVER 7194#define EFI_ACPI_6_0_PM_PROFILE_TABLET 8195196//197// Fixed ACPI Description Table Boot Architecture Flags198// All other bits are reserved and must be set to 0.199//200#define EFI_ACPI_6_0_LEGACY_DEVICES BIT0201#define EFI_ACPI_6_0_8042 BIT1202#define EFI_ACPI_6_0_VGA_NOT_PRESENT BIT2203#define EFI_ACPI_6_0_MSI_NOT_SUPPORTED BIT3204#define EFI_ACPI_6_0_PCIE_ASPM_CONTROLS BIT4205#define EFI_ACPI_6_0_CMOS_RTC_NOT_PRESENT BIT5206207//208// Fixed ACPI Description Table Arm Boot Architecture Flags209// All other bits are reserved and must be set to 0.210//211#define EFI_ACPI_6_0_ARM_PSCI_COMPLIANT BIT0212#define EFI_ACPI_6_0_ARM_PSCI_USE_HVC BIT1213214//215// Fixed ACPI Description Table Fixed Feature Flags216// All other bits are reserved and must be set to 0.217//218#define EFI_ACPI_6_0_WBINVD BIT0219#define EFI_ACPI_6_0_WBINVD_FLUSH BIT1220#define EFI_ACPI_6_0_PROC_C1 BIT2221#define EFI_ACPI_6_0_P_LVL2_UP BIT3222#define EFI_ACPI_6_0_PWR_BUTTON BIT4223#define EFI_ACPI_6_0_SLP_BUTTON BIT5224#define EFI_ACPI_6_0_FIX_RTC BIT6225#define EFI_ACPI_6_0_RTC_S4 BIT7226#define EFI_ACPI_6_0_TMR_VAL_EXT BIT8227#define EFI_ACPI_6_0_DCK_CAP BIT9228#define EFI_ACPI_6_0_RESET_REG_SUP BIT10229#define EFI_ACPI_6_0_SEALED_CASE BIT11230#define EFI_ACPI_6_0_HEADLESS BIT12231#define EFI_ACPI_6_0_CPU_SW_SLP BIT13232#define EFI_ACPI_6_0_PCI_EXP_WAK BIT14233#define EFI_ACPI_6_0_USE_PLATFORM_CLOCK BIT15234#define EFI_ACPI_6_0_S4_RTC_STS_VALID BIT16235#define EFI_ACPI_6_0_REMOTE_POWER_ON_CAPABLE BIT17236#define EFI_ACPI_6_0_FORCE_APIC_CLUSTER_MODEL BIT18237#define EFI_ACPI_6_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19238#define EFI_ACPI_6_0_HW_REDUCED_ACPI BIT20239#define EFI_ACPI_6_0_LOW_POWER_S0_IDLE_CAPABLE BIT21240241///242/// Firmware ACPI Control Structure243///244typedef struct {245UINT32 Signature;246UINT32 Length;247UINT32 HardwareSignature;248UINT32 FirmwareWakingVector;249UINT32 GlobalLock;250UINT32 Flags;251UINT64 XFirmwareWakingVector;252UINT8 Version;253UINT8 Reserved0[3];254UINT32 OspmFlags;255UINT8 Reserved1[24];256} EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;257258///259/// FACS Version (as defined in ACPI 6.0 spec.)260///261#define EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02262263///264/// Firmware Control Structure Feature Flags265/// All other bits are reserved and must be set to 0.266///267#define EFI_ACPI_6_0_S4BIOS_F BIT0268#define EFI_ACPI_6_0_64BIT_WAKE_SUPPORTED_F BIT1269270///271/// OSPM Enabled Firmware Control Structure Flags272/// All other bits are reserved and must be set to 0.273///274#define EFI_ACPI_6_0_OSPM_64BIT_WAKE_F BIT0275276//277// Differentiated System Description Table,278// Secondary System Description Table279// and Persistent System Description Table,280// no definition needed as they are common description table header, the same with281// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.282//283#define EFI_ACPI_6_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02284#define EFI_ACPI_6_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02285286///287/// Multiple APIC Description Table header definition. The rest of the table288/// must be defined in a platform specific manner.289///290typedef struct {291EFI_ACPI_DESCRIPTION_HEADER Header;292UINT32 LocalApicAddress;293UINT32 Flags;294} EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;295296///297/// MADT Revision (as defined in ACPI 6.0 Errata A spec.)298///299#define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x04300301///302/// Multiple APIC Flags303/// All other bits are reserved and must be set to 0.304///305#define EFI_ACPI_6_0_PCAT_COMPAT BIT0306307//308// Multiple APIC Description Table APIC structure types309// All other values between 0x0D and 0x7F are reserved and310// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.311//312#define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC 0x00313#define EFI_ACPI_6_0_IO_APIC 0x01314#define EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE 0x02315#define EFI_ACPI_6_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03316#define EFI_ACPI_6_0_LOCAL_APIC_NMI 0x04317#define EFI_ACPI_6_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05318#define EFI_ACPI_6_0_IO_SAPIC 0x06319#define EFI_ACPI_6_0_LOCAL_SAPIC 0x07320#define EFI_ACPI_6_0_PLATFORM_INTERRUPT_SOURCES 0x08321#define EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC 0x09322#define EFI_ACPI_6_0_LOCAL_X2APIC_NMI 0x0A323#define EFI_ACPI_6_0_GIC 0x0B324#define EFI_ACPI_6_0_GICD 0x0C325#define EFI_ACPI_6_0_GIC_MSI_FRAME 0x0D326#define EFI_ACPI_6_0_GICR 0x0E327#define EFI_ACPI_6_0_GIC_ITS 0x0F328329//330// APIC Structure Definitions331//332333///334/// Processor Local APIC Structure Definition335///336typedef struct {337UINT8 Type;338UINT8 Length;339UINT8 AcpiProcessorUid;340UINT8 ApicId;341UINT32 Flags;342} EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_STRUCTURE;343344///345/// Local APIC Flags. All other bits are reserved and must be 0.346///347#define EFI_ACPI_6_0_LOCAL_APIC_ENABLED BIT0348349///350/// IO APIC Structure351///352typedef struct {353UINT8 Type;354UINT8 Length;355UINT8 IoApicId;356UINT8 Reserved;357UINT32 IoApicAddress;358UINT32 GlobalSystemInterruptBase;359} EFI_ACPI_6_0_IO_APIC_STRUCTURE;360361///362/// Interrupt Source Override Structure363///364typedef struct {365UINT8 Type;366UINT8 Length;367UINT8 Bus;368UINT8 Source;369UINT32 GlobalSystemInterrupt;370UINT16 Flags;371} EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;372373///374/// Platform Interrupt Sources Structure Definition375///376typedef struct {377UINT8 Type;378UINT8 Length;379UINT16 Flags;380UINT8 InterruptType;381UINT8 ProcessorId;382UINT8 ProcessorEid;383UINT8 IoSapicVector;384UINT32 GlobalSystemInterrupt;385UINT32 PlatformInterruptSourceFlags;386UINT8 CpeiProcessorOverride;387UINT8 Reserved[31];388} EFI_ACPI_6_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;389390//391// MPS INTI flags.392// All other bits are reserved and must be set to 0.393//394#define EFI_ACPI_6_0_POLARITY (3 << 0)395#define EFI_ACPI_6_0_TRIGGER_MODE (3 << 2)396397///398/// Non-Maskable Interrupt Source Structure399///400typedef struct {401UINT8 Type;402UINT8 Length;403UINT16 Flags;404UINT32 GlobalSystemInterrupt;405} EFI_ACPI_6_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;406407///408/// Local APIC NMI Structure409///410typedef struct {411UINT8 Type;412UINT8 Length;413UINT8 AcpiProcessorUid;414UINT16 Flags;415UINT8 LocalApicLint;416} EFI_ACPI_6_0_LOCAL_APIC_NMI_STRUCTURE;417418///419/// Local APIC Address Override Structure420///421typedef struct {422UINT8 Type;423UINT8 Length;424UINT16 Reserved;425UINT64 LocalApicAddress;426} EFI_ACPI_6_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;427428///429/// IO SAPIC Structure430///431typedef struct {432UINT8 Type;433UINT8 Length;434UINT8 IoApicId;435UINT8 Reserved;436UINT32 GlobalSystemInterruptBase;437UINT64 IoSapicAddress;438} EFI_ACPI_6_0_IO_SAPIC_STRUCTURE;439440///441/// Local SAPIC Structure442/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String443///444typedef struct {445UINT8 Type;446UINT8 Length;447UINT8 AcpiProcessorId;448UINT8 LocalSapicId;449UINT8 LocalSapicEid;450UINT8 Reserved[3];451UINT32 Flags;452UINT32 ACPIProcessorUIDValue;453} EFI_ACPI_6_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;454455///456/// Platform Interrupt Sources Structure457///458typedef struct {459UINT8 Type;460UINT8 Length;461UINT16 Flags;462UINT8 InterruptType;463UINT8 ProcessorId;464UINT8 ProcessorEid;465UINT8 IoSapicVector;466UINT32 GlobalSystemInterrupt;467UINT32 PlatformInterruptSourceFlags;468} EFI_ACPI_6_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;469470///471/// Platform Interrupt Source Flags.472/// All other bits are reserved and must be set to 0.473///474#define EFI_ACPI_6_0_CPEI_PROCESSOR_OVERRIDE BIT0475476///477/// Processor Local x2APIC Structure Definition478///479typedef struct {480UINT8 Type;481UINT8 Length;482UINT8 Reserved[2];483UINT32 X2ApicId;484UINT32 Flags;485UINT32 AcpiProcessorUid;486} EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE;487488///489/// Local x2APIC NMI Structure490///491typedef struct {492UINT8 Type;493UINT8 Length;494UINT16 Flags;495UINT32 AcpiProcessorUid;496UINT8 LocalX2ApicLint;497UINT8 Reserved[3];498} EFI_ACPI_6_0_LOCAL_X2APIC_NMI_STRUCTURE;499500///501/// GIC Structure502///503typedef struct {504UINT8 Type;505UINT8 Length;506UINT16 Reserved;507UINT32 CPUInterfaceNumber;508UINT32 AcpiProcessorUid;509UINT32 Flags;510UINT32 ParkingProtocolVersion;511UINT32 PerformanceInterruptGsiv;512UINT64 ParkedAddress;513UINT64 PhysicalBaseAddress;514UINT64 GICV;515UINT64 GICH;516UINT32 VGICMaintenanceInterrupt;517UINT64 GICRBaseAddress;518UINT64 MPIDR;519UINT8 ProcessorPowerEfficiencyClass;520UINT8 Reserved2[3];521} EFI_ACPI_6_0_GIC_STRUCTURE;522523///524/// GIC Flags. All other bits are reserved and must be 0.525///526#define EFI_ACPI_6_0_GIC_ENABLED BIT0527#define EFI_ACPI_6_0_PERFORMANCE_INTERRUPT_MODEL BIT1528#define EFI_ACPI_6_0_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS BIT2529530///531/// GIC Distributor Structure532///533typedef struct {534UINT8 Type;535UINT8 Length;536UINT16 Reserved1;537UINT32 GicId;538UINT64 PhysicalBaseAddress;539UINT32 SystemVectorBase;540UINT8 GicVersion;541UINT8 Reserved2[3];542} EFI_ACPI_6_0_GIC_DISTRIBUTOR_STRUCTURE;543544///545/// GIC Version546///547#define EFI_ACPI_6_0_GIC_V1 0x01548#define EFI_ACPI_6_0_GIC_V2 0x02549#define EFI_ACPI_6_0_GIC_V3 0x03550#define EFI_ACPI_6_0_GIC_V4 0x04551552///553/// GIC MSI Frame Structure554///555typedef struct {556UINT8 Type;557UINT8 Length;558UINT16 Reserved1;559UINT32 GicMsiFrameId;560UINT64 PhysicalBaseAddress;561UINT32 Flags;562UINT16 SPICount;563UINT16 SPIBase;564} EFI_ACPI_6_0_GIC_MSI_FRAME_STRUCTURE;565566///567/// GIC MSI Frame Flags. All other bits are reserved and must be 0.568///569#define EFI_ACPI_6_0_SPI_COUNT_BASE_SELECT BIT0570571///572/// GICR Structure573///574typedef struct {575UINT8 Type;576UINT8 Length;577UINT16 Reserved;578UINT64 DiscoveryRangeBaseAddress;579UINT32 DiscoveryRangeLength;580} EFI_ACPI_6_0_GICR_STRUCTURE;581582///583/// GIC Interrupt Translation Service Structure584///585typedef struct {586UINT8 Type;587UINT8 Length;588UINT16 Reserved;589UINT32 GicItsId;590UINT64 PhysicalBaseAddress;591UINT32 Reserved2;592} EFI_ACPI_6_0_GIC_ITS_STRUCTURE;593594///595/// Smart Battery Description Table (SBST)596///597typedef struct {598EFI_ACPI_DESCRIPTION_HEADER Header;599UINT32 WarningEnergyLevel;600UINT32 LowEnergyLevel;601UINT32 CriticalEnergyLevel;602} EFI_ACPI_6_0_SMART_BATTERY_DESCRIPTION_TABLE;603604///605/// SBST Version (as defined in ACPI 6.0 spec.)606///607#define EFI_ACPI_6_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01608609///610/// Embedded Controller Boot Resources Table (ECDT)611/// The table is followed by a null terminated ASCII string that contains612/// a fully qualified reference to the name space object.613///614typedef struct {615EFI_ACPI_DESCRIPTION_HEADER Header;616EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcControl;617EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcData;618UINT32 Uid;619UINT8 GpeBit;620} EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;621622///623/// ECDT Version (as defined in ACPI 6.0 spec.)624///625#define EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01626627///628/// System Resource Affinity Table (SRAT). The rest of the table629/// must be defined in a platform specific manner.630///631typedef struct {632EFI_ACPI_DESCRIPTION_HEADER Header;633UINT32 Reserved1; ///< Must be set to 1634UINT64 Reserved2;635} EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;636637///638/// SRAT Version (as defined in ACPI 6.0 spec.)639///640#define EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03641642//643// SRAT structure types.644// All other values between 0x04 an 0xFF are reserved and645// will be ignored by OSPM.646//647#define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00648#define EFI_ACPI_6_0_MEMORY_AFFINITY 0x01649#define EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02650#define EFI_ACPI_6_0_GICC_AFFINITY 0x03651652///653/// Processor Local APIC/SAPIC Affinity Structure Definition654///655typedef struct {656UINT8 Type;657UINT8 Length;658UINT8 ProximityDomain7To0;659UINT8 ApicId;660UINT32 Flags;661UINT8 LocalSapicEid;662UINT8 ProximityDomain31To8[3];663UINT32 ClockDomain;664} EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;665666///667/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.668///669#define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)670671///672/// Memory Affinity Structure Definition673///674typedef struct {675UINT8 Type;676UINT8 Length;677UINT32 ProximityDomain;678UINT16 Reserved1;679UINT32 AddressBaseLow;680UINT32 AddressBaseHigh;681UINT32 LengthLow;682UINT32 LengthHigh;683UINT32 Reserved2;684UINT32 Flags;685UINT64 Reserved3;686} EFI_ACPI_6_0_MEMORY_AFFINITY_STRUCTURE;687688//689// Memory Flags. All other bits are reserved and must be 0.690//691#define EFI_ACPI_6_0_MEMORY_ENABLED (1 << 0)692#define EFI_ACPI_6_0_MEMORY_HOT_PLUGGABLE (1 << 1)693#define EFI_ACPI_6_0_MEMORY_NONVOLATILE (1 << 2)694695///696/// Processor Local x2APIC Affinity Structure Definition697///698typedef struct {699UINT8 Type;700UINT8 Length;701UINT8 Reserved1[2];702UINT32 ProximityDomain;703UINT32 X2ApicId;704UINT32 Flags;705UINT32 ClockDomain;706UINT8 Reserved2[4];707} EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE;708709///710/// GICC Affinity Structure Definition711///712typedef struct {713UINT8 Type;714UINT8 Length;715UINT32 ProximityDomain;716UINT32 AcpiProcessorUid;717UINT32 Flags;718UINT32 ClockDomain;719} EFI_ACPI_6_0_GICC_AFFINITY_STRUCTURE;720721///722/// GICC Flags. All other bits are reserved and must be 0.723///724#define EFI_ACPI_6_0_GICC_ENABLED (1 << 0)725726///727/// System Locality Distance Information Table (SLIT).728/// The rest of the table is a matrix.729///730typedef struct {731EFI_ACPI_DESCRIPTION_HEADER Header;732UINT64 NumberOfSystemLocalities;733} EFI_ACPI_6_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;734735///736/// SLIT Version (as defined in ACPI 6.0 spec.)737///738#define EFI_ACPI_6_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01739740///741/// Corrected Platform Error Polling Table (CPEP)742///743typedef struct {744EFI_ACPI_DESCRIPTION_HEADER Header;745UINT8 Reserved[8];746} EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER;747748///749/// CPEP Version (as defined in ACPI 6.0 spec.)750///751#define EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01752753//754// CPEP processor structure types.755//756#define EFI_ACPI_6_0_CPEP_PROCESSOR_APIC_SAPIC 0x00757758///759/// Corrected Platform Error Polling Processor Structure Definition760///761typedef struct {762UINT8 Type;763UINT8 Length;764UINT8 ProcessorId;765UINT8 ProcessorEid;766UINT32 PollingInterval;767} EFI_ACPI_6_0_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE;768769///770/// Maximum System Characteristics Table (MSCT)771///772typedef struct {773EFI_ACPI_DESCRIPTION_HEADER Header;774UINT32 OffsetProxDomInfo;775UINT32 MaximumNumberOfProximityDomains;776UINT32 MaximumNumberOfClockDomains;777UINT64 MaximumPhysicalAddress;778} EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER;779780///781/// MSCT Version (as defined in ACPI 6.0 spec.)782///783#define EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01784785///786/// Maximum Proximity Domain Information Structure Definition787///788typedef struct {789UINT8 Revision;790UINT8 Length;791UINT32 ProximityDomainRangeLow;792UINT32 ProximityDomainRangeHigh;793UINT32 MaximumProcessorCapacity;794UINT64 MaximumMemoryCapacity;795} EFI_ACPI_6_0_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE;796797///798/// ACPI RAS Feature Table definition.799///800typedef struct {801EFI_ACPI_DESCRIPTION_HEADER Header;802UINT8 PlatformCommunicationChannelIdentifier[12];803} EFI_ACPI_6_0_RAS_FEATURE_TABLE;804805///806/// RASF Version (as defined in ACPI 6.0 spec.)807///808#define EFI_ACPI_6_0_RAS_FEATURE_TABLE_REVISION 0x01809810///811/// ACPI RASF Platform Communication Channel Shared Memory Region definition.812///813typedef struct {814UINT32 Signature;815UINT16 Command;816UINT16 Status;817UINT16 Version;818UINT8 RASCapabilities[16];819UINT8 SetRASCapabilities[16];820UINT16 NumberOfRASFParameterBlocks;821UINT32 SetRASCapabilitiesStatus;822} EFI_ACPI_6_0_RASF_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION;823824///825/// ACPI RASF PCC command code826///827#define EFI_ACPI_6_0_RASF_PCC_COMMAND_CODE_EXECUTE_RASF_COMMAND 0x01828829///830/// ACPI RASF Platform RAS Capabilities831///832#define EFI_ACPI_6_0_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED 0x01833#define EFI_ACPI_6_0_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED_AND_EXPOSED_TO_SOFTWARE 0x02834835///836/// ACPI RASF Parameter Block structure for PATROL_SCRUB837///838typedef struct {839UINT16 Type;840UINT16 Version;841UINT16 Length;842UINT16 PatrolScrubCommand;843UINT64 RequestedAddressRange[2];844UINT64 ActualAddressRange[2];845UINT16 Flags;846UINT8 RequestedSpeed;847} EFI_ACPI_6_0_RASF_PATROL_SCRUB_PLATFORM_BLOCK_STRUCTURE;848849///850/// ACPI RASF Patrol Scrub command851///852#define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_GET_PATROL_PARAMETERS 0x01853#define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_START_PATROL_SCRUBBER 0x02854#define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_STOP_PATROL_SCRUBBER 0x03855856///857/// Memory Power State Table definition.858///859typedef struct {860EFI_ACPI_DESCRIPTION_HEADER Header;861UINT8 PlatformCommunicationChannelIdentifier;862UINT8 Reserved[3];863// Memory Power Node Structure864// Memory Power State Characteristics865} EFI_ACPI_6_0_MEMORY_POWER_STATUS_TABLE;866867///868/// MPST Version (as defined in ACPI 6.0 spec.)869///870#define EFI_ACPI_6_0_MEMORY_POWER_STATE_TABLE_REVISION 0x01871872///873/// MPST Platform Communication Channel Shared Memory Region definition.874///875typedef struct {876UINT32 Signature;877UINT16 Command;878UINT16 Status;879UINT32 MemoryPowerCommandRegister;880UINT32 MemoryPowerStatusRegister;881UINT32 PowerStateId;882UINT32 MemoryPowerNodeId;883UINT64 MemoryEnergyConsumed;884UINT64 ExpectedAveragePowerComsuned;885} EFI_ACPI_6_0_MPST_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION;886887///888/// ACPI MPST PCC command code889///890#define EFI_ACPI_6_0_MPST_PCC_COMMAND_CODE_EXECUTE_MPST_COMMAND 0x03891892///893/// ACPI MPST Memory Power command894///895#define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_POWER_STATE 0x01896#define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_SET_MEMORY_POWER_STATE 0x02897#define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_AVERAGE_POWER_CONSUMED 0x03898#define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_ENERGY_CONSUMED 0x04899900///901/// MPST Memory Power Node Table902///903typedef struct {904UINT8 PowerStateValue;905UINT8 PowerStateInformationIndex;906} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE;907908typedef struct {909UINT8 Flag;910UINT8 Reserved;911UINT16 MemoryPowerNodeId;912UINT32 Length;913UINT64 AddressBase;914UINT64 AddressLength;915UINT32 NumberOfPowerStates;916UINT32 NumberOfPhysicalComponents;917// EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates];918// UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents];919} EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE;920921#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_ENABLE 0x01922#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_POWER_MANAGED 0x02923#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_HOT_PLUGGABLE 0x04924925typedef struct {926UINT16 MemoryPowerNodeCount;927UINT8 Reserved[2];928} EFI_ACPI_6_0_MPST_MEMORY_POWER_NODE_TABLE;929930///931/// MPST Memory Power State Characteristics Table932///933typedef struct {934UINT8 PowerStateStructureID;935UINT8 Flag;936UINT16 Reserved;937UINT32 AveragePowerConsumedInMPS0;938UINT32 RelativePowerSavingToMPS0;939UINT64 ExitLatencyToMPS0;940} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE;941942#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_MEMORY_CONTENT_PRESERVED 0x01943#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_ENTRY 0x02944#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_EXIT 0x04945946typedef struct {947UINT16 MemoryPowerStateCharacteristicsCount;948UINT8 Reserved[2];949} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE;950951///952/// Memory Topology Table definition.953///954typedef struct {955EFI_ACPI_DESCRIPTION_HEADER Header;956UINT32 Reserved;957} EFI_ACPI_6_0_MEMORY_TOPOLOGY_TABLE;958959///960/// PMTT Version (as defined in ACPI 6.0 spec.)961///962#define EFI_ACPI_6_0_MEMORY_TOPOLOGY_TABLE_REVISION 0x01963964///965/// Common Memory Aggregator Device Structure.966///967typedef struct {968UINT8 Type;969UINT8 Reserved;970UINT16 Length;971UINT16 Flags;972UINT16 Reserved1;973} EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;974975///976/// Memory Aggregator Device Type977///978#define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_SOCKET 0x0979#define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_MEMORY_CONTROLLER 0x1980#define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_DIMM 0x2981982///983/// Socket Memory Aggregator Device Structure.984///985typedef struct {986EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;987UINT16 SocketIdentifier;988UINT16 Reserved;989// EFI_ACPI_6_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE MemoryController[];990} EFI_ACPI_6_0_PMMT_SOCKET_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;991992///993/// MemoryController Memory Aggregator Device Structure.994///995typedef struct {996EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;997UINT32 ReadLatency;998UINT32 WriteLatency;999UINT32 ReadBandwidth;1000UINT32 WriteBandwidth;1001UINT16 OptimalAccessUnit;1002UINT16 OptimalAccessAlignment;1003UINT16 Reserved;1004UINT16 NumberOfProximityDomains;1005// UINT32 ProximityDomain[NumberOfProximityDomains];1006// EFI_ACPI_6_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE PhysicalComponent[];1007} EFI_ACPI_6_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;10081009///1010/// DIMM Memory Aggregator Device Structure.1011///1012typedef struct {1013EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header;1014UINT16 PhysicalComponentIdentifier;1015UINT16 Reserved;1016UINT32 SizeOfDimm;1017UINT32 SmbiosHandle;1018} EFI_ACPI_6_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;10191020///1021/// Boot Graphics Resource Table definition.1022///1023typedef struct {1024EFI_ACPI_DESCRIPTION_HEADER Header;1025///1026/// 2-bytes (16 bit) version ID. This value must be 1.1027///1028UINT16 Version;1029///1030/// 1-byte status field indicating current status about the table.1031/// Bits[7:1] = Reserved (must be zero)1032/// Bit [0] = Valid. A one indicates the boot image graphic is valid.1033///1034UINT8 Status;1035///1036/// 1-byte enumerated type field indicating format of the image.1037/// 0 = Bitmap1038/// 1 - 255 Reserved (for future use)1039///1040UINT8 ImageType;1041///1042/// 8-byte (64 bit) physical address pointing to the firmware's in-memory copy1043/// of the image bitmap.1044///1045UINT64 ImageAddress;1046///1047/// A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image.1048/// (X, Y) display offset of the top left corner of the boot image.1049/// The top left corner of the display is at offset (0, 0).1050///1051UINT32 ImageOffsetX;1052///1053/// A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image.1054/// (X, Y) display offset of the top left corner of the boot image.1055/// The top left corner of the display is at offset (0, 0).1056///1057UINT32 ImageOffsetY;1058} EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE;10591060///1061/// BGRT Revision1062///1063#define EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE_REVISION 110641065///1066/// BGRT Version1067///1068#define EFI_ACPI_6_0_BGRT_VERSION 0x0110691070///1071/// BGRT Status1072///1073#define EFI_ACPI_6_0_BGRT_STATUS_NOT_DISPLAYED 0x001074#define EFI_ACPI_6_0_BGRT_STATUS_DISPLAYED 0x0110751076///1077/// BGRT Image Type1078///1079#define EFI_ACPI_6_0_BGRT_IMAGE_TYPE_BMP 0x0010801081///1082/// FPDT Version (as defined in ACPI 6.0 spec.)1083///1084#define EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_DATA_TABLE_REVISION 0x0110851086///1087/// FPDT Performance Record Types1088///1089#define EFI_ACPI_6_0_FPDT_RECORD_TYPE_FIRMWARE_BASIC_BOOT_POINTER 0x00001090#define EFI_ACPI_6_0_FPDT_RECORD_TYPE_S3_PERFORMANCE_TABLE_POINTER 0x000110911092///1093/// FPDT Performance Record Revision1094///1095#define EFI_ACPI_6_0_FPDT_RECORD_REVISION_FIRMWARE_BASIC_BOOT_POINTER 0x011096#define EFI_ACPI_6_0_FPDT_RECORD_REVISION_S3_PERFORMANCE_TABLE_POINTER 0x0110971098///1099/// FPDT Runtime Performance Record Types1100///1101#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_S3_RESUME 0x00001102#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_S3_SUSPEND 0x00011103#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_FIRMWARE_BASIC_BOOT 0x000211041105///1106/// FPDT Runtime Performance Record Revision1107///1108#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_S3_RESUME 0x011109#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_S3_SUSPEND 0x011110#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_FIRMWARE_BASIC_BOOT 0x0211111112///1113/// FPDT Performance Record header1114///1115typedef struct {1116UINT16 Type;1117UINT8 Length;1118UINT8 Revision;1119} EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER;11201121///1122/// FPDT Performance Table header1123///1124typedef struct {1125UINT32 Signature;1126UINT32 Length;1127} EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER;11281129///1130/// FPDT Firmware Basic Boot Performance Pointer Record Structure1131///1132typedef struct {1133EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;1134UINT32 Reserved;1135///1136/// 64-bit processor-relative physical address of the Basic Boot Performance Table.1137///1138UINT64 BootPerformanceTablePointer;1139} EFI_ACPI_6_0_FPDT_BOOT_PERFORMANCE_TABLE_POINTER_RECORD;11401141///1142/// FPDT S3 Performance Table Pointer Record Structure1143///1144typedef struct {1145EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;1146UINT32 Reserved;1147///1148/// 64-bit processor-relative physical address of the S3 Performance Table.1149///1150UINT64 S3PerformanceTablePointer;1151} EFI_ACPI_6_0_FPDT_S3_PERFORMANCE_TABLE_POINTER_RECORD;11521153///1154/// FPDT Firmware Basic Boot Performance Record Structure1155///1156typedef struct {1157EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;1158UINT32 Reserved;1159///1160/// Timer value logged at the beginning of firmware image execution.1161/// This may not always be zero or near zero.1162///1163UINT64 ResetEnd;1164///1165/// Timer value logged just prior to loading the OS boot loader into memory.1166/// For non-UEFI compatible boots, this field must be zero.1167///1168UINT64 OsLoaderLoadImageStart;1169///1170/// Timer value logged just prior to launching the previously loaded OS boot loader image.1171/// For non-UEFI compatible boots, the timer value logged will be just prior1172/// to the INT 19h handler invocation.1173///1174UINT64 OsLoaderStartImageStart;1175///1176/// Timer value logged at the point when the OS loader calls the1177/// ExitBootServices function for UEFI compatible firmware.1178/// For non-UEFI compatible boots, this field must be zero.1179///1180UINT64 ExitBootServicesEntry;1181///1182/// Timer value logged at the point just prior to when the OS loader gaining1183/// control back from calls the ExitBootServices function for UEFI compatible firmware.1184/// For non-UEFI compatible boots, this field must be zero.1185///1186UINT64 ExitBootServicesExit;1187} EFI_ACPI_6_0_FPDT_FIRMWARE_BASIC_BOOT_RECORD;11881189///1190/// FPDT Firmware Basic Boot Performance Table signature1191///1192#define EFI_ACPI_6_0_FPDT_BOOT_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('F', 'B', 'P', 'T')11931194//1195// FPDT Firmware Basic Boot Performance Table1196//1197typedef struct {1198EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header;1199//1200// one or more Performance Records.1201//1202} EFI_ACPI_6_0_FPDT_FIRMWARE_BASIC_BOOT_TABLE;12031204///1205/// FPDT "S3PT" S3 Performance Table1206///1207#define EFI_ACPI_6_0_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('S', '3', 'P', 'T')12081209//1210// FPDT Firmware S3 Boot Performance Table1211//1212typedef struct {1213EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header;1214//1215// one or more Performance Records.1216//1217} EFI_ACPI_6_0_FPDT_FIRMWARE_S3_BOOT_TABLE;12181219///1220/// FPDT Basic S3 Resume Performance Record1221///1222typedef struct {1223EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;1224///1225/// A count of the number of S3 resume cycles since the last full boot sequence.1226///1227UINT32 ResumeCount;1228///1229/// Timer recorded at the end of BIOS S3 resume, just prior to handoff to the1230/// OS waking vector. Only the most recent resume cycle's time is retained.1231///1232UINT64 FullResume;1233///1234/// Average timer value of all resume cycles logged since the last full boot1235/// sequence, including the most recent resume. Note that the entire log of1236/// timer values does not need to be retained in order to calculate this average.1237///1238UINT64 AverageResume;1239} EFI_ACPI_6_0_FPDT_S3_RESUME_RECORD;12401241///1242/// FPDT Basic S3 Suspend Performance Record1243///1244typedef struct {1245EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header;1246///1247/// Timer value recorded at the OS write to SLP_TYP upon entry to S3.1248/// Only the most recent suspend cycle's timer value is retained.1249///1250UINT64 SuspendStart;1251///1252/// Timer value recorded at the final firmware write to SLP_TYP (or other1253/// mechanism) used to trigger hardware entry to S3.1254/// Only the most recent suspend cycle's timer value is retained.1255///1256UINT64 SuspendEnd;1257} EFI_ACPI_6_0_FPDT_S3_SUSPEND_RECORD;12581259///1260/// Firmware Performance Record Table definition.1261///1262typedef struct {1263EFI_ACPI_DESCRIPTION_HEADER Header;1264} EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_RECORD_TABLE;12651266///1267/// Generic Timer Description Table definition.1268///1269typedef struct {1270EFI_ACPI_DESCRIPTION_HEADER Header;1271UINT64 CntControlBasePhysicalAddress;1272UINT32 Reserved;1273UINT32 SecurePL1TimerGSIV;1274UINT32 SecurePL1TimerFlags;1275UINT32 NonSecurePL1TimerGSIV;1276UINT32 NonSecurePL1TimerFlags;1277UINT32 VirtualTimerGSIV;1278UINT32 VirtualTimerFlags;1279UINT32 NonSecurePL2TimerGSIV;1280UINT32 NonSecurePL2TimerFlags;1281UINT64 CntReadBasePhysicalAddress;1282UINT32 PlatformTimerCount;1283UINT32 PlatformTimerOffset;1284} EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE;12851286///1287/// GTDT Version (as defined in ACPI 6.0 spec.)1288///1289#define EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION 0x0212901291///1292/// Timer Flags. All other bits are reserved and must be 0.1293///1294#define EFI_ACPI_6_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT01295#define EFI_ACPI_6_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT11296#define EFI_ACPI_6_0_GTDT_TIMER_FLAG_ALWAYS_ON_CAPABILITY BIT212971298///1299/// Platform Timer Type1300///1301#define EFI_ACPI_6_0_GTDT_GT_BLOCK 01302#define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG 113031304///1305/// GT Block Structure1306///1307typedef struct {1308UINT8 Type;1309UINT16 Length;1310UINT8 Reserved;1311UINT64 CntCtlBase;1312UINT32 GTBlockTimerCount;1313UINT32 GTBlockTimerOffset;1314} EFI_ACPI_6_0_GTDT_GT_BLOCK_STRUCTURE;13151316///1317/// GT Block Timer Structure1318///1319typedef struct {1320UINT8 GTFrameNumber;1321UINT8 Reserved[3];1322UINT64 CntBaseX;1323UINT64 CntEL0BaseX;1324UINT32 GTxPhysicalTimerGSIV;1325UINT32 GTxPhysicalTimerFlags;1326UINT32 GTxVirtualTimerGSIV;1327UINT32 GTxVirtualTimerFlags;1328UINT32 GTxCommonFlags;1329} EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_STRUCTURE;13301331///1332/// GT Block Physical Timers and Virtual Timers Flags. All other bits are reserved and must be 0.1333///1334#define EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT01335#define EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT113361337///1338/// Common Flags Flags. All other bits are reserved and must be 0.1339///1340#define EFI_ACPI_6_0_GTDT_GT_BLOCK_COMMON_FLAG_SECURE_TIMER BIT01341#define EFI_ACPI_6_0_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY BIT113421343///1344/// SBSA Generic Watchdog Structure1345///1346typedef struct {1347UINT8 Type;1348UINT16 Length;1349UINT8 Reserved;1350UINT64 RefreshFramePhysicalAddress;1351UINT64 WatchdogControlFramePhysicalAddress;1352UINT32 WatchdogTimerGSIV;1353UINT32 WatchdogTimerFlags;1354} EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE;13551356///1357/// SBSA Generic Watchdog Timer Flags. All other bits are reserved and must be 0.1358///1359#define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE BIT01360#define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY BIT11361#define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_SECURE_TIMER BIT213621363//1364// NVDIMM Firmware Interface Table definition.1365//1366typedef struct {1367EFI_ACPI_DESCRIPTION_HEADER Header;1368UINT32 Reserved;1369} EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE;13701371//1372// NFIT Version (as defined in ACPI 6.0 spec.)1373//1374#define EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE_REVISION 0x113751376//1377// Definition for NFIT Table Structure Types1378//1379#define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE 01380#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_TO_SYSTEM_ADDRESS_RANGE_MAP_STRUCTURE_TYPE 11381#define EFI_ACPI_6_0_NFIT_INTERLEAVE_STRUCTURE_TYPE 21382#define EFI_ACPI_6_0_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE_TYPE 31383#define EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE_TYPE 41384#define EFI_ACPI_6_0_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE_TYPE 51385#define EFI_ACPI_6_0_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE_TYPE 613861387//1388// Definition for NFIT Structure Header1389//1390typedef struct {1391UINT16 Type;1392UINT16 Length;1393} EFI_ACPI_6_0_NFIT_STRUCTURE_HEADER;13941395//1396// Definition for System Physical Address Range Structure1397//1398#define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_CONTROL_REGION_FOR_MANAGEMENT BIT01399#define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_PROXIMITY_DOMAIN_VALID BIT11400#define EFI_ACPI_6_0_NFIT_GUID_VOLATILE_MEMORY_REGION { 0x7305944F, 0xFDDA, 0x44E3, { 0xB1, 0x6C, 0x3F, 0x22, 0xD2, 0x52, 0xE5, 0xD0 }}1401#define EFI_ACPI_6_0_NFIT_GUID_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_REGION { 0x66F0D379, 0xB4F3, 0x4074, { 0xAC, 0x43, 0x0D, 0x33, 0x18, 0xB7, 0x8C, 0xDB }}1402#define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_CONTROL_REGION { 0x92F701F6, 0x13B4, 0x405D, { 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C }}1403#define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_BLOCK_DATA_WINDOW_REGION { 0x91AF0530, 0x5D86, 0x470E, { 0xA6, 0xB0, 0x0A, 0x2D, 0xB9, 0x40, 0x82, 0x49 }}1404#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE { 0x77AB535A, 0x45FC, 0x624B, { 0x55, 0x60, 0xF7, 0xB2, 0x81, 0xD1, 0xF9, 0x6E }}1405#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE { 0x3D5ABD30, 0x4175, 0x87CE, { 0x6D, 0x64, 0xD2, 0xAD, 0xE5, 0x23, 0xC4, 0xBB }}1406#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT { 0x5CEA02C9, 0x4D07, 0x69D3, { 0x26, 0x9F ,0x44, 0x96, 0xFB, 0xE0, 0x96, 0xF9 }}1407#define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT { 0x08018188, 0x42CD, 0xBB48, { 0x10, 0x0F, 0x53, 0x87, 0xD5, 0x3D, 0xED, 0x3D }}1408typedef struct {1409UINT16 Type;1410UINT16 Length;1411UINT16 SPARangeStructureIndex;1412UINT16 Flags;1413UINT32 Reserved_8;1414UINT32 ProximityDomain;1415GUID AddressRangeTypeGUID;1416UINT64 SystemPhysicalAddressRangeBase;1417UINT64 SystemPhysicalAddressRangeLength;1418UINT64 AddressRangeMemoryMappingAttribute;1419} EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE;14201421//1422// Definition for Memory Device to System Physical Address Range Mapping Structure1423//1424typedef struct {1425UINT32 DIMMNumber : 4;1426UINT32 MemoryChannelNumber : 4;1427UINT32 MemoryControllerID : 4;1428UINT32 SocketID : 4;1429UINT32 NodeControllerID : 12;1430UINT32 Reserved_28 : 4;1431} EFI_ACPI_6_0_NFIT_DEVICE_HANDLE;14321433#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_PREVIOUS_SAVE_FAIL BIT01434#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_LAST_RESTORE_FAIL BIT11435#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_PLATFORM_FLUSH_FAIL BIT21436#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_NOT_ARMED_PRIOR_TO_OSPM_HAND_OFF BIT31437#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_SMART_HEALTH_EVENTS_PRIOR_OSPM_HAND_OFF BIT41438#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_FIRMWARE_ENABLED_TO_NOTIFY_OSPM_ON_SMART_HEALTH_EVENTS BIT51439typedef struct {1440UINT16 Type;1441UINT16 Length;1442EFI_ACPI_6_0_NFIT_DEVICE_HANDLE NFITDeviceHandle;1443UINT16 MemoryDevicePhysicalID;1444UINT16 MemoryDeviceRegionID;1445UINT16 SPARangeStructureIndex;1446UINT16 NVDIMMControlRegionStructureIndex;1447UINT64 MemoryDeviceRegionSize;1448UINT64 RegionOffset;1449UINT64 MemoryDevicePhysicalAddressRegionBase;1450UINT16 InterleaveStructureIndex;1451UINT16 InterleaveWays;1452UINT16 MemoryDeviceStateFlags;1453UINT16 Reserved_46;1454} EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_TO_SYSTEM_ADDRESS_RANGE_MAP_STRUCTURE;14551456//1457// Definition for Interleave Structure1458//1459typedef struct {1460UINT16 Type;1461UINT16 Length;1462UINT16 InterleaveStructureIndex;1463UINT16 Reserved_6;1464UINT32 NumberOfLines;1465UINT32 LineSize;1466// UINT32 LineOffset[NumberOfLines];1467} EFI_ACPI_6_0_NFIT_INTERLEAVE_STRUCTURE;14681469//1470// Definition for SMBIOS Management Information Structure1471//1472typedef struct {1473UINT16 Type;1474UINT16 Length;1475UINT32 Reserved_4;1476// UINT8 Data[];1477} EFI_ACPI_6_0_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE;14781479//1480// Definition for NVDIMM Control Region Structure1481//1482#define EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_FLAGS_BLOCK_DATA_WINDOWS_BUFFERED BIT01483typedef struct {1484UINT16 Type;1485UINT16 Length;1486UINT16 NVDIMMControlRegionStructureIndex;1487UINT16 VendorID;1488UINT16 DeviceID;1489UINT16 RevisionID;1490UINT16 SubsystemVendorID;1491UINT16 SubsystemDeviceID;1492UINT16 SubsystemRevisionID;1493UINT8 Reserved_18[6];1494UINT32 SerialNumber;1495UINT16 RegionFormatInterfaceCode;1496UINT16 NumberOfBlockControlWindows;1497UINT64 SizeOfBlockControlWindow;1498UINT64 CommandRegisterOffsetInBlockControlWindow;1499UINT64 SizeOfCommandRegisterInBlockControlWindows;1500UINT64 StatusRegisterOffsetInBlockControlWindow;1501UINT64 SizeOfStatusRegisterInBlockControlWindows;1502UINT16 NVDIMMControlRegionFlag;1503UINT8 Reserved_74[6];1504} EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE;15051506//1507// Definition for NVDIMM Block Data Window Region Structure1508//1509typedef struct {1510UINT16 Type;1511UINT16 Length;1512UINT16 NVDIMMControlRegionStructureIndex;1513UINT16 NumberOfBlockDataWindows;1514UINT64 BlockDataWindowStartOffset;1515UINT64 SizeOfBlockDataWindow;1516UINT64 BlockAccessibleMemoryCapacity;1517UINT64 BeginningAddressOfFirstBlockInBlockAccessibleMemory;1518} EFI_ACPI_6_0_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE;15191520//1521// Definition for Flush Hint Address Structure1522//1523typedef struct {1524UINT16 Type;1525UINT16 Length;1526EFI_ACPI_6_0_NFIT_DEVICE_HANDLE NFITDeviceHandle;1527UINT16 NumberOfFlushHintAddresses;1528UINT8 Reserved_10[6];1529// UINT64 FlushHintAddress[NumberOfFlushHintAddresses];1530} EFI_ACPI_6_0_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE;15311532///1533/// Boot Error Record Table (BERT)1534///1535typedef struct {1536EFI_ACPI_DESCRIPTION_HEADER Header;1537UINT32 BootErrorRegionLength;1538UINT64 BootErrorRegion;1539} EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_HEADER;15401541///1542/// BERT Version (as defined in ACPI 6.0 spec.)1543///1544#define EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_REVISION 0x0115451546///1547/// Boot Error Region Block Status Definition1548///1549typedef struct {1550UINT32 UncorrectableErrorValid : 1;1551UINT32 CorrectableErrorValid : 1;1552UINT32 MultipleUncorrectableErrors : 1;1553UINT32 MultipleCorrectableErrors : 1;1554UINT32 ErrorDataEntryCount : 10;1555UINT32 Reserved : 18;1556} EFI_ACPI_6_0_ERROR_BLOCK_STATUS;15571558///1559/// Boot Error Region Definition1560///1561typedef struct {1562EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus;1563UINT32 RawDataOffset;1564UINT32 RawDataLength;1565UINT32 DataLength;1566UINT32 ErrorSeverity;1567} EFI_ACPI_6_0_BOOT_ERROR_REGION_STRUCTURE;15681569//1570// Boot Error Severity types1571//1572#define EFI_ACPI_6_0_ERROR_SEVERITY_RECOVERABLE 0x001573#define EFI_ACPI_6_0_ERROR_SEVERITY_FATAL 0x011574#define EFI_ACPI_6_0_ERROR_SEVERITY_CORRECTED 0x021575#define EFI_ACPI_6_0_ERROR_SEVERITY_NONE 0x031576//1577// The term 'Correctable' is no longer being used as an error severity of the1578// reported error since ACPI Specification Version 5.1 Errata B.1579// The below macro is considered as deprecated and should no longer be used.1580//1581#define EFI_ACPI_6_0_ERROR_SEVERITY_CORRECTABLE 0x0015821583///1584/// Generic Error Data Entry Definition1585///1586typedef struct {1587UINT8 SectionType[16];1588UINT32 ErrorSeverity;1589UINT16 Revision;1590UINT8 ValidationBits;1591UINT8 Flags;1592UINT32 ErrorDataLength;1593UINT8 FruId[16];1594UINT8 FruText[20];1595} EFI_ACPI_6_0_GENERIC_ERROR_DATA_ENTRY_STRUCTURE;15961597///1598/// Generic Error Data Entry Version (as defined in ACPI 6.0 spec.)1599///1600#define EFI_ACPI_6_0_GENERIC_ERROR_DATA_ENTRY_REVISION 0x020116011602///1603/// HEST - Hardware Error Source Table1604///1605typedef struct {1606EFI_ACPI_DESCRIPTION_HEADER Header;1607UINT32 ErrorSourceCount;1608} EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_HEADER;16091610///1611/// HEST Version (as defined in ACPI 6.0 spec.)1612///1613#define EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x0116141615//1616// Error Source structure types.1617//1618#define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x001619#define EFI_ACPI_6_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x011620#define EFI_ACPI_6_0_IA32_ARCHITECTURE_NMI_ERROR 0x021621#define EFI_ACPI_6_0_PCI_EXPRESS_ROOT_PORT_AER 0x061622#define EFI_ACPI_6_0_PCI_EXPRESS_DEVICE_AER 0x071623#define EFI_ACPI_6_0_PCI_EXPRESS_BRIDGE_AER 0x081624#define EFI_ACPI_6_0_GENERIC_HARDWARE_ERROR 0x0916251626//1627// Error Source structure flags.1628//1629#define EFI_ACPI_6_0_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0)1630#define EFI_ACPI_6_0_ERROR_SOURCE_FLAG_GLOBAL (1 << 1)16311632///1633/// IA-32 Architecture Machine Check Exception Structure Definition1634///1635typedef struct {1636UINT16 Type;1637UINT16 SourceId;1638UINT8 Reserved0[2];1639UINT8 Flags;1640UINT8 Enabled;1641UINT32 NumberOfRecordsToPreAllocate;1642UINT32 MaxSectionsPerRecord;1643UINT64 GlobalCapabilityInitData;1644UINT64 GlobalControlInitData;1645UINT8 NumberOfHardwareBanks;1646UINT8 Reserved1[7];1647} EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION_STRUCTURE;16481649///1650/// IA-32 Architecture Machine Check Bank Structure Definition1651///1652typedef struct {1653UINT8 BankNumber;1654UINT8 ClearStatusOnInitialization;1655UINT8 StatusDataFormat;1656UINT8 Reserved0;1657UINT32 ControlRegisterMsrAddress;1658UINT64 ControlInitData;1659UINT32 StatusRegisterMsrAddress;1660UINT32 AddressRegisterMsrAddress;1661UINT32 MiscRegisterMsrAddress;1662} EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_BANK_STRUCTURE;16631664///1665/// IA-32 Architecture Machine Check Bank Structure MCA data format1666///1667#define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x001668#define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x011669#define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x0216701671//1672// Hardware Error Notification types. All other values are reserved1673//1674#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_POLLED 0x001675#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x011676#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x021677#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_SCI 0x031678#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_NMI 0x041679#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CMCI 0x051680#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_MCE 0x061681#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_GPIO_SIGNAL 0x0716821683///1684/// Hardware Error Notification Configuration Write Enable Structure Definition1685///1686typedef struct {1687UINT16 Type : 1;1688UINT16 PollInterval : 1;1689UINT16 SwitchToPollingThresholdValue : 1;1690UINT16 SwitchToPollingThresholdWindow : 1;1691UINT16 ErrorThresholdValue : 1;1692UINT16 ErrorThresholdWindow : 1;1693UINT16 Reserved : 10;1694} EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE;16951696///1697/// Hardware Error Notification Structure Definition1698///1699typedef struct {1700UINT8 Type;1701UINT8 Length;1702EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable;1703UINT32 PollInterval;1704UINT32 Vector;1705UINT32 SwitchToPollingThresholdValue;1706UINT32 SwitchToPollingThresholdWindow;1707UINT32 ErrorThresholdValue;1708UINT32 ErrorThresholdWindow;1709} EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE;17101711///1712/// IA-32 Architecture Corrected Machine Check Structure Definition1713///1714typedef struct {1715UINT16 Type;1716UINT16 SourceId;1717UINT8 Reserved0[2];1718UINT8 Flags;1719UINT8 Enabled;1720UINT32 NumberOfRecordsToPreAllocate;1721UINT32 MaxSectionsPerRecord;1722EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;1723UINT8 NumberOfHardwareBanks;1724UINT8 Reserved1[3];1725} EFI_ACPI_6_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK_STRUCTURE;17261727///1728/// IA-32 Architecture NMI Error Structure Definition1729///1730typedef struct {1731UINT16 Type;1732UINT16 SourceId;1733UINT8 Reserved0[2];1734UINT32 NumberOfRecordsToPreAllocate;1735UINT32 MaxSectionsPerRecord;1736UINT32 MaxRawDataLength;1737} EFI_ACPI_6_0_IA32_ARCHITECTURE_NMI_ERROR_STRUCTURE;17381739///1740/// PCI Express Root Port AER Structure Definition1741///1742typedef struct {1743UINT16 Type;1744UINT16 SourceId;1745UINT8 Reserved0[2];1746UINT8 Flags;1747UINT8 Enabled;1748UINT32 NumberOfRecordsToPreAllocate;1749UINT32 MaxSectionsPerRecord;1750UINT32 Bus;1751UINT16 Device;1752UINT16 Function;1753UINT16 DeviceControl;1754UINT8 Reserved1[2];1755UINT32 UncorrectableErrorMask;1756UINT32 UncorrectableErrorSeverity;1757UINT32 CorrectableErrorMask;1758UINT32 AdvancedErrorCapabilitiesAndControl;1759UINT32 RootErrorCommand;1760} EFI_ACPI_6_0_PCI_EXPRESS_ROOT_PORT_AER_STRUCTURE;17611762///1763/// PCI Express Device AER Structure Definition1764///1765typedef struct {1766UINT16 Type;1767UINT16 SourceId;1768UINT8 Reserved0[2];1769UINT8 Flags;1770UINT8 Enabled;1771UINT32 NumberOfRecordsToPreAllocate;1772UINT32 MaxSectionsPerRecord;1773UINT32 Bus;1774UINT16 Device;1775UINT16 Function;1776UINT16 DeviceControl;1777UINT8 Reserved1[2];1778UINT32 UncorrectableErrorMask;1779UINT32 UncorrectableErrorSeverity;1780UINT32 CorrectableErrorMask;1781UINT32 AdvancedErrorCapabilitiesAndControl;1782} EFI_ACPI_6_0_PCI_EXPRESS_DEVICE_AER_STRUCTURE;17831784///1785/// PCI Express Bridge AER Structure Definition1786///1787typedef struct {1788UINT16 Type;1789UINT16 SourceId;1790UINT8 Reserved0[2];1791UINT8 Flags;1792UINT8 Enabled;1793UINT32 NumberOfRecordsToPreAllocate;1794UINT32 MaxSectionsPerRecord;1795UINT32 Bus;1796UINT16 Device;1797UINT16 Function;1798UINT16 DeviceControl;1799UINT8 Reserved1[2];1800UINT32 UncorrectableErrorMask;1801UINT32 UncorrectableErrorSeverity;1802UINT32 CorrectableErrorMask;1803UINT32 AdvancedErrorCapabilitiesAndControl;1804UINT32 SecondaryUncorrectableErrorMask;1805UINT32 SecondaryUncorrectableErrorSeverity;1806UINT32 SecondaryAdvancedErrorCapabilitiesAndControl;1807} EFI_ACPI_6_0_PCI_EXPRESS_BRIDGE_AER_STRUCTURE;18081809///1810/// Generic Hardware Error Source Structure Definition1811///1812typedef struct {1813UINT16 Type;1814UINT16 SourceId;1815UINT16 RelatedSourceId;1816UINT8 Flags;1817UINT8 Enabled;1818UINT32 NumberOfRecordsToPreAllocate;1819UINT32 MaxSectionsPerRecord;1820UINT32 MaxRawDataLength;1821EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;1822EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure;1823UINT32 ErrorStatusBlockLength;1824} EFI_ACPI_6_0_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE;18251826///1827/// Generic Error Status Definition1828///1829typedef struct {1830EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus;1831UINT32 RawDataOffset;1832UINT32 RawDataLength;1833UINT32 DataLength;1834UINT32 ErrorSeverity;1835} EFI_ACPI_6_0_GENERIC_ERROR_STATUS_STRUCTURE;18361837///1838/// ERST - Error Record Serialization Table1839///1840typedef struct {1841EFI_ACPI_DESCRIPTION_HEADER Header;1842UINT32 SerializationHeaderSize;1843UINT8 Reserved0[4];1844UINT32 InstructionEntryCount;1845} EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_HEADER;18461847///1848/// ERST Version (as defined in ACPI 6.0 spec.)1849///1850#define EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x0118511852///1853/// ERST Serialization Actions1854///1855#define EFI_ACPI_6_0_ERST_BEGIN_WRITE_OPERATION 0x001856#define EFI_ACPI_6_0_ERST_BEGIN_READ_OPERATION 0x011857#define EFI_ACPI_6_0_ERST_BEGIN_CLEAR_OPERATION 0x021858#define EFI_ACPI_6_0_ERST_END_OPERATION 0x031859#define EFI_ACPI_6_0_ERST_SET_RECORD_OFFSET 0x041860#define EFI_ACPI_6_0_ERST_EXECUTE_OPERATION 0x051861#define EFI_ACPI_6_0_ERST_CHECK_BUSY_STATUS 0x061862#define EFI_ACPI_6_0_ERST_GET_COMMAND_STATUS 0x071863#define EFI_ACPI_6_0_ERST_GET_RECORD_IDENTIFIER 0x081864#define EFI_ACPI_6_0_ERST_SET_RECORD_IDENTIFIER 0x091865#define EFI_ACPI_6_0_ERST_GET_RECORD_COUNT 0x0A1866#define EFI_ACPI_6_0_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B1867#define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D1868#define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E1869#define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F18701871///1872/// ERST Action Command Status1873///1874#define EFI_ACPI_6_0_ERST_STATUS_SUCCESS 0x001875#define EFI_ACPI_6_0_ERST_STATUS_NOT_ENOUGH_SPACE 0x011876#define EFI_ACPI_6_0_ERST_STATUS_HARDWARE_NOT_AVAILABLE 0x021877#define EFI_ACPI_6_0_ERST_STATUS_FAILED 0x031878#define EFI_ACPI_6_0_ERST_STATUS_RECORD_STORE_EMPTY 0x041879#define EFI_ACPI_6_0_ERST_STATUS_RECORD_NOT_FOUND 0x0518801881///1882/// ERST Serialization Instructions1883///1884#define EFI_ACPI_6_0_ERST_READ_REGISTER 0x001885#define EFI_ACPI_6_0_ERST_READ_REGISTER_VALUE 0x011886#define EFI_ACPI_6_0_ERST_WRITE_REGISTER 0x021887#define EFI_ACPI_6_0_ERST_WRITE_REGISTER_VALUE 0x031888#define EFI_ACPI_6_0_ERST_NOOP 0x041889#define EFI_ACPI_6_0_ERST_LOAD_VAR1 0x051890#define EFI_ACPI_6_0_ERST_LOAD_VAR2 0x061891#define EFI_ACPI_6_0_ERST_STORE_VAR1 0x071892#define EFI_ACPI_6_0_ERST_ADD 0x081893#define EFI_ACPI_6_0_ERST_SUBTRACT 0x091894#define EFI_ACPI_6_0_ERST_ADD_VALUE 0x0A1895#define EFI_ACPI_6_0_ERST_SUBTRACT_VALUE 0x0B1896#define EFI_ACPI_6_0_ERST_STALL 0x0C1897#define EFI_ACPI_6_0_ERST_STALL_WHILE_TRUE 0x0D1898#define EFI_ACPI_6_0_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E1899#define EFI_ACPI_6_0_ERST_GOTO 0x0F1900#define EFI_ACPI_6_0_ERST_SET_SRC_ADDRESS_BASE 0x101901#define EFI_ACPI_6_0_ERST_SET_DST_ADDRESS_BASE 0x111902#define EFI_ACPI_6_0_ERST_MOVE_DATA 0x1219031904///1905/// ERST Instruction Flags1906///1907#define EFI_ACPI_6_0_ERST_PRESERVE_REGISTER 0x0119081909///1910/// ERST Serialization Instruction Entry1911///1912typedef struct {1913UINT8 SerializationAction;1914UINT8 Instruction;1915UINT8 Flags;1916UINT8 Reserved0;1917EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;1918UINT64 Value;1919UINT64 Mask;1920} EFI_ACPI_6_0_ERST_SERIALIZATION_INSTRUCTION_ENTRY;19211922///1923/// EINJ - Error Injection Table1924///1925typedef struct {1926EFI_ACPI_DESCRIPTION_HEADER Header;1927UINT32 InjectionHeaderSize;1928UINT8 InjectionFlags;1929UINT8 Reserved0[3];1930UINT32 InjectionEntryCount;1931} EFI_ACPI_6_0_ERROR_INJECTION_TABLE_HEADER;19321933///1934/// EINJ Version (as defined in ACPI 6.0 spec.)1935///1936#define EFI_ACPI_6_0_ERROR_INJECTION_TABLE_REVISION 0x0119371938///1939/// EINJ Error Injection Actions1940///1941#define EFI_ACPI_6_0_EINJ_BEGIN_INJECTION_OPERATION 0x001942#define EFI_ACPI_6_0_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x011943#define EFI_ACPI_6_0_EINJ_SET_ERROR_TYPE 0x021944#define EFI_ACPI_6_0_EINJ_GET_ERROR_TYPE 0x031945#define EFI_ACPI_6_0_EINJ_END_OPERATION 0x041946#define EFI_ACPI_6_0_EINJ_EXECUTE_OPERATION 0x051947#define EFI_ACPI_6_0_EINJ_CHECK_BUSY_STATUS 0x061948#define EFI_ACPI_6_0_EINJ_GET_COMMAND_STATUS 0x071949#define EFI_ACPI_6_0_EINJ_SET_ERROR_TYPE_WITH_ADDRESS 0x081950#define EFI_ACPI_6_0_EINJ_TRIGGER_ERROR 0xFF19511952///1953/// EINJ Action Command Status1954///1955#define EFI_ACPI_6_0_EINJ_STATUS_SUCCESS 0x001956#define EFI_ACPI_6_0_EINJ_STATUS_UNKNOWN_FAILURE 0x011957#define EFI_ACPI_6_0_EINJ_STATUS_INVALID_ACCESS 0x0219581959///1960/// EINJ Error Type Definition1961///1962#define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0)1963#define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1)1964#define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2)1965#define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3)1966#define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4)1967#define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5)1968#define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6)1969#define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7)1970#define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8)1971#define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9)1972#define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10)1973#define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11)19741975///1976/// EINJ Injection Instructions1977///1978#define EFI_ACPI_6_0_EINJ_READ_REGISTER 0x001979#define EFI_ACPI_6_0_EINJ_READ_REGISTER_VALUE 0x011980#define EFI_ACPI_6_0_EINJ_WRITE_REGISTER 0x021981#define EFI_ACPI_6_0_EINJ_WRITE_REGISTER_VALUE 0x031982#define EFI_ACPI_6_0_EINJ_NOOP 0x0419831984///1985/// EINJ Instruction Flags1986///1987#define EFI_ACPI_6_0_EINJ_PRESERVE_REGISTER 0x0119881989///1990/// EINJ Injection Instruction Entry1991///1992typedef struct {1993UINT8 InjectionAction;1994UINT8 Instruction;1995UINT8 Flags;1996UINT8 Reserved0;1997EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;1998UINT64 Value;1999UINT64 Mask;2000} EFI_ACPI_6_0_EINJ_INJECTION_INSTRUCTION_ENTRY;20012002///2003/// EINJ Trigger Action Table2004///2005typedef struct {2006UINT32 HeaderSize;2007UINT32 Revision;2008UINT32 TableSize;2009UINT32 EntryCount;2010} EFI_ACPI_6_0_EINJ_TRIGGER_ACTION_TABLE;20112012///2013/// Platform Communications Channel Table (PCCT)2014///2015typedef struct {2016EFI_ACPI_DESCRIPTION_HEADER Header;2017UINT32 Flags;2018UINT64 Reserved;2019} EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL_TABLE_HEADER;20202021///2022/// PCCT Version (as defined in ACPI 6.0 spec.)2023///2024#define EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL_TABLE_REVISION 0x0120252026///2027/// PCCT Global Flags2028///2029#define EFI_ACPI_6_0_PCCT_FLAGS_SCI_DOORBELL BIT020302031//2032// PCCT Subspace type2033//2034#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_GENERIC 0x002035#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS 0x012036#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS 0x0220372038///2039/// PCC Subspace Structure Header2040///2041typedef struct {2042UINT8 Type;2043UINT8 Length;2044} EFI_ACPI_6_0_PCCT_SUBSPACE_HEADER;20452046///2047/// Generic Communications Subspace Structure2048///2049typedef struct {2050UINT8 Type;2051UINT8 Length;2052UINT8 Reserved[6];2053UINT64 BaseAddress;2054UINT64 AddressLength;2055EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister;2056UINT64 DoorbellPreserve;2057UINT64 DoorbellWrite;2058UINT32 NominalLatency;2059UINT32 MaximumPeriodicAccessRate;2060UINT16 MinimumRequestTurnaroundTime;2061} EFI_ACPI_6_0_PCCT_SUBSPACE_GENERIC;20622063///2064/// Generic Communications Channel Shared Memory Region2065///20662067typedef struct {2068UINT8 Command;2069UINT8 Reserved : 7;2070UINT8 GenerateSci : 1;2071} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND;20722073typedef struct {2074UINT8 CommandComplete : 1;2075UINT8 SciDoorbell : 1;2076UINT8 Error : 1;2077UINT8 PlatformNotification : 1;2078UINT8 Reserved : 4;2079UINT8 Reserved1;2080} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS;20812082typedef struct {2083UINT32 Signature;2084EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND Command;2085EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS Status;2086} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER;20872088#define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_POLARITY BIT02089#define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_MODE BIT120902091///2092/// Type 1 HW-Reduced Communications Subspace Structure2093///2094typedef struct {2095UINT8 Type;2096UINT8 Length;2097UINT32 DoorbellInterrupt;2098UINT8 DoorbellInterruptFlags;2099UINT8 Reserved;2100UINT64 BaseAddress;2101UINT64 AddressLength;2102EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister;2103UINT64 DoorbellPreserve;2104UINT64 DoorbellWrite;2105UINT32 NominalLatency;2106UINT32 MaximumPeriodicAccessRate;2107UINT16 MinimumRequestTurnaroundTime;2108} EFI_ACPI_6_0_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS;21092110///2111/// Type 2 HW-Reduced Communications Subspace Structure2112///2113typedef struct {2114UINT8 Type;2115UINT8 Length;2116UINT32 DoorbellInterrupt;2117UINT8 DoorbellInterruptFlags;2118UINT8 Reserved;2119UINT64 BaseAddress;2120UINT64 AddressLength;2121EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister;2122UINT64 DoorbellPreserve;2123UINT64 DoorbellWrite;2124UINT32 NominalLatency;2125UINT32 MaximumPeriodicAccessRate;2126UINT16 MinimumRequestTurnaroundTime;2127EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellAckRegister;2128UINT64 DoorbellAckPreserve;2129UINT64 DoorbellAckWrite;2130} EFI_ACPI_6_0_PCCT_SUBSPACE_2_HW_REDUCED_COMMUNICATIONS;21312132//2133// Known table signatures2134//21352136///2137/// "RSD PTR " Root System Description Pointer2138///2139#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')21402141///2142/// "APIC" Multiple APIC Description Table2143///2144#define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')21452146///2147/// "BERT" Boot Error Record Table2148///2149#define EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T')21502151///2152/// "BGRT" Boot Graphics Resource Table2153///2154#define EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('B', 'G', 'R', 'T')21552156///2157/// "CPEP" Corrected Platform Error Polling Table2158///2159#define EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')21602161///2162/// "DSDT" Differentiated System Description Table2163///2164#define EFI_ACPI_6_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')21652166///2167/// "ECDT" Embedded Controller Boot Resources Table2168///2169#define EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')21702171///2172/// "EINJ" Error Injection Table2173///2174#define EFI_ACPI_6_0_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J')21752176///2177/// "ERST" Error Record Serialization Table2178///2179#define EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T')21802181///2182/// "FACP" Fixed ACPI Description Table2183///2184#define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')21852186///2187/// "FACS" Firmware ACPI Control Structure2188///2189#define EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')21902191///2192/// "FPDT" Firmware Performance Data Table2193///2194#define EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_DATA_TABLE_SIGNATURE SIGNATURE_32('F', 'P', 'D', 'T')21952196///2197/// "GTDT" Generic Timer Description Table2198///2199#define EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('G', 'T', 'D', 'T')22002201///2202/// "HEST" Hardware Error Source Table2203///2204#define EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T')22052206///2207/// "MPST" Memory Power State Table2208///2209#define EFI_ACPI_6_0_MEMORY_POWER_STATE_TABLE_SIGNATURE SIGNATURE_32('M', 'P', 'S', 'T')22102211///2212/// "MSCT" Maximum System Characteristics Table2213///2214#define EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T')22152216///2217/// "NFIT" NVDIMM Firmware Interface Table2218///2219#define EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('N', 'F', 'I', 'T')22202221///2222/// "PMTT" Platform Memory Topology Table2223///2224#define EFI_ACPI_6_0_PLATFORM_MEMORY_TOPOLOGY_TABLE_SIGNATURE SIGNATURE_32('P', 'M', 'T', 'T')22252226///2227/// "PSDT" Persistent System Description Table2228///2229#define EFI_ACPI_6_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')22302231///2232/// "RASF" ACPI RAS Feature Table2233///2234#define EFI_ACPI_6_0_ACPI_RAS_FEATURE_TABLE_SIGNATURE SIGNATURE_32('R', 'A', 'S', 'F')22352236///2237/// "RSDT" Root System Description Table2238///2239#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')22402241///2242/// "SBST" Smart Battery Specification Table2243///2244#define EFI_ACPI_6_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')22452246///2247/// "SLIT" System Locality Information Table2248///2249#define EFI_ACPI_6_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')22502251///2252/// "SRAT" System Resource Affinity Table2253///2254#define EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')22552256///2257/// "SSDT" Secondary System Description Table2258///2259#define EFI_ACPI_6_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')22602261///2262/// "XSDT" Extended System Description Table2263///2264#define EFI_ACPI_6_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')22652266///2267/// "BOOT" MS Simple Boot Spec2268///2269#define EFI_ACPI_6_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')22702271///2272/// "CSRT" MS Core System Resource Table2273///2274#define EFI_ACPI_6_0_CORE_SYSTEM_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('C', 'S', 'R', 'T')22752276///2277/// "DBG2" MS Debug Port 2 Spec2278///2279#define EFI_ACPI_6_0_DEBUG_PORT_2_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', '2')22802281///2282/// "DBGP" MS Debug Port Spec2283///2284#define EFI_ACPI_6_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')22852286///2287/// "DMAR" DMA Remapping Table2288///2289#define EFI_ACPI_6_0_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R')22902291///2292/// "DRTM" Dynamic Root of Trust for Measurement Table2293///2294#define EFI_ACPI_6_0_DYNAMIC_ROOT_OF_TRUST_FOR_MEASUREMENT_TABLE_SIGNATURE SIGNATURE_32('D', 'R', 'T', 'M')22952296///2297/// "ETDT" Event Timer Description Table2298///2299#define EFI_ACPI_6_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')23002301///2302/// "HPET" IA-PC High Precision Event Timer Table2303///2304#define EFI_ACPI_6_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')23052306///2307/// "iBFT" iSCSI Boot Firmware Table2308///2309#define EFI_ACPI_6_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')23102311///2312/// "IORT" I/O Remapping Table2313///2314#define EFI_ACPI_6_0_IO_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('I', 'O', 'R', 'T')23152316///2317/// "IVRS" I/O Virtualization Reporting Structure2318///2319#define EFI_ACPI_6_0_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S')23202321///2322/// "LPIT" Low Power Idle Table2323///2324#define EFI_ACPI_6_0_LOW_POWER_IDLE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('L', 'P', 'I', 'T')23252326///2327/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table2328///2329#define EFI_ACPI_6_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')23302331///2332/// "MCHI" Management Controller Host Interface Table2333///2334#define EFI_ACPI_6_0_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I')23352336///2337/// "MSDM" MS Data Management Table2338///2339#define EFI_ACPI_6_0_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M')23402341///2342/// "PCCT" Platform Communications Channel Table2343///2344#define EFI_ACPI_6_0_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE SIGNATURE_32('P', 'C', 'C', 'T')23452346///2347/// "SLIC" MS Software Licensing Table Specification2348///2349#define EFI_ACPI_6_0_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C')23502351///2352/// "SPCR" Serial Port Console Redirection Table2353///2354#define EFI_ACPI_6_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')23552356///2357/// "SPMI" Server Platform Management Interface Table2358///2359#define EFI_ACPI_6_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')23602361///2362/// "STAO" _STA Override Table2363///2364#define EFI_ACPI_6_0_STA_OVERRIDE_TABLE_SIGNATURE SIGNATURE_32('S', 'T', 'A', 'O')23652366///2367/// "TCPA" Trusted Computing Platform Alliance Capabilities Table2368///2369#define EFI_ACPI_6_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')23702371///2372/// "TPM2" Trusted Computing Platform 1 Table2373///2374#define EFI_ACPI_6_0_TRUSTED_COMPUTING_PLATFORM_2_TABLE_SIGNATURE SIGNATURE_32('T', 'P', 'M', '2')23752376///2377/// "UEFI" UEFI ACPI Data Table2378///2379#define EFI_ACPI_6_0_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I')23802381///2382/// "WAET" Windows ACPI Emulated Devices Table2383///2384#define EFI_ACPI_6_0_WINDOWS_ACPI_EMULATED_DEVICES_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T')23852386///2387/// "WDAT" Watchdog Action Table2388///2389#define EFI_ACPI_6_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')23902391///2392/// "WDRT" Watchdog Resource Table2393///2394#define EFI_ACPI_6_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')23952396///2397/// "WPBT" MS Platform Binary Table2398///2399#define EFI_ACPI_6_0_PLATFORM_BINARY_TABLE_SIGNATURE SIGNATURE_32('W', 'P', 'B', 'T')24002401///2402/// "XENV" Xen Project Table2403///2404#define EFI_ACPI_6_0_XEN_PROJECT_TABLE_SIGNATURE SIGNATURE_32('X', 'E', 'N', 'V')24052406#pragma pack()24072408#endif240924102411