18508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/** @file 28508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen ACPI 6.0 definitions from the ACPI Specification Revision 6.0 April, 2015. 38508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 48508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> 58a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR> 68508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen This program and the accompanying materials 78508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen are licensed and made available under the terms and conditions of the BSD License 88508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen which accompanies this distribution. The full text of the license may be found at 98508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen http://opensource.org/licenses/bsd-license.php 108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen**/ 148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#ifndef _ACPI_6_0_H_ 168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define _ACPI_6_0_H_ 178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#include <IndustryStandard/Acpi51.h> 198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Ensure proper structure formats 228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#pragma pack(1) 248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI 6.0 Generic Address Space definition 278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 AddressSpaceId; 308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 RegisterBitWidth; 318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 RegisterBitOffset; 328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 AccessSize; 338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Address; 348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE; 358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Generic Address Space Address IDs 388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SYSTEM_MEMORY 0 408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SYSTEM_IO 1 418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCI_CONFIGURATION_SPACE 2 428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EMBEDDED_CONTROLLER 3 438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SMBUS 4 448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL 0x0A 458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FUNCTIONAL_FIXED_HARDWARE 0x7F 468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Generic Address Space Access Sizes 498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_UNDEFINED 0 518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BYTE 1 528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_WORD 2 538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DWORD 3 548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_QWORD 4 558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// ACPI 6.0 table structures 588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Root System Description Pointer Structure 628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Signature; 658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Checksum; 668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 OemId[6]; 678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Revision; 688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 RsdtAddress; 698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Length; 708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 XsdtAddress; 718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ExtendedChecksum; 728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[3]; 738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER; 748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// RSD_PTR Revision (as defined in ACPI 6.0 spec.) 778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 6.0) says current value is 2 798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Common table header, this prefaces all ACPI tables, including FACS, but 828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// excluding the RSD PTR structure 838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Signature; 868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Length; 878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_COMMON_HEADER; 888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Root System Description Table 918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// No definition needed as it is a common description table header, the same with 928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers. 938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// RSDT Revision (as defined in ACPI 6.0 spec.) 978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 1008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 1018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Extended System Description Table 1028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// No definition needed as it is a common description table header, the same with 1038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers. 1048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 1058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 1068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 1078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// XSDT Revision (as defined in ACPI 6.0 spec.) 1088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 1098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01 1108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 1118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 1128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Fixed ACPI Description Table Structure (FADT) 1138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 1148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 1158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 1168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 FirmwareCtrl; 1178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Dsdt; 1188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0; 1198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PreferredPmProfile; 1208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SciInt; 1218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SmiCmd; 1228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 AcpiEnable; 1238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 AcpiDisable; 1248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 S4BiosReq; 1258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PstateCnt; 1268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Pm1aEvtBlk; 1278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Pm1bEvtBlk; 1288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Pm1aCntBlk; 1298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Pm1bCntBlk; 1308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Pm2CntBlk; 1318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PmTmrBlk; 1328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Gpe0Blk; 1338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Gpe1Blk; 1348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Pm1EvtLen; 1358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Pm1CntLen; 1368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Pm2CntLen; 1378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PmTmrLen; 1388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Gpe0BlkLen; 1398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Gpe1BlkLen; 1408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Gpe1Base; 1418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 CstCnt; 1428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 PLvl2Lat; 1438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 PLvl3Lat; 1448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 FlushSize; 1458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 FlushStride; 1468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 DutyOffset; 1478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 DutyWidth; 1488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 DayAlrm; 1498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 MonAlrm; 1508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Century; 1518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 IaPcBootArch; 1528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1; 1538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 1548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ResetReg; 1558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ResetValue; 1568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 ArmBootArch; 1578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 MinorVersion; 1588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 XFirmwareCtrl; 1598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 XDsdt; 1608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk; 1618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk; 1628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk; 1638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk; 1648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk; 1658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk; 1668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk; 1678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk; 1688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg; 1698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg; 1708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 HypervisorVendorIdentity; 1718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE; 1728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 1738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 1748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FADT Version (as defined in ACPI 6.0 spec.) 1758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 1768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x06 1778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION 0x00 1788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 1798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 1808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Fixed ACPI Description Table Preferred Power Management Profile 1818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 1828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_UNSPECIFIED 0 1838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_DESKTOP 1 1848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_MOBILE 2 1858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_WORKSTATION 3 1868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_ENTERPRISE_SERVER 4 1878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_SOHO_SERVER 5 1888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_APPLIANCE_PC 6 1898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_PERFORMANCE_SERVER 7 1908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PM_PROFILE_TABLET 8 1918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 1928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 1938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Fixed ACPI Description Table Boot Architecture Flags 1948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// All other bits are reserved and must be set to 0. 1958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 1968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_LEGACY_DEVICES BIT0 1978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_8042 BIT1 1988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_VGA_NOT_PRESENT BIT2 1998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MSI_NOT_SUPPORTED BIT3 2008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCIE_ASPM_CONTROLS BIT4 2018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_CMOS_RTC_NOT_PRESENT BIT5 2028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 2048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Fixed ACPI Description Table Arm Boot Architecture Flags 2058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// All other bits are reserved and must be set to 0. 2068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 2078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ARM_PSCI_COMPLIANT BIT0 2088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ARM_PSCI_USE_HVC BIT1 2098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 2118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Fixed ACPI Description Table Fixed Feature Flags 2128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// All other bits are reserved and must be set to 0. 2138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 2148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_WBINVD BIT0 2158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_WBINVD_FLUSH BIT1 2168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PROC_C1 BIT2 2178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_P_LVL2_UP BIT3 2188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PWR_BUTTON BIT4 2198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SLP_BUTTON BIT5 2208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FIX_RTC BIT6 2218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RTC_S4 BIT7 2228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_TMR_VAL_EXT BIT8 2238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DCK_CAP BIT9 2248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RESET_REG_SUP BIT10 2258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SEALED_CASE BIT11 2268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HEADLESS BIT12 2278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_CPU_SW_SLP BIT13 2288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCI_EXP_WAK BIT14 2298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_USE_PLATFORM_CLOCK BIT15 2308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_S4_RTC_STS_VALID BIT16 2318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_REMOTE_POWER_ON_CAPABLE BIT17 2328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FORCE_APIC_CLUSTER_MODEL BIT18 2338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19 2348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HW_REDUCED_ACPI BIT20 2358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_LOW_POWER_S0_IDLE_CAPABLE BIT21 2368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Firmware ACPI Control Structure 2398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 2418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Signature; 2428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Length; 2438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 HardwareSignature; 2448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 FirmwareWakingVector; 2458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GlobalLock; 2468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 2478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 XFirmwareWakingVector; 2488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Version; 2498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[3]; 2508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 OspmFlags; 2518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1[24]; 2528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE; 2538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FACS Version (as defined in ACPI 6.0 spec.) 2568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02 2588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Firmware Control Structure Feature Flags 2618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// All other bits are reserved and must be set to 0. 2628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_S4BIOS_F BIT0 2648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_64BIT_WAKE_SUPPORTED_F BIT1 2658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// OSPM Enabled Firmware Control Structure Flags 2688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// All other bits are reserved and must be set to 0. 2698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_OSPM_64BIT_WAKE_F BIT0 2718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 2738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Differentiated System Description Table, 2748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Secondary System Description Table 2758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// and Persistent System Description Table, 2768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// no definition needed as they are common description table header, the same with 2778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block. 2788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 2798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02 2808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02 2818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Multiple APIC Description Table header definition. The rest of the table 2848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// must be defined in a platform specific manner. 2858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 2878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 2888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 LocalApicAddress; 2898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 2908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER; 2918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// MADT Revision (as defined in ACPI 6.0 spec.) 2948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x03 2968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 2978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 2988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Multiple APIC Flags 2998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// All other bits are reserved and must be set to 0. 3008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCAT_COMPAT BIT0 3028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 3048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Multiple APIC Description Table APIC structure types 3058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// All other values between 0x0D and 0x7F are reserved and 3068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM. 3078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 3088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC 0x00 3098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IO_APIC 0x01 3108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE 0x02 3118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03 3128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_LOCAL_APIC_NMI 0x04 3138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05 3148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IO_SAPIC 0x06 3158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_LOCAL_SAPIC 0x07 3168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PLATFORM_INTERRUPT_SOURCES 0x08 3178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC 0x09 3188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_LOCAL_X2APIC_NMI 0x0A 3198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GIC 0x0B 3208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GICD 0x0C 3218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GIC_MSI_FRAME 0x0D 3228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GICR 0x0E 3238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GIC_ITS 0x0F 3248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 3268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// APIC Structure Definitions 3278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 3288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Processor Local APIC Structure Definition 3318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 3338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 3348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 3358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 AcpiProcessorUid; 3368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ApicId; 3378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 3388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_STRUCTURE; 3398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Local APIC Flags. All other bits are reserved and must be 0. 3428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_LOCAL_APIC_ENABLED BIT0 3448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// IO APIC Structure 3478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 3498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 3508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 3518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 IoApicId; 3528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved; 3538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 IoApicAddress; 3548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GlobalSystemInterruptBase; 3558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_IO_APIC_STRUCTURE; 3568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Interrupt Source Override Structure 3598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 3618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 3628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 3638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Bus; 3648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Source; 3658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GlobalSystemInterrupt; 3668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 3678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE; 3688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Platform Interrupt Sources Structure Definition 3718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 3738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 3748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 3758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 3768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 InterruptType; 3778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProcessorId; 3788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProcessorEid; 3798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 IoSapicVector; 3808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GlobalSystemInterrupt; 3818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PlatformInterruptSourceFlags; 3828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 CpeiProcessorOverride; 3838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[31]; 3848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PLATFORM_INTERRUPT_APIC_STRUCTURE; 3858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 3878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// MPS INTI flags. 3888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// All other bits are reserved and must be set to 0. 3898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 3908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_POLARITY (3 << 0) 3918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_TRIGGER_MODE (3 << 2) 3928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 3938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Non-Maskable Interrupt Source Structure 3958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 3968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 3978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 3988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 3998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 4008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GlobalSystemInterrupt; 4018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE; 4028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Local APIC NMI Structure 4058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 4078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 4088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 4098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 AcpiProcessorUid; 4108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 4118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 LocalApicLint; 4128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_LOCAL_APIC_NMI_STRUCTURE; 4138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Local APIC Address Override Structure 4168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 4188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 4198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 4208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved; 4218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 LocalApicAddress; 4228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE; 4238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// IO SAPIC Structure 4268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 4288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 4298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 4308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 IoApicId; 4318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved; 4328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GlobalSystemInterruptBase; 4338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 IoSapicAddress; 4348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_IO_SAPIC_STRUCTURE; 4358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Local SAPIC Structure 4388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String 4398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 4418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 4428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 4438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 AcpiProcessorId; 4448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 LocalSapicId; 4458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 LocalSapicEid; 4468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[3]; 4478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 4488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ACPIProcessorUIDValue; 4498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE; 4508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Platform Interrupt Sources Structure 4538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 4558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 4568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 4578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 4588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 InterruptType; 4598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProcessorId; 4608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProcessorEid; 4618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 IoSapicVector; 4628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GlobalSystemInterrupt; 4638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PlatformInterruptSourceFlags; 4648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE; 4658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Platform Interrupt Source Flags. 4688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// All other bits are reserved and must be set to 0. 4698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_CPEI_PROCESSOR_OVERRIDE BIT0 4718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Processor Local x2APIC Structure Definition 4748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 4768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 4778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 4788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[2]; 4798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 X2ApicId; 4808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 4818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AcpiProcessorUid; 4828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE; 4838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Local x2APIC NMI Structure 4868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 4888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 4898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 4908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 4918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AcpiProcessorUid; 4928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 LocalX2ApicLint; 4938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[3]; 4948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_LOCAL_X2APIC_NMI_STRUCTURE; 4958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 4968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GIC Structure 4988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 4998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 5008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 5018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 5028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved; 5038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 CPUInterfaceNumber; 5048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AcpiProcessorUid; 5058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 5068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ParkingProtocolVersion; 5078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PerformanceInterruptGsiv; 5088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ParkedAddress; 5098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 PhysicalBaseAddress; 5108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 GICV; 5118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 GICH; 5128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 VGICMaintenanceInterrupt; 5138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 GICRBaseAddress; 5148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 MPIDR; 5158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProcessorPowerEfficiencyClass; 5168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved2[3]; 5178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GIC_STRUCTURE; 5188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 5198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GIC Flags. All other bits are reserved and must be 0. 5218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GIC_ENABLED BIT0 5238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PERFORMANCE_INTERRUPT_MODEL BIT1 5248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS BIT2 5258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 5268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GIC Distributor Structure 5288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 5308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 5318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 5328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved1; 5338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GicId; 5348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 PhysicalBaseAddress; 5358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SystemVectorBase; 5368a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud UINT8 GicVersion; 5378a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud UINT8 Reserved2[3]; 5388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GIC_DISTRIBUTOR_STRUCTURE; 5398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 5408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5418a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud/// GIC Version 5428a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud/// 5438a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud#define EFI_ACPI_6_0_GIC_V1 0x01 5448a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud#define EFI_ACPI_6_0_GIC_V2 0x02 5458a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud#define EFI_ACPI_6_0_GIC_V3 0x03 5468a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud#define EFI_ACPI_6_0_GIC_V4 0x04 5478a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud 5488a2270a6ce2664fa8e727b391e7f06ac7ba39434Samer El-Haj-Mahmoud/// 5498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GIC MSI Frame Structure 5508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 5528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 5538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 5548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved1; 5558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GicMsiFrameId; 5568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 PhysicalBaseAddress; 5578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 5588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SPICount; 5598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SPIBase; 5608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GIC_MSI_FRAME_STRUCTURE; 5618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 5628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GIC MSI Frame Flags. All other bits are reserved and must be 0. 5648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SPI_COUNT_BASE_SELECT BIT0 5668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 5678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GICR Structure 5698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 5718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 5728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 5738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved; 5748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 DiscoveryRangeBaseAddress; 5758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 DiscoveryRangeLength; 5768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GICR_STRUCTURE; 5778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 5788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GIC Interrupt Translation Service Structure 5808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 5828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 5838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 5848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved; 5858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GicItsId; 5868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 PhysicalBaseAddress; 5878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved2; 5888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GIC_ITS_STRUCTURE; 5898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 5908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Smart Battery Description Table (SBST) 5928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 5938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 5948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 5958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 WarningEnergyLevel; 5968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 LowEnergyLevel; 5978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 CriticalEnergyLevel; 5988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_SMART_BATTERY_DESCRIPTION_TABLE; 5998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// SBST Version (as defined in ACPI 6.0 spec.) 6028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01 6048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Embedded Controller Boot Resources Table (ECDT) 6078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// The table is followed by a null terminated ASCII string that contains 6088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// a fully qualified reference to the name space object. 6098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 6118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 6128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcControl; 6138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcData; 6148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Uid; 6158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 GpeBit; 6168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE; 6178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ECDT Version (as defined in ACPI 6.0 spec.) 6208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01 6228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// System Resource Affinity Table (SRAT). The rest of the table 6258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// must be defined in a platform specific manner. 6268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 6288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 6298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved1; ///< Must be set to 1 6308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Reserved2; 6318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER; 6328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// SRAT Version (as defined in ACPI 6.0 spec.) 6358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03 6378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 6398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// SRAT structure types. 6408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// All other values between 0x04 an 0xFF are reserved and 6418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// will be ignored by OSPM. 6428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 6438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00 6448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MEMORY_AFFINITY 0x01 6458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02 6468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GICC_AFFINITY 0x03 6478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Processor Local APIC/SAPIC Affinity Structure Definition 6508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 6528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 6538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 6548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProximityDomain7To0; 6558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ApicId; 6568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 6578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 LocalSapicEid; 6588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProximityDomain31To8[3]; 6598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ClockDomain; 6608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE; 6618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0. 6648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0) 6668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Memory Affinity Structure Definition 6698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 6718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 6728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 6738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ProximityDomain; 6748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved1; 6758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AddressBaseLow; 6768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AddressBaseHigh; 6778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 LengthLow; 6788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 LengthHigh; 6798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved2; 6808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 6818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Reserved3; 6828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MEMORY_AFFINITY_STRUCTURE; 6838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 6858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Memory Flags. All other bits are reserved and must be 0. 6868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 6878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MEMORY_ENABLED (1 << 0) 6888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MEMORY_HOT_PLUGGABLE (1 << 1) 6898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MEMORY_NONVOLATILE (1 << 2) 6908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 6918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Processor Local x2APIC Affinity Structure Definition 6938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 6948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 6958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 6968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 6978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1[2]; 6988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ProximityDomain; 6998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 X2ApicId; 7008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 7018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ClockDomain; 7028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved2[4]; 7038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_AFFINITY_STRUCTURE; 7048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GICC Affinity Structure Definition 7078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 7098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 7108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 7118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ProximityDomain; 7128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AcpiProcessorUid; 7138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 7148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ClockDomain; 7158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GICC_AFFINITY_STRUCTURE; 7168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GICC Flags. All other bits are reserved and must be 0. 7198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GICC_ENABLED (1 << 0) 7218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// System Locality Distance Information Table (SLIT). 7248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// The rest of the table is a matrix. 7258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 7278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 7288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 NumberOfSystemLocalities; 7298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER; 7308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// SLIT Version (as defined in ACPI 6.0 spec.) 7338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01 7358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Corrected Platform Error Polling Table (CPEP) 7388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 7408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 7418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[8]; 7428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_HEADER; 7438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// CPEP Version (as defined in ACPI 6.0 spec.) 7468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01 7488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 7508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// CPEP processor structure types. 7518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 7528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_CPEP_PROCESSOR_APIC_SAPIC 0x00 7538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Corrected Platform Error Polling Processor Structure Definition 7568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 7588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 7598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 7608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProcessorId; 7618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ProcessorEid; 7628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PollingInterval; 7638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_CPEP_PROCESSOR_APIC_SAPIC_STRUCTURE; 7648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Maximum System Characteristics Table (MSCT) 7678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 7698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 7708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 OffsetProxDomInfo; 7718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaximumNumberOfProximityDomains; 7728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaximumNumberOfClockDomains; 7738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 MaximumPhysicalAddress; 7748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_HEADER; 7758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// MSCT Version (as defined in ACPI 6.0 spec.) 7788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01 7808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Maximum Proximity Domain Information Structure Definition 7838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 7858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Revision; 7868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 7878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ProximityDomainRangeLow; 7888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ProximityDomainRangeHigh; 7898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaximumProcessorCapacity; 7908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 MaximumMemoryCapacity; 7918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MAXIMUM_PROXIMITY_DOMAIN_INFORMATION_STRUCTURE; 7928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 7938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI RAS Feature Table definition. 7958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 7968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 7978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 7988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PlatformCommunicationChannelIdentifier[12]; 7998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_RAS_FEATURE_TABLE; 8008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// RASF Version (as defined in ACPI 6.0 spec.) 8038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RAS_FEATURE_TABLE_REVISION 0x01 8058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI RASF Platform Communication Channel Shared Memory Region definition. 8088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 8108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Signature; 8118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Command; 8128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Status; 8138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Version; 8148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 RASCapabilities[16]; 8158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 SetRASCapabilities[16]; 8168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NumberOfRASFParameterBlocks; 8178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SetRASCapabilitiesStatus; 8188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_RASF_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION; 8198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI RASF PCC command code 8228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RASF_PCC_COMMAND_CODE_EXECUTE_RASF_COMMAND 0x01 8248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI RASF Platform RAS Capabilities 8278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED 0x01 8298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED_AND_EXPOSED_TO_SOFTWARE 0x02 8308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI RASF Parameter Block structure for PATROL_SCRUB 8338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 8358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 8368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Version; 8378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 8388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 PatrolScrubCommand; 8398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 RequestedAddressRange[2]; 8408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ActualAddressRange[2]; 8418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 8428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 RequestedSpeed; 8438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_RASF_PATROL_SCRUB_PLATFORM_BLOCK_STRUCTURE; 8448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI RASF Patrol Scrub command 8478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_GET_PATROL_PARAMETERS 0x01 8498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_START_PATROL_SCRUBBER 0x02 8508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_STOP_PATROL_SCRUBBER 0x03 8518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Memory Power State Table definition. 8548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 8568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 8578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PlatformCommunicationChannelIdentifier; 8588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[3]; 8598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Memory Power Node Structure 8608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Memory Power State Characteristics 8618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MEMORY_POWER_STATUS_TABLE; 8628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// MPST Version (as defined in ACPI 6.0 spec.) 8658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MEMORY_POWER_STATE_TABLE_REVISION 0x01 8678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// MPST Platform Communication Channel Shared Memory Region definition. 8708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 8728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Signature; 8738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Command; 8748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Status; 8758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MemoryPowerCommandRegister; 8768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MemoryPowerStatusRegister; 8778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PowerStateId; 8788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MemoryPowerNodeId; 8798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 MemoryEnergyConsumed; 8808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ExpectedAveragePowerComsuned; 8818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MPST_PLATFORM_COMMUNICATION_CHANNEL_SHARED_MEMORY_REGION; 8828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI MPST PCC command code 8858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_PCC_COMMAND_CODE_EXECUTE_MPST_COMMAND 0x03 8878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ACPI MPST Memory Power command 8908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_POWER_STATE 0x01 8928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_SET_MEMORY_POWER_STATE 0x02 8938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_AVERAGE_POWER_CONSUMED 0x03 8948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_ENERGY_CONSUMED 0x04 8958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 8968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// MPST Memory Power Node Table 8988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 8998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PowerStateValue; 9018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PowerStateInformationIndex; 9028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE; 9038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flag; 9068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved; 9078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 MemoryPowerNodeId; 9088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Length; 9098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 AddressBase; 9108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 AddressLength; 9118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfPowerStates; 9128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfPhysicalComponents; 9138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen//EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates]; 9148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen//UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents]; 9158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE; 9168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_ENABLE 0x01 9188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_POWER_MANAGED 0x02 9198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_HOT_PLUGGABLE 0x04 9208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 MemoryPowerNodeCount; 9238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[2]; 9248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MPST_MEMORY_POWER_NODE_TABLE; 9258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// MPST Memory Power State Characteristics Table 9288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PowerStateStructureID; 9318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flag; 9328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved; 9338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AveragePowerConsumedInMPS0; 9348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 RelativePowerSavingToMPS0; 9358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ExitLatencyToMPS0; 9368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE; 9378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_MEMORY_CONTENT_PRESERVED 0x01 9398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_ENTRY 0x02 9408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_EXIT 0x04 9418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 MemoryPowerStateCharacteristicsCount; 9448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[2]; 9458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE; 9468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Memory Topology Table definition. 9498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 9528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved; 9538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_MEMORY_TOPOLOGY_TABLE; 9548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// PMTT Version (as defined in ACPI 6.0 spec.) 9578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MEMORY_TOPOLOGY_TABLE_REVISION 0x01 9598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Common Memory Aggregator Device Structure. 9628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 9658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved; 9668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 9678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 9688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved1; 9698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE; 9708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Memory Aggregator Device Type 9738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_SOCKET 0x1 9758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_MEMORY_CONTROLLER 0x2 9768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_DIMM 0x3 9778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Socket Memory Aggregator Device Structure. 9808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header; 9838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SocketIdentifier; 9848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved; 9858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen//EFI_ACPI_6_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE MemoryController[]; 9868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PMMT_SOCKET_MEMORY_AGGREGATOR_DEVICE_STRUCTURE; 9878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 9888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// MemoryController Memory Aggregator Device Structure. 9908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 9918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 9928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header; 9938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ReadLatency; 9948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 WriteLatency; 9958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ReadBandwidth; 9968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 WriteBandwidth; 9978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 OptimalAccessUnit; 9988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 OptimalAccessAlignment; 9998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved; 10008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NumberOfProximityDomains; 10018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen//UINT32 ProximityDomain[NumberOfProximityDomains]; 10028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen//EFI_ACPI_6_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE PhysicalComponent[]; 10038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE; 10048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// DIMM Memory Aggregator Device Structure. 10078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 10098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header; 10108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 PhysicalComponentIdentifier; 10118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved; 10128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SizeOfDimm; 10138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SmbiosHandle; 10148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE; 10158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Boot Graphics Resource Table definition. 10188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 10208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 10218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 2-bytes (16 bit) version ID. This value must be 1. 10238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Version; 10258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 1-byte status field indicating current status about the table. 10278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Bits[7:1] = Reserved (must be zero) 10288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Bit [0] = Valid. A one indicates the boot image graphic is valid. 10298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Status; 10318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 1-byte enumerated type field indicating format of the image. 10338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 0 = Bitmap 10348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 1 - 255 Reserved (for future use) 10358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ImageType; 10378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 8-byte (64 bit) physical address pointing to the firmware's in-memory copy 10398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// of the image bitmap. 10408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ImageAddress; 10428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image. 10448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// (X, Y) display offset of the top left corner of the boot image. 10458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// The top left corner of the display is at offset (0, 0). 10468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ImageOffsetX; 10488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image. 10508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// (X, Y) display offset of the top left corner of the boot image. 10518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// The top left corner of the display is at offset (0, 0). 10528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 10538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ImageOffsetY; 10548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE; 10558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// BGRT Revision 10588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE_REVISION 1 10608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// BGRT Version 10638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BGRT_VERSION 0x01 10658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// BGRT Status 10688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BGRT_STATUS_NOT_DISPLAYED 0x00 10708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BGRT_STATUS_DISPLAYED 0x01 10718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// BGRT Image Type 10748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BGRT_IMAGE_TYPE_BMP 0x00 10768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Version (as defined in ACPI 6.0 spec.) 10798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_DATA_TABLE_REVISION 0x01 10818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Performance Record Types 10848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RECORD_TYPE_FIRMWARE_BASIC_BOOT_POINTER 0x0000 10868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RECORD_TYPE_S3_PERFORMANCE_TABLE_POINTER 0x0001 10878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Performance Record Revision 10908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RECORD_REVISION_FIRMWARE_BASIC_BOOT_POINTER 0x01 10928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RECORD_REVISION_S3_PERFORMANCE_TABLE_POINTER 0x01 10938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 10948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Runtime Performance Record Types 10968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 10978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_S3_RESUME 0x0000 10988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_S3_SUSPEND 0x0001 10998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_FIRMWARE_BASIC_BOOT 0x0002 11008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 11018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Runtime Performance Record Revision 11038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_S3_RESUME 0x01 11058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_S3_SUSPEND 0x01 11068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_FIRMWARE_BASIC_BOOT 0x02 11078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 11088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Performance Record header 11108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 11128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 11138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 11148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Revision; 11158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER; 11168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 11178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Performance Table header 11198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 11218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Signature; 11228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Length; 11238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER; 11248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 11258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Firmware Basic Boot Performance Pointer Record Structure 11278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 11298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header; 11308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved; 11318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 64-bit processor-relative physical address of the Basic Boot Performance Table. 11338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 BootPerformanceTablePointer; 11358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_BOOT_PERFORMANCE_TABLE_POINTER_RECORD; 11368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 11378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT S3 Performance Table Pointer Record Structure 11398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 11418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header; 11428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved; 11438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 64-bit processor-relative physical address of the S3 Performance Table. 11458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 S3PerformanceTablePointer; 11478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_S3_PERFORMANCE_TABLE_POINTER_RECORD; 11488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 11498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Firmware Basic Boot Performance Record Structure 11518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 11538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header; 11548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved; 11558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Timer value logged at the beginning of firmware image execution. 11578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// This may not always be zero or near zero. 11588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ResetEnd; 11608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Timer value logged just prior to loading the OS boot loader into memory. 11628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// For non-UEFI compatible boots, this field must be zero. 11638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 OsLoaderLoadImageStart; 11658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Timer value logged just prior to launching the previously loaded OS boot loader image. 11678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// For non-UEFI compatible boots, the timer value logged will be just prior 11688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// to the INT 19h handler invocation. 11698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 OsLoaderStartImageStart; 11718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Timer value logged at the point when the OS loader calls the 11738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// ExitBootServices function for UEFI compatible firmware. 11748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// For non-UEFI compatible boots, this field must be zero. 11758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ExitBootServicesEntry; 11778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Timer value logged at the point just prior towhen the OS loader gaining 11798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// control back from calls the ExitBootServices function for UEFI compatible firmware. 11808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// For non-UEFI compatible boots, this field must be zero. 11818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 11828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ExitBootServicesExit; 11838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_FIRMWARE_BASIC_BOOT_RECORD; 11848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 11858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Firmware Basic Boot Performance Table signature 11878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 11888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_BOOT_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('F', 'B', 'P', 'T') 11898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 11908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 11918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// FPDT Firmware Basic Boot Performance Table 11928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 11938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 11948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header; 11958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen // 11968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen // one or more Performance Records. 11978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen // 11988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_FIRMWARE_BASIC_BOOT_TABLE; 11998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT "S3PT" S3 Performance Table 12028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('S', '3', 'P', 'T') 12048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 12068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// FPDT Firmware S3 Boot Performance Table 12078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 12088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 12098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header; 12108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen // 12118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen // one or more Performance Records. 12128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen // 12138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_FIRMWARE_S3_BOOT_TABLE; 12148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Basic S3 Resume Performance Record 12178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 12198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header; 12208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// A count of the number of S3 resume cycles since the last full boot sequence. 12228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ResumeCount; 12248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Timer recorded at the end of BIOS S3 resume, just prior to handoff to the 12268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// OS waking vector. Only the most recent resume cycle's time is retained. 12278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 FullResume; 12298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Average timer value of all resume cycles logged since the last full boot 12318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// sequence, including the most recent resume. Note that the entire log of 12328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// timer values does not need to be retained in order to calculate this average. 12338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 AverageResume; 12358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_S3_RESUME_RECORD; 12368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// FPDT Basic S3 Suspend Performance Record 12398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 12418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header; 12428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Timer value recorded at the OS write to SLP_TYP upon entry to S3. 12448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Only the most recent suspend cycle's timer value is retained. 12458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 SuspendStart; 12478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Timer value recorded at the final firmware write to SLP_TYP (or other 12498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// mechanism) used to trigger hardware entry to S3. 12508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// Only the most recent suspend cycle's timer value is retained. 12518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen /// 12528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 SuspendEnd; 12538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FPDT_S3_SUSPEND_RECORD; 12548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Firmware Performance Record Table definition. 12578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 12598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 12608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_RECORD_TABLE; 12618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Generic Timer Description Table definition. 12648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 12668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 12678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 CntControlBasePhysicalAddress; 12688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved; 12698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SecurePL1TimerGSIV; 12708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SecurePL1TimerFlags; 12718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NonSecurePL1TimerGSIV; 12728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NonSecurePL1TimerFlags; 12738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 VirtualTimerGSIV; 12748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 VirtualTimerFlags; 12758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NonSecurePL2TimerGSIV; 12768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NonSecurePL2TimerFlags; 12778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 CntReadBasePhysicalAddress; 12788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PlatformTimerCount; 12798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PlatformTimerOffset; 12808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE; 12818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GTDT Version (as defined in ACPI 6.0 spec.) 12848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION 0x02 12868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Timer Flags. All other bits are reserved and must be 0. 12898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0 12918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1 12928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_TIMER_FLAG_ALWAYS_ON_CAPABILITY BIT2 12938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 12948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Platform Timer Type 12968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 12978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_GT_BLOCK 0 12988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG 1 12998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GT Block Structure 13028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 13048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 13058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 13068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved; 13078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 CntCtlBase; 13088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GTBlockTimerCount; 13098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GTBlockTimerOffset; 13108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GTDT_GT_BLOCK_STRUCTURE; 13118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GT Block Timer Structure 13148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 13168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 GTFrameNumber; 13178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[3]; 13188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 CntBaseX; 13198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 CntEL0BaseX; 13208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GTxPhysicalTimerGSIV; 13218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GTxPhysicalTimerFlags; 13228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GTxVirtualTimerGSIV; 13238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GTxVirtualTimerFlags; 13248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 GTxCommonFlags; 13258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_STRUCTURE; 13268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// GT Block Physical Timers and Virtual Timers Flags. All other bits are reserved and must be 0. 13298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0 13318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1 13328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Common Flags Flags. All other bits are reserved and must be 0. 13358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_GT_BLOCK_COMMON_FLAG_SECURE_TIMER BIT0 13378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY BIT1 13388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// SBSA Generic Watchdog Structure 13418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 13438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 13448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 13458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved; 13468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 RefreshFramePhysicalAddress; 13478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 WatchdogControlFramePhysicalAddress; 13488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 WatchdogTimerGSIV; 13498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 WatchdogTimerFlags; 13508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_STRUCTURE; 13518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// SBSA Generic Watchdog Timer Flags. All other bits are reserved and must be 0. 13548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 13558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE BIT0 13568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY BIT1 13578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_SECURE_TIMER BIT2 13588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// NVDIMM Firmware Interface Table definition. 13618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 13638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 13648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved; 13658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE; 13668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// NFIT Version (as defined in ACPI 6.0 spec.) 13698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE_REVISION 0x1 13718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for NFIT Table Structure Types 13748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE 0 13768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_TO_SYSTEM_ADDRESS_RANGE_MAP_STRUCTURE_TYPE 1 13778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_INTERLEAVE_STRUCTURE_TYPE 2 13788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE_TYPE 3 13798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE_TYPE 4 13808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE_TYPE 5 13818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE_TYPE 6 13828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for NFIT Structure Header 13858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 13878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 13888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 13898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_STRUCTURE_HEADER; 13908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 13918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for System Physical Address Range Structure 13938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 13948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_CONTROL_REGION_FOR_MANAGEMENT BIT0 13958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_PROXIMITY_DOMAIN_VALID BIT1 13968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_GUID_VOLATILE_MEMORY_REGION { 0x7305944F, 0xFDDA, 0x44E3, 0xB1, 0x6C, 0x3F, 0x22, 0xD2, 0x52, 0xE5, 0xD0 } 13978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_GUID_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_REGION { 0x66F0D379, 0xB4F3, 0x4074, 0xAC, 0x43, 0x0D, 0x33, 0x18, 0xB7, 0x8C, 0xDB } 13988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_CONTROL_REGION { 0x92F701F6, 0x13B4, 0x405D, 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C } 13998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_BLOCK_DATA_WINDOW_REGION { 0x91AF0530, 0x5D86, 0x470E, 0xA6, 0xB0, 0x0A, 0x2D, 0xB9, 0x40, 0x82, 0x49 } 14008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#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 } 14018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#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 } 14028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#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 } 14038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#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 } 14048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 14058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 14068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 14078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SPARangeStructureIndex; 14088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Flags; 14098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved_8; 14108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ProximityDomain; 14118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen GUID AddressRangeTypeGUID; 14128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 SystemPhysicalAddressRangeBase; 14138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 SystemPhysicalAddressRangeLength; 14148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 AddressRangeMemoryMappingAttribute; 14158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE; 14168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 14178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 14188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for Memory Device to System Physical Address Range Mapping Structure 14198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 14208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 14218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 DIMMNumber:4; 14228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MemoryChannelNumber:4; 14238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MemoryControllerID:4; 14248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SocketID:4; 14258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NodeControllerID:12; 14268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved_28:4; 14278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_DEVICE_HANDLE; 14288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 14298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_PREVIOUS_SAVE_FAIL BIT0 14308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_LAST_RESTORE_FAIL BIT1 14318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_PLATFORM_FLUSH_FAIL BIT2 14328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_NOT_ARMED_PRIOR_TO_OSPM_HAND_OFF BIT3 14338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_SMART_HEALTH_EVENTS_PRIOR_OSPM_HAND_OFF BIT4 14348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_FIRMWARE_ENABLED_TO_NOTIFY_OSPM_ON_SMART_HEALTH_EVENTS BIT5 14358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 14368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 14378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 14388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_NFIT_DEVICE_HANDLE NFITDeviceHandle; 14398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 MemoryDevicePhysicalID; 14408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 MemoryDeviceRegionID; 14418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SPARangeStructureIndex ; 14428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NVDIMMControlRegionStructureIndex; 14438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 MemoryDeviceRegionSize; 14448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 RegionOffset; 14458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 MemoryDevicePhysicalAddressRegionBase; 14468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 InterleaveStructureIndex; 14478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 InterleaveWays; 14488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 MemoryDeviceStateFlags; 14498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved_46; 14508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_TO_SYSTEM_ADDRESS_RANGE_MAP_STRUCTURE; 14518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 14528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 14538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for Interleave Structure 14548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 14558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 14568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 14578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 14588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 InterleaveStructureIndex; 14598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved_6; 14608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfLines; 14618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 LineSize; 14628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen//UINT32 LineOffset[NumberOfLines]; 14638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_INTERLEAVE_STRUCTURE; 14648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 14658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 14668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for SMBIOS Management Information Structure 14678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 14688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 14698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 14708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 14718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved_4; 14728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen//UINT8 Data[]; 14738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE; 14748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 14758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 14768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for NVDIMM Control Region Structure 14778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 14788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_FLAGS_BLOCK_DATA_WINDOWS_BUFFERED BIT0 14798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 14808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 14818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 14828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NVDIMMControlRegionStructureIndex; 14838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 VendorID; 14848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 DeviceID; 14858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 RevisionID; 14868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SubsystemVendorID; 14878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SubsystemDeviceID; 14888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SubsystemRevisionID; 14898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved_18[6]; 14908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SerialNumber; 14918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 RegionFormatInterfaceCode; 14928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NumberOfBlockControlWindows; 14938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 SizeOfBlockControlWindow; 14948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 CommandRegisterOffsetInBlockControlWindow; 14958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 SizeOfCommandRegisterInBlockControlWindows; 14968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 StatusRegisterOffsetInBlockControlWindow; 14978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 SizeOfStatusRegisterInBlockControlWindows; 14988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NVDIMMControlRegionFlag; 14998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved_74[6]; 15008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE; 15018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 15038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for NVDIMM Block Data Window Region Structure 15048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 15058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 15068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 15078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 15088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NVDIMMControlRegionStructureIndex; 15098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NumberOfBlockDataWindows; 15108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 BlockDataWindowStartOffset; 15118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 SizeOfBlockDataWindow; 15128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 BlockAccessibleMemoryCapacity; 15138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 BeginningAddressOfFirstBlockInBlockAccessibleMemory; 15148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE; 15158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 15178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Definition for Flush Hint Address Structure 15188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 15198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 15208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 15218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Length; 15228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_NFIT_DEVICE_HANDLE NFITDeviceHandle; 15238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 NumberOfFlushHintAddresses; 15248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved_10[6]; 15258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen//UINT64 FlushHintAddress[NumberOfFlushHintAddresses]; 15268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE; 15278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Boot Error Record Table (BERT) 15308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 15328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 15338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 BootErrorRegionLength; 15348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 BootErrorRegion; 15358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_HEADER; 15368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// BERT Version (as defined in ACPI 6.0 spec.) 15398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_REVISION 0x01 15418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Boot Error Region Block Status Definition 15448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 15468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 UncorrectableErrorValid:1; 15478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 CorrectableErrorValid:1; 15488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MultipleUncorrectableErrors:1; 15498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MultipleCorrectableErrors:1; 15508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorDataEntryCount:10; 15518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Reserved:18; 15528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_ERROR_BLOCK_STATUS; 15538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Boot Error Region Definition 15568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 15588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus; 15598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 RawDataOffset; 15608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 RawDataLength; 15618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 DataLength; 15628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorSeverity; 15638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_BOOT_ERROR_REGION_STRUCTURE; 15648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 15668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Boot Error Severity types 15678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 15688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_SEVERITY_CORRECTABLE 0x00 15698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_SEVERITY_FATAL 0x01 15708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_SEVERITY_CORRECTED 0x02 15718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_SEVERITY_NONE 0x03 15728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Generic Error Data Entry Definition 15758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 15778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 SectionType[16]; 15788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorSeverity; 15798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Revision; 15808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ValidationBits; 15818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 15828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorDataLength; 15838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 FruId[16]; 15848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 FruText[20]; 15858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GENERIC_ERROR_DATA_ENTRY_STRUCTURE; 15868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Generic Error Data Entry Version (as defined in ACPI 6.0 spec.) 15898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GENERIC_ERROR_DATA_ENTRY_REVISION 0x0201 15918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 15928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// HEST - Hardware Error Source Table 15948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 15958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 15968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 15978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorSourceCount; 15988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_HEADER; 15998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// HEST Version (as defined in ACPI 6.0 spec.) 16028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x01 16048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 16068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Error Source structure types. 16078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 16088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x00 16098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x01 16108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IA32_ARCHITECTURE_NMI_ERROR 0x02 16118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCI_EXPRESS_ROOT_PORT_AER 0x06 16128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCI_EXPRESS_DEVICE_AER 0x07 16138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCI_EXPRESS_BRIDGE_AER 0x08 16148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GENERIC_HARDWARE_ERROR 0x09 16158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 16178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Error Source structure flags. 16188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 16198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0) 16208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_SOURCE_FLAG_GLOBAL (1 << 1) 16218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// IA-32 Architecture Machine Check Exception Structure Definition 16248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 16268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 16278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SourceId; 16288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[2]; 16298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 16308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Enabled; 16318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfRecordsToPreAllocate; 16328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxSectionsPerRecord; 16338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 GlobalCapabilityInitData; 16348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 GlobalControlInitData; 16358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 NumberOfHardwareBanks; 16368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1[7]; 16378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION_STRUCTURE; 16388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// IA-32 Architecture Machine Check Bank Structure Definition 16418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 16438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 BankNumber; 16448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 ClearStatusOnInitialization; 16458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 StatusDataFormat; 16468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0; 16478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ControlRegisterMsrAddress; 16488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 ControlInitData; 16498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 StatusRegisterMsrAddress; 16508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AddressRegisterMsrAddress; 16518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MiscRegisterMsrAddress; 16528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_BANK_STRUCTURE; 16538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// IA-32 Architecture Machine Check Bank Structure MCA data format 16568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x00 16588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x01 16598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x02 16608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 16628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Hardware Error Notification types. All other values are reserved 16638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 16648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_POLLED 0x00 16658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x01 16668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x02 16678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_SCI 0x03 16688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_NMI 0x04 16698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Hardware Error Notification Configuration Write Enable Structure Definition 16728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 16748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type:1; 16758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 PollInterval:1; 16768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SwitchToPollingThresholdValue:1; 16778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SwitchToPollingThresholdWindow:1; 16788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 ErrorThresholdValue:1; 16798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 ErrorThresholdWindow:1; 16808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Reserved:10; 16818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE; 16828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Hardware Error Notification Structure Definition 16858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 16878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 16888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 16898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable; 16908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 PollInterval; 16918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Vector; 16928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SwitchToPollingThresholdValue; 16938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SwitchToPollingThresholdWindow; 16948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorThresholdValue; 16958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorThresholdWindow; 16968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE; 16978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 16988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 16998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// IA-32 Architecture Corrected Machine Check Structure Definition 17008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 17028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 17038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SourceId; 17048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[2]; 17058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 17068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Enabled; 17078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfRecordsToPreAllocate; 17088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxSectionsPerRecord; 17098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure; 17108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 NumberOfHardwareBanks; 17118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1[3]; 17128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK_STRUCTURE; 17138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 17148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// IA-32 Architecture NMI Error Structure Definition 17168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 17188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 17198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SourceId; 17208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[2]; 17218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfRecordsToPreAllocate; 17228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxSectionsPerRecord; 17238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxRawDataLength; 17248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_IA32_ARCHITECTURE_NMI_ERROR_STRUCTURE; 17258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 17268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// PCI Express Root Port AER Structure Definition 17288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 17308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 17318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SourceId; 17328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[2]; 17338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 17348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Enabled; 17358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfRecordsToPreAllocate; 17368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxSectionsPerRecord; 17378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Bus; 17388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Device; 17398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Function; 17408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 DeviceControl; 17418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1[2]; 17428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 UncorrectableErrorMask; 17438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 UncorrectableErrorSeverity; 17448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 CorrectableErrorMask; 17458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AdvancedErrorCapabilitiesAndControl; 17468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 RootErrorCommand; 17478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PCI_EXPRESS_ROOT_PORT_AER_STRUCTURE; 17488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 17498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// PCI Express Device AER Structure Definition 17518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 17538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 17548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SourceId; 17558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[2]; 17568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 17578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Enabled; 17588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfRecordsToPreAllocate; 17598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxSectionsPerRecord; 17608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Bus; 17618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Device; 17628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Function; 17638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 DeviceControl; 17648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1[2]; 17658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 UncorrectableErrorMask; 17668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 UncorrectableErrorSeverity; 17678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 CorrectableErrorMask; 17688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AdvancedErrorCapabilitiesAndControl; 17698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PCI_EXPRESS_DEVICE_AER_STRUCTURE; 17708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 17718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// PCI Express Bridge AER Structure Definition 17738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 17758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 17768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SourceId; 17778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[2]; 17788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 17798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Enabled; 17808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfRecordsToPreAllocate; 17818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxSectionsPerRecord; 17828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Bus; 17838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Device; 17848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Function; 17858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 DeviceControl; 17868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1[2]; 17878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 UncorrectableErrorMask; 17888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 UncorrectableErrorSeverity; 17898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 CorrectableErrorMask; 17908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 AdvancedErrorCapabilitiesAndControl; 17918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SecondaryUncorrectableErrorMask; 17928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SecondaryUncorrectableErrorSeverity; 17938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SecondaryAdvancedErrorCapabilitiesAndControl; 17948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PCI_EXPRESS_BRIDGE_AER_STRUCTURE; 17958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 17968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Generic Hardware Error Source Structure Definition 17988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 17998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 18008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 Type; 18018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 SourceId; 18028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 RelatedSourceId; 18038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 18048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Enabled; 18058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NumberOfRecordsToPreAllocate; 18068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxSectionsPerRecord; 18078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaxRawDataLength; 18088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress; 18098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure; 18108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorStatusBlockLength; 18118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GENERIC_HARDWARE_ERROR_SOURCE_STRUCTURE; 18128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 18138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Generic Error Status Definition 18158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 18178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus; 18188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 RawDataOffset; 18198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 RawDataLength; 18208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 DataLength; 18218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 ErrorSeverity; 18228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_GENERIC_ERROR_STATUS_STRUCTURE; 18238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 18248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ERST - Error Record Serialization Table 18268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 18288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 18298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 SerializationHeaderSize; 18308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[4]; 18318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 InstructionEntryCount; 18328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_HEADER; 18338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 18348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ERST Version (as defined in ACPI 6.0 spec.) 18368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x01 18388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 18398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ERST Serialization Actions 18418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_BEGIN_WRITE_OPERATION 0x00 18438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_BEGIN_READ_OPERATION 0x01 18448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_BEGIN_CLEAR_OPERATION 0x02 18458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_END_OPERATION 0x03 18468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_SET_RECORD_OFFSET 0x04 18478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_EXECUTE_OPERATION 0x05 18488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_CHECK_BUSY_STATUS 0x06 18498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_GET_COMMAND_STATUS 0x07 18508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_GET_RECORD_IDENTIFIER 0x08 18518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_SET_RECORD_IDENTIFIER 0x09 18528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_GET_RECORD_COUNT 0x0A 18538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B 18548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D 18558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E 18568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F 18578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 18588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ERST Action Command Status 18608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STATUS_SUCCESS 0x00 18628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STATUS_NOT_ENOUGH_SPACE 0x01 18638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STATUS_HARDWARE_NOT_AVAILABLE 0x02 18648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STATUS_FAILED 0x03 18658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STATUS_RECORD_STORE_EMPTY 0x04 18668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STATUS_RECORD_NOT_FOUND 0x05 18678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 18688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ERST Serialization Instructions 18708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_READ_REGISTER 0x00 18728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_READ_REGISTER_VALUE 0x01 18738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_WRITE_REGISTER 0x02 18748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_WRITE_REGISTER_VALUE 0x03 18758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_NOOP 0x04 18768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_LOAD_VAR1 0x05 18778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_LOAD_VAR2 0x06 18788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STORE_VAR1 0x07 18798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_ADD 0x08 18808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_SUBTRACT 0x09 18818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_ADD_VALUE 0x0A 18828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_SUBTRACT_VALUE 0x0B 18838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STALL 0x0C 18848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_STALL_WHILE_TRUE 0x0D 18858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E 18868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_GOTO 0x0F 18878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_SET_SRC_ADDRESS_BASE 0x10 18888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_SET_DST_ADDRESS_BASE 0x11 18898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_MOVE_DATA 0x12 18908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 18918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ERST Instruction Flags 18938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERST_PRESERVE_REGISTER 0x01 18958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 18968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// ERST Serialization Instruction Entry 18988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 18998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 19008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 SerializationAction; 19018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Instruction; 19028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 19038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0; 19048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion; 19058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Value; 19068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Mask; 19078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_ERST_SERIALIZATION_INSTRUCTION_ENTRY; 19088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ - Error Injection Table 19118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 19138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 19148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 InjectionHeaderSize; 19158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 InjectionFlags; 19168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0[3]; 19178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 InjectionEntryCount; 19188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_ERROR_INJECTION_TABLE_HEADER; 19198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ Version (as defined in ACPI 6.0 spec.) 19228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_INJECTION_TABLE_REVISION 0x01 19248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ Error Injection Actions 19278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_BEGIN_INJECTION_OPERATION 0x00 19298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x01 19308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_SET_ERROR_TYPE 0x02 19318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_GET_ERROR_TYPE 0x03 19328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_END_OPERATION 0x04 19338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_EXECUTE_OPERATION 0x05 19348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_CHECK_BUSY_STATUS 0x06 19358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_GET_COMMAND_STATUS 0x07 19368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_TRIGGER_ERROR 0xFF 19378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ Action Command Status 19408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_STATUS_SUCCESS 0x00 19428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_STATUS_UNKNOWN_FAILURE 0x01 19438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_STATUS_INVALID_ACCESS 0x02 19448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ Error Type Definition 19478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0) 19498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1) 19508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2) 19518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3) 19528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4) 19538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5) 19548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6) 19558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7) 19568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8) 19578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9) 19588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10) 19598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11) 19608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ Injection Instructions 19638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_READ_REGISTER 0x00 19658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_READ_REGISTER_VALUE 0x01 19668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_WRITE_REGISTER 0x02 19678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_WRITE_REGISTER_VALUE 0x03 19688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_NOOP 0x04 19698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ Instruction Flags 19728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EINJ_PRESERVE_REGISTER 0x01 19748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ Injection Instruction Entry 19778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 19798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 InjectionAction; 19808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Instruction; 19818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Flags; 19828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved0; 19838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion; 19848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Value; 19858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Mask; 19868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_EINJ_INJECTION_INSTRUCTION_ENTRY; 19878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// EINJ Trigger Action Table 19908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 19928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 HeaderSize; 19938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Revision; 19948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 TableSize; 19958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 EntryCount; 19968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_EINJ_TRIGGER_ACTION_TABLE; 19978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 19988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 19998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Platform Communications Channel Table (PCCT) 20008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 20028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_DESCRIPTION_HEADER Header; 20038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Flags; 20048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 Reserved; 20058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL_TABLE_HEADER; 20068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// PCCT Version (as defined in ACPI 6.0 spec.) 20098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL_TABLE_REVISION 0x01 20118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// PCCT Global Flags 20148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCCT_FLAGS_SCI_DOORBELL BIT0 20168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 20188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// PCCT Subspace type 20198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 20208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_GENERIC 0x00 20218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// PCC Subspace Structure Header 20248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 20268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 20278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 20288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PCCT_SUBSPACE_HEADER; 20298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Generic Communications Subspace Structure 20328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 20348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Type; 20358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Length; 20368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved[6]; 20378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 BaseAddress; 20388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 AddressLength; 20398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister; 20408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 DoorbellPreserve; 20418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT64 DoorbellWrite; 20428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 NominalLatency; 20438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 MaximumPeriodicAccessRate; 20448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT16 MinimumRequestTurnaroundTime; 20458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PCCT_SUBSPACE_GENERIC; 20468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// Generic Communications Channel Shared Memory Region 20498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 20528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Command; 20538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved:7; 20548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 GenerateSci:1; 20558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND; 20568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 20588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 CommandComplete:1; 20598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 SciDoorbell:1; 20608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Error:1; 20618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 PlatformNotification:1; 20628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved:4; 20638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT8 Reserved1; 20648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS; 20658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewentypedef struct { 20678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen UINT32 Signature; 20688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND Command; 20698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS Status; 20708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen} EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER; 20718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 20738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// Known table signatures 20748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen// 20758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "RSD PTR " Root System Description Pointer 20788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ') 20808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "APIC" Multiple APIC Description Table 20838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C') 20858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "BERT" Boot Error Record Table 20888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T') 20908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "BGRT" Boot Graphics Resource Table 20938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('B', 'G', 'R', 'T') 20958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 20968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "CPEP" Corrected Platform Error Polling Table 20988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 20998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P') 21008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "DSDT" Differentiated System Description Table 21038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T') 21058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "ECDT" Embedded Controller Boot Resources Table 21088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T') 21108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "EINJ" Error Injection Table 21138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J') 21158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "ERST" Error Record Serialization Table 21188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T') 21208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "FACP" Fixed ACPI Description Table 21238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P') 21258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "FACS" Firmware ACPI Control Structure 21288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S') 21308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "FPDT" Firmware Performance Data Table 21338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_DATA_TABLE_SIGNATURE SIGNATURE_32('F', 'P', 'D', 'T') 21358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "GTDT" Generic Timer Description Table 21388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('G', 'T', 'D', 'T') 21408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "HEST" Hardware Error Source Table 21438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T') 21458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "MPST" Memory Power State Table 21488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MEMORY_POWER_STATE_TABLE_SIGNATURE SIGNATURE_32('M', 'P', 'S', 'T') 21508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "MSCT" Maximum System Characteristics Table 21538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T') 21558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "NFIT" NVDIMM Firmware Interface Table 21588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('N', 'F', 'I', 'T') 21608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "PMTT" Platform Memory Topology Table 21638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PLATFORM_MEMORY_TOPOLOGY_TABLE_SIGNATURE SIGNATURE_32('P', 'M', 'T', 'T') 21658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "PSDT" Persistent System Description Table 21688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T') 21708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "RASF" ACPI RAS Feature Table 21738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ACPI_RAS_FEATURE_TABLE_SIGNATURE SIGNATURE_32('R', 'A', 'S', 'F') 21758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "RSDT" Root System Description Table 21788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T') 21808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "SBST" Smart Battery Specification Table 21838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T') 21858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "SLIT" System Locality Information Table 21888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T') 21908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "SRAT" System Resource Affinity Table 21938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T') 21958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 21968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "SSDT" Secondary System Description Table 21988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 21998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T') 22008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "XSDT" Extended System Description Table 22038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T') 22058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "BOOT" MS Simple Boot Spec 22088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T') 22108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "CSRT" MS Core System Resource Table 22138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_CORE_SYSTEM_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('C', 'S', 'R', 'T') 22158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "DBG2" MS Debug Port 2 Spec 22188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DEBUG_PORT_2_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', '2') 22208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "DBGP" MS Debug Port Spec 22238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P') 22258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "DMAR" DMA Remapping Table 22288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R') 22308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "DRTM" Dynamic Root of Trust for Measurement Table 22338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DYNAMIC_ROOT_OF_TRUST_FOR_MEASUREMENT_TABLE_SIGNATURE SIGNATURE_32('D', 'R', 'T', 'M') 22358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "ETDT" Event Timer Description Table 22388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T') 22408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "HPET" IA-PC High Precision Event Timer Table 22438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22448508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T') 22458508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22468508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22478508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "iBFT" iSCSI Boot Firmware Table 22488508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22498508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T') 22508508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22518508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22528508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "IORT" Interrupt Source Override 22538508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22548508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE_SIGNATURE SIGNATURE_32('I', 'O', 'R', 'T') 22558508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22568508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22578508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "IVRS" I/O Virtualization Reporting Structure 22588508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22598508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S') 22608508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22618508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22628508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "LPIT" Low Power Idle Table 22638508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22648508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_LOW_POWER_IDLE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('L', 'P', 'I', 'T') 22658508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22668508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22678508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table 22688508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22698508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G') 22708508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22718508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22728508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "MCHI" Management Controller Host Interface Table 22738508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22748508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I') 22758508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22768508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22778508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "MSDM" MS Data Management Table 22788508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22798508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M') 22808508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22818508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22828508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "SLIC" MS Software Licensing Table Specification 22838508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22848508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C') 22858508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22868508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22878508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "SPCR" Serial Port Concole Redirection Table 22888508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22898508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R') 22908508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22918508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22928508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "SPMI" Server Platform Management Interface Table 22938508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22948508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I') 22958508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 22968508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22978508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "STAO" _STA Override Table 22988508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 22998508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_STA_OVERRIDE_TABLE_SIGNATURE SIGNATURE_32('S', 'T', 'A', 'O') 23008508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23018508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23028508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "TCPA" Trusted Computing Platform Alliance Capabilities Table 23038508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23048508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A') 23058508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23068508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23078508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "TPM2" Trusted Computing Platform 1 Table 23088508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23098508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_TRUSTED_COMPUTING_PLATFORM_2_TABLE_SIGNATURE SIGNATURE_32('T', 'P', 'M', '2') 23108508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23118508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23128508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "UEFI" UEFI ACPI Data Table 23138508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23148508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I') 23158508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23168508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23178508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "WAET" Windows ACPI Emulated Devices Table 23188508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23198508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_WINDOWS_ACPI_EMULATED_DEVICES_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T') 23208508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23218508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23228508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "WDAT" Watchdog Action Table 23238508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23248508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T') 23258508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23268508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23278508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "WDRT" Watchdog Resource Table 23288508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23298508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T') 23308508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23318508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23328508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "WPBT" MS Platform Binary Table 23338508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23348508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_PLATFORM_BINARY_TABLE_SIGNATURE SIGNATURE_32('W', 'P', 'B', 'T') 23358508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23368508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23378508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// "XENV" Xen Project Table 23388508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen/// 23398508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#define EFI_ACPI_6_0_XEN_PROJECT_TABLE_SIGNATURE SIGNATURE_32('X', 'E', 'N', 'V') 23408508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23418508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#pragma pack() 23428508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen 23438508fe58c4f25a27c18c56027b768a9525fc7eddYao, Jiewen#endif 2344