130fdf1140b8d1ce93f3821d986fa165552023440lgao/** @file
230fdf1140b8d1ce93f3821d986fa165552023440lgao  ACPI 2.0 definitions from the ACPI Specification, revision 2.0
330fdf1140b8d1ce93f3821d986fa165552023440lgao
497fa0ee9b1cffbb4b97ee35365afa7afcf50e174Yingke Liu  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
530fdf1140b8d1ce93f3821d986fa165552023440lgao
630fdf1140b8d1ce93f3821d986fa165552023440lgao  This program and the accompanying materials are licensed and made available
730fdf1140b8d1ce93f3821d986fa165552023440lgao  under the terms and conditions of the BSD License which accompanies this
897fa0ee9b1cffbb4b97ee35365afa7afcf50e174Yingke Liu  distribution.  The full text of the license may be found at
930fdf1140b8d1ce93f3821d986fa165552023440lgao    http://opensource.org/licenses/bsd-license.php
1030fdf1140b8d1ce93f3821d986fa165552023440lgao
1130fdf1140b8d1ce93f3821d986fa165552023440lgao  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
1230fdf1140b8d1ce93f3821d986fa165552023440lgao  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
1330fdf1140b8d1ce93f3821d986fa165552023440lgao
1430fdf1140b8d1ce93f3821d986fa165552023440lgao**/
1530fdf1140b8d1ce93f3821d986fa165552023440lgao
1630fdf1140b8d1ce93f3821d986fa165552023440lgao#ifndef _ACPI_2_0_H_
1730fdf1140b8d1ce93f3821d986fa165552023440lgao#define _ACPI_2_0_H_
1830fdf1140b8d1ce93f3821d986fa165552023440lgao
1930fdf1140b8d1ce93f3821d986fa165552023440lgao#include "IndustryStandard/Acpi.h"
2030fdf1140b8d1ce93f3821d986fa165552023440lgao
2130fdf1140b8d1ce93f3821d986fa165552023440lgao//
2230fdf1140b8d1ce93f3821d986fa165552023440lgao// Ensure proper structure formats
2330fdf1140b8d1ce93f3821d986fa165552023440lgao//
2430fdf1140b8d1ce93f3821d986fa165552023440lgao#pragma pack(1)
2530fdf1140b8d1ce93f3821d986fa165552023440lgao//
2630fdf1140b8d1ce93f3821d986fa165552023440lgao// ACPI Specification Revision
2730fdf1140b8d1ce93f3821d986fa165552023440lgao//
2830fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_REVISION 0x02
2930fdf1140b8d1ce93f3821d986fa165552023440lgao
3030fdf1140b8d1ce93f3821d986fa165552023440lgao//
3130fdf1140b8d1ce93f3821d986fa165552023440lgao// BUGBUG: OEM values need to be moved somewhere else, probably read from data hub
3230fdf1140b8d1ce93f3821d986fa165552023440lgao// and produced by a platform specific driver.
3330fdf1140b8d1ce93f3821d986fa165552023440lgao//
3430fdf1140b8d1ce93f3821d986fa165552023440lgao//
3530fdf1140b8d1ce93f3821d986fa165552023440lgao// ACPI OEM ID
3630fdf1140b8d1ce93f3821d986fa165552023440lgao//
3730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_OEM_ID       "INTEL "
3830fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_OEM_TABLE_ID 0x5034303738543245  // "E2T8704P"
3930fdf1140b8d1ce93f3821d986fa165552023440lgao//
4030fdf1140b8d1ce93f3821d986fa165552023440lgao// ACPI OEM Revision
4130fdf1140b8d1ce93f3821d986fa165552023440lgao//
4230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_OEM_REVISION 0x00000002
4330fdf1140b8d1ce93f3821d986fa165552023440lgao
4430fdf1140b8d1ce93f3821d986fa165552023440lgao//
4530fdf1140b8d1ce93f3821d986fa165552023440lgao// ACPI table creator ID
4630fdf1140b8d1ce93f3821d986fa165552023440lgao//
4730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_CREATOR_ID 0x5446534D  // TBD "MSFT"
4830fdf1140b8d1ce93f3821d986fa165552023440lgao//
4930fdf1140b8d1ce93f3821d986fa165552023440lgao// ACPI table creator revision
5030fdf1140b8d1ce93f3821d986fa165552023440lgao//
5130fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_CREATOR_REVISION 0x01000013  // TBD
5230fdf1140b8d1ce93f3821d986fa165552023440lgao//
5330fdf1140b8d1ce93f3821d986fa165552023440lgao// ACPI 2.0 Generic Address Space definition
5430fdf1140b8d1ce93f3821d986fa165552023440lgao//
5530fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
5630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   AddressSpaceId;
5730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   RegisterBitWidth;
5830fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   RegisterBitOffset;
5930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Reserved;
6030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT64  Address;
6130fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE;
6230fdf1140b8d1ce93f3821d986fa165552023440lgao
6330fdf1140b8d1ce93f3821d986fa165552023440lgao//
6430fdf1140b8d1ce93f3821d986fa165552023440lgao// Generic Address Space Address IDs
6530fdf1140b8d1ce93f3821d986fa165552023440lgao//
6630fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SYSTEM_MEMORY              0
6730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SYSTEM_IO                  1
6830fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_PCI_CONFIGURATION_SPACE    2
6930fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER        3
7030fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SMBUS                      4
7130fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_FUNCTIONAL_FIXED_HARDWARE  0x7F
7230fdf1140b8d1ce93f3821d986fa165552023440lgao
7330fdf1140b8d1ce93f3821d986fa165552023440lgao//
7430fdf1140b8d1ce93f3821d986fa165552023440lgao// ACPI 2.0 table structures
7530fdf1140b8d1ce93f3821d986fa165552023440lgao//
7630fdf1140b8d1ce93f3821d986fa165552023440lgao//
7730fdf1140b8d1ce93f3821d986fa165552023440lgao// Root System Description Pointer Structure
7830fdf1140b8d1ce93f3821d986fa165552023440lgao//
7930fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
8030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT64  Signature;
8130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Checksum;
8230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   OemId[6];
8330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Revision;
8430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  RsdtAddress;
8530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Length;
8630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT64  XsdtAddress;
8730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   ExtendedChecksum;
8830fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Reserved[3];
8930fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
9030fdf1140b8d1ce93f3821d986fa165552023440lgao
9130fdf1140b8d1ce93f3821d986fa165552023440lgao//
9230fdf1140b8d1ce93f3821d986fa165552023440lgao// RSD_PTR Revision (as defined in ACPI 2.0 spec.)
9330fdf1140b8d1ce93f3821d986fa165552023440lgao//
9430fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02
9530fdf1140b8d1ce93f3821d986fa165552023440lgao
9630fdf1140b8d1ce93f3821d986fa165552023440lgao//
9730fdf1140b8d1ce93f3821d986fa165552023440lgao// Common table header, this prefaces all ACPI tables, including FACS, but
9830fdf1140b8d1ce93f3821d986fa165552023440lgao// excluding the RSD PTR structure
9930fdf1140b8d1ce93f3821d986fa165552023440lgao//
10030fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
10130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Signature;
10230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Length;
10330fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_COMMON_HEADER;
10430fdf1140b8d1ce93f3821d986fa165552023440lgao
10530fdf1140b8d1ce93f3821d986fa165552023440lgao//
10630fdf1140b8d1ce93f3821d986fa165552023440lgao// Root System Description Table
10730fdf1140b8d1ce93f3821d986fa165552023440lgao// No definition needed as it is a common description table header followed by a
10830fdf1140b8d1ce93f3821d986fa165552023440lgao// variable number of UINT32 table pointers.
10930fdf1140b8d1ce93f3821d986fa165552023440lgao//
11030fdf1140b8d1ce93f3821d986fa165552023440lgao//
11130fdf1140b8d1ce93f3821d986fa165552023440lgao// RSDT Revision (as defined in ACPI 2.0 spec.)
11230fdf1140b8d1ce93f3821d986fa165552023440lgao//
11330fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
11430fdf1140b8d1ce93f3821d986fa165552023440lgao
11530fdf1140b8d1ce93f3821d986fa165552023440lgao//
11630fdf1140b8d1ce93f3821d986fa165552023440lgao// Extended System Description Table
11730fdf1140b8d1ce93f3821d986fa165552023440lgao// No definition needed as it is a common description table header followed by a
11830fdf1140b8d1ce93f3821d986fa165552023440lgao// variable number of UINT64 table pointers.
11930fdf1140b8d1ce93f3821d986fa165552023440lgao//
12030fdf1140b8d1ce93f3821d986fa165552023440lgao//
12130fdf1140b8d1ce93f3821d986fa165552023440lgao// XSDT Revision (as defined in ACPI 2.0 spec.)
12230fdf1140b8d1ce93f3821d986fa165552023440lgao//
12330fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
12430fdf1140b8d1ce93f3821d986fa165552023440lgao
12530fdf1140b8d1ce93f3821d986fa165552023440lgao//
12630fdf1140b8d1ce93f3821d986fa165552023440lgao// Fixed ACPI Description Table Structure (FADT)
12730fdf1140b8d1ce93f3821d986fa165552023440lgao//
12830fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
12930fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_DESCRIPTION_HEADER             Header;
13030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  FirmwareCtrl;
13130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Dsdt;
13230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Reserved0;
13330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   PreferredPmProfile;
13430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16                                  SciInt;
13530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  SmiCmd;
13630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   AcpiEnable;
13730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   AcpiDisable;
13830fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   S4BiosReq;
13930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   PstateCnt;
14030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Pm1aEvtBlk;
14130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Pm1bEvtBlk;
14230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Pm1aCntBlk;
14330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Pm1bCntBlk;
14430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Pm2CntBlk;
14530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  PmTmrBlk;
14630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Gpe0Blk;
14730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Gpe1Blk;
14830fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Pm1EvtLen;
14930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Pm1CntLen;
15030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Pm2CntLen;
15130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   PmTmrLen;
15230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Gpe0BlkLen;
15330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Gpe1BlkLen;
15430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Gpe1Base;
15530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   CstCnt;
15630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16                                  PLvl2Lat;
15730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16                                  PLvl3Lat;
15830fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16                                  FlushSize;
15930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16                                  FlushStride;
16030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   DutyOffset;
16130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   DutyWidth;
16230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   DayAlrm;
16330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   MonAlrm;
16430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Century;
16530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16                                  IaPcBootArch;
16630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Reserved1;
16730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Flags;
16830fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  ResetReg;
16930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   ResetValue;
17030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   Reserved2[3];
17130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT64                                  XFirmwareCtrl;
17230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT64                                  XDsdt;
17330fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm1aEvtBlk;
17430fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm1bEvtBlk;
17530fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm1aCntBlk;
17630fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm1bCntBlk;
17730fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPm2CntBlk;
17830fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XPmTmrBlk;
17930fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XGpe0Blk;
18030fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  XGpe1Blk;
18130fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE;
18230fdf1140b8d1ce93f3821d986fa165552023440lgao
18330fdf1140b8d1ce93f3821d986fa165552023440lgao//
18430fdf1140b8d1ce93f3821d986fa165552023440lgao// FADT Version (as defined in ACPI 2.0 spec.)
18530fdf1140b8d1ce93f3821d986fa165552023440lgao//
18630fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION  0x03
18730fdf1140b8d1ce93f3821d986fa165552023440lgao
18830fdf1140b8d1ce93f3821d986fa165552023440lgao//
18930fdf1140b8d1ce93f3821d986fa165552023440lgao// Fixed ACPI Description Table Boot Architecture Flags
19030fdf1140b8d1ce93f3821d986fa165552023440lgao// All other bits are reserved and must be set to 0.
19130fdf1140b8d1ce93f3821d986fa165552023440lgao//
19230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_LEGACY_DEVICES (1 << 0)
19330fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_8042           (1 << 1)
19430fdf1140b8d1ce93f3821d986fa165552023440lgao
19530fdf1140b8d1ce93f3821d986fa165552023440lgao//
19630fdf1140b8d1ce93f3821d986fa165552023440lgao// Fixed ACPI Description Table Fixed Feature Flags
19730fdf1140b8d1ce93f3821d986fa165552023440lgao// All other bits are reserved and must be set to 0.
19830fdf1140b8d1ce93f3821d986fa165552023440lgao//
19930fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_WBINVD         (1 << 0)
20030fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_WBINVD_FLUSH   (1 << 1)
20130fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_PROC_C1        (1 << 2)
20230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_P_LVL2_UP      (1 << 3)
20330fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_PWR_BUTTON     (1 << 4)
20430fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SLP_BUTTON     (1 << 5)
20530fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_FIX_RTC        (1 << 6)
20630fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_RTC_S4         (1 << 7)
20730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_TMR_VAL_EXT    (1 << 8)
20830fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_DCK_CAP        (1 << 9)
20930fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_RESET_REG_SUP  (1 << 10)
21030fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SEALED_CASE    (1 << 11)
21130fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_HEADLESS       (1 << 12)
21230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_CPU_SW_SLP     (1 << 13)
21330fdf1140b8d1ce93f3821d986fa165552023440lgao
21430fdf1140b8d1ce93f3821d986fa165552023440lgao//
21530fdf1140b8d1ce93f3821d986fa165552023440lgao// Firmware ACPI Control Structure
21630fdf1140b8d1ce93f3821d986fa165552023440lgao//
21730fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
21830fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Signature;
21930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Length;
22030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  HardwareSignature;
22130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  FirmwareWakingVector;
22230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  GlobalLock;
22330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Flags;
22430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT64  XFirmwareWakingVector;
22530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Version;
22630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Reserved[31];
22730fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
22830fdf1140b8d1ce93f3821d986fa165552023440lgao
22930fdf1140b8d1ce93f3821d986fa165552023440lgao//
23030fdf1140b8d1ce93f3821d986fa165552023440lgao// FACS Version (as defined in ACPI 2.0 spec.)
23130fdf1140b8d1ce93f3821d986fa165552023440lgao//
23230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION  0x01
23330fdf1140b8d1ce93f3821d986fa165552023440lgao
23430fdf1140b8d1ce93f3821d986fa165552023440lgao//
23530fdf1140b8d1ce93f3821d986fa165552023440lgao// Firmware Control Structure Feature Flags
23630fdf1140b8d1ce93f3821d986fa165552023440lgao// All other bits are reserved and must be set to 0.
23730fdf1140b8d1ce93f3821d986fa165552023440lgao//
23830fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_S4BIOS_F (1 << 0)
23930fdf1140b8d1ce93f3821d986fa165552023440lgao
24030fdf1140b8d1ce93f3821d986fa165552023440lgao//
24130fdf1140b8d1ce93f3821d986fa165552023440lgao// Multiple APIC Description Table header definition.  The rest of the table
24230fdf1140b8d1ce93f3821d986fa165552023440lgao// must be defined in a platform specific manner.
24330fdf1140b8d1ce93f3821d986fa165552023440lgao//
24430fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
24530fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_DESCRIPTION_HEADER Header;
24630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                      LocalApicAddress;
24730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                      Flags;
24830fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
24930fdf1140b8d1ce93f3821d986fa165552023440lgao
25030fdf1140b8d1ce93f3821d986fa165552023440lgao//
25130fdf1140b8d1ce93f3821d986fa165552023440lgao// MADT Revision (as defined in ACPI 2.0 spec.)
25230fdf1140b8d1ce93f3821d986fa165552023440lgao//
25330fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
25430fdf1140b8d1ce93f3821d986fa165552023440lgao
25530fdf1140b8d1ce93f3821d986fa165552023440lgao//
25630fdf1140b8d1ce93f3821d986fa165552023440lgao// Multiple APIC Flags
25730fdf1140b8d1ce93f3821d986fa165552023440lgao// All other bits are reserved and must be set to 0.
25830fdf1140b8d1ce93f3821d986fa165552023440lgao//
25930fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_PCAT_COMPAT  (1 << 0)
26030fdf1140b8d1ce93f3821d986fa165552023440lgao
26130fdf1140b8d1ce93f3821d986fa165552023440lgao//
26230fdf1140b8d1ce93f3821d986fa165552023440lgao// Multiple APIC Description Table APIC structure types
26330fdf1140b8d1ce93f3821d986fa165552023440lgao// All other values between 0x09 an 0xFF are reserved and
26430fdf1140b8d1ce93f3821d986fa165552023440lgao// will be ignored by OSPM.
26530fdf1140b8d1ce93f3821d986fa165552023440lgao//
26630fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC           0x00
26730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_IO_APIC                        0x01
26830fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE      0x02
26930fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE  0x03
27030fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_LOCAL_APIC_NMI                 0x04
27130fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE    0x05
27230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_IO_SAPIC                       0x06
27330fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC          0x07
27430fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES     0x08
27530fdf1140b8d1ce93f3821d986fa165552023440lgao
27630fdf1140b8d1ce93f3821d986fa165552023440lgao//
27730fdf1140b8d1ce93f3821d986fa165552023440lgao// APIC Structure Definitions
27830fdf1140b8d1ce93f3821d986fa165552023440lgao//
27930fdf1140b8d1ce93f3821d986fa165552023440lgao//
28030fdf1140b8d1ce93f3821d986fa165552023440lgao// Processor Local APIC Structure Definition
28130fdf1140b8d1ce93f3821d986fa165552023440lgao//
28230fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
28330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
28430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
28530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   AcpiProcessorId;
28630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   ApicId;
28730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Flags;
28830fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
28930fdf1140b8d1ce93f3821d986fa165552023440lgao
29030fdf1140b8d1ce93f3821d986fa165552023440lgao//
29130fdf1140b8d1ce93f3821d986fa165552023440lgao// Local APIC Flags.  All other bits are reserved and must be 0.
29230fdf1140b8d1ce93f3821d986fa165552023440lgao//
29330fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_LOCAL_APIC_ENABLED (1 << 0)
29430fdf1140b8d1ce93f3821d986fa165552023440lgao
29530fdf1140b8d1ce93f3821d986fa165552023440lgao//
29630fdf1140b8d1ce93f3821d986fa165552023440lgao// IO APIC Structure
29730fdf1140b8d1ce93f3821d986fa165552023440lgao//
29830fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
29930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
30030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
30130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   IoApicId;
30230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Reserved;
30330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  IoApicAddress;
30430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  GlobalSystemInterruptBase;
30530fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_IO_APIC_STRUCTURE;
30630fdf1140b8d1ce93f3821d986fa165552023440lgao
30730fdf1140b8d1ce93f3821d986fa165552023440lgao//
30830fdf1140b8d1ce93f3821d986fa165552023440lgao// Interrupt Source Override Structure
30930fdf1140b8d1ce93f3821d986fa165552023440lgao//
31030fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
31130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
31230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
31330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Bus;
31430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Source;
31530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  GlobalSystemInterrupt;
31630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16  Flags;
31730fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
31830fdf1140b8d1ce93f3821d986fa165552023440lgao
31930fdf1140b8d1ce93f3821d986fa165552023440lgao//
32030fdf1140b8d1ce93f3821d986fa165552023440lgao// Non-Maskable Interrupt Source Structure
32130fdf1140b8d1ce93f3821d986fa165552023440lgao//
32230fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
32330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
32430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
32530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16  Flags;
32630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  GlobalSystemInterrupt;
32730fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
32830fdf1140b8d1ce93f3821d986fa165552023440lgao
32930fdf1140b8d1ce93f3821d986fa165552023440lgao//
33030fdf1140b8d1ce93f3821d986fa165552023440lgao// Local APIC NMI Structure
33130fdf1140b8d1ce93f3821d986fa165552023440lgao//
33230fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
33330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
33430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
33530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   AcpiProcessorId;
33630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16  Flags;
33730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   LocalApicLint;
33830fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE;
33930fdf1140b8d1ce93f3821d986fa165552023440lgao
34030fdf1140b8d1ce93f3821d986fa165552023440lgao//
34130fdf1140b8d1ce93f3821d986fa165552023440lgao// Local APIC Address Override Structure
34230fdf1140b8d1ce93f3821d986fa165552023440lgao//
34330fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
34430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
34530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
34630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16  Reserved;
34730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT64  LocalApicAddress;
34830fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
34930fdf1140b8d1ce93f3821d986fa165552023440lgao
35030fdf1140b8d1ce93f3821d986fa165552023440lgao//
35130fdf1140b8d1ce93f3821d986fa165552023440lgao// IO SAPIC Structure
35230fdf1140b8d1ce93f3821d986fa165552023440lgao//
35330fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
35430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
35530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
35630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   IoApicId;
35730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Reserved;
35830fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  GlobalSystemInterruptBase;
35930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT64  IoSapicAddress;
36030fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_IO_SAPIC_STRUCTURE;
36130fdf1140b8d1ce93f3821d986fa165552023440lgao
36230fdf1140b8d1ce93f3821d986fa165552023440lgao//
36330fdf1140b8d1ce93f3821d986fa165552023440lgao// Local SAPIC Structure
36430fdf1140b8d1ce93f3821d986fa165552023440lgao//
36530fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
36630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
36730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
36830fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   AcpiProcessorId;
36930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   LocalSapicId;
37030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   LocalSapicEid;
37130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Reserved[3];
37230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Flags;
37330fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
37430fdf1140b8d1ce93f3821d986fa165552023440lgao
37530fdf1140b8d1ce93f3821d986fa165552023440lgao//
37630fdf1140b8d1ce93f3821d986fa165552023440lgao// Platform Interrupt Sources Structure
37730fdf1140b8d1ce93f3821d986fa165552023440lgao//
37830fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
37930fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Type;
38030fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   Length;
38130fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT16  Flags;
38230fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   InterruptType;
38330fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   ProcessorId;
38430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   ProcessorEid;
38530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8   IoSapicVector;
38630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  GlobalSystemInterrupt;
38730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32  Reserved;
38830fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
38930fdf1140b8d1ce93f3821d986fa165552023440lgao
39030fdf1140b8d1ce93f3821d986fa165552023440lgao//
39130fdf1140b8d1ce93f3821d986fa165552023440lgao// Smart Battery Description Table (SBST)
39230fdf1140b8d1ce93f3821d986fa165552023440lgao//
39330fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
39430fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_DESCRIPTION_HEADER Header;
39530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                      WarningEnergyLevel;
39630fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                      LowEnergyLevel;
39730fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                      CriticalEnergyLevel;
39830fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE;
39930fdf1140b8d1ce93f3821d986fa165552023440lgao
40030fdf1140b8d1ce93f3821d986fa165552023440lgao//
40130fdf1140b8d1ce93f3821d986fa165552023440lgao// SBST Version (as defined in ACPI 2.0 spec.)
40230fdf1140b8d1ce93f3821d986fa165552023440lgao//
40330fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
40430fdf1140b8d1ce93f3821d986fa165552023440lgao
40530fdf1140b8d1ce93f3821d986fa165552023440lgao//
40630fdf1140b8d1ce93f3821d986fa165552023440lgao// Embedded Controller Boot Resources Table (ECDT)
40730fdf1140b8d1ce93f3821d986fa165552023440lgao// The table is followed by a null terminated ASCII string that contains
40830fdf1140b8d1ce93f3821d986fa165552023440lgao// a fully qualified reference to the name space object.
40930fdf1140b8d1ce93f3821d986fa165552023440lgao//
41030fdf1140b8d1ce93f3821d986fa165552023440lgaotypedef struct {
41130fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_DESCRIPTION_HEADER             Header;
41230fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  EcControl;
41330fdf1140b8d1ce93f3821d986fa165552023440lgao  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  EcData;
41430fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT32                                  Uid;
41530fdf1140b8d1ce93f3821d986fa165552023440lgao  UINT8                                   GpeBit;
41630fdf1140b8d1ce93f3821d986fa165552023440lgao} EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
41730fdf1140b8d1ce93f3821d986fa165552023440lgao
41830fdf1140b8d1ce93f3821d986fa165552023440lgao//
41930fdf1140b8d1ce93f3821d986fa165552023440lgao// ECDT Version (as defined in ACPI 2.0 spec.)
42030fdf1140b8d1ce93f3821d986fa165552023440lgao//
42130fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION  0x01
42230fdf1140b8d1ce93f3821d986fa165552023440lgao
42330fdf1140b8d1ce93f3821d986fa165552023440lgao//
42430fdf1140b8d1ce93f3821d986fa165552023440lgao// Known table signatures
42530fdf1140b8d1ce93f3821d986fa165552023440lgao//
42630fdf1140b8d1ce93f3821d986fa165552023440lgao//
42730fdf1140b8d1ce93f3821d986fa165552023440lgao// "RSD PTR " Root System Description Pointer
42830fdf1140b8d1ce93f3821d986fa165552023440lgao//
42930fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE  0x2052545020445352
43030fdf1140b8d1ce93f3821d986fa165552023440lgao
43130fdf1140b8d1ce93f3821d986fa165552023440lgao//
43230fdf1140b8d1ce93f3821d986fa165552023440lgao// "SPIC" Multiple SAPIC Description Table
43330fdf1140b8d1ce93f3821d986fa165552023440lgao//
43430fdf1140b8d1ce93f3821d986fa165552023440lgao// BUGBUG: Don't know where this came from except SR870BN4 uses it.
43530fdf1140b8d1ce93f3821d986fa165552023440lgao// #define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE 0x43495053
43630fdf1140b8d1ce93f3821d986fa165552023440lgao//
43730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE 0x43495041
43830fdf1140b8d1ce93f3821d986fa165552023440lgao
43930fdf1140b8d1ce93f3821d986fa165552023440lgao//
44030fdf1140b8d1ce93f3821d986fa165552023440lgao// "BOOT" MS Simple Boot Spec
44130fdf1140b8d1ce93f3821d986fa165552023440lgao//
44230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE 0x544F4F42
44330fdf1140b8d1ce93f3821d986fa165552023440lgao
44430fdf1140b8d1ce93f3821d986fa165552023440lgao//
44530fdf1140b8d1ce93f3821d986fa165552023440lgao// "DBGP" MS Bebug Port Spec
44630fdf1140b8d1ce93f3821d986fa165552023440lgao//
44730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_DEBUG_PORT_TABLE_SIGNATURE 0x50474244
44830fdf1140b8d1ce93f3821d986fa165552023440lgao
44930fdf1140b8d1ce93f3821d986fa165552023440lgao//
45030fdf1140b8d1ce93f3821d986fa165552023440lgao// "DSDT" Differentiated System Description Table
45130fdf1140b8d1ce93f3821d986fa165552023440lgao//
45230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  0x54445344
45330fdf1140b8d1ce93f3821d986fa165552023440lgao
45430fdf1140b8d1ce93f3821d986fa165552023440lgao//
45530fdf1140b8d1ce93f3821d986fa165552023440lgao// "ECDT" Embedded Controller Boot Resources Table
45630fdf1140b8d1ce93f3821d986fa165552023440lgao//
45730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE 0x54444345
45830fdf1140b8d1ce93f3821d986fa165552023440lgao
45930fdf1140b8d1ce93f3821d986fa165552023440lgao//
46030fdf1140b8d1ce93f3821d986fa165552023440lgao// "ETDT" Event Timer Description Table
46130fdf1140b8d1ce93f3821d986fa165552023440lgao//
46230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE  0x54445445
46330fdf1140b8d1ce93f3821d986fa165552023440lgao
46430fdf1140b8d1ce93f3821d986fa165552023440lgao//
46530fdf1140b8d1ce93f3821d986fa165552023440lgao// "FACS" Firmware ACPI Control Structure
46630fdf1140b8d1ce93f3821d986fa165552023440lgao//
46730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE  0x53434146
46830fdf1140b8d1ce93f3821d986fa165552023440lgao
46930fdf1140b8d1ce93f3821d986fa165552023440lgao//
47030fdf1140b8d1ce93f3821d986fa165552023440lgao// "FACP" Fixed ACPI Description Table
47130fdf1140b8d1ce93f3821d986fa165552023440lgao//
47230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE 0x50434146
47330fdf1140b8d1ce93f3821d986fa165552023440lgao
47430fdf1140b8d1ce93f3821d986fa165552023440lgao//
47530fdf1140b8d1ce93f3821d986fa165552023440lgao// "APIC" Multiple APIC Description Table
47630fdf1140b8d1ce93f3821d986fa165552023440lgao//
47730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE  0x43495041
47830fdf1140b8d1ce93f3821d986fa165552023440lgao
47930fdf1140b8d1ce93f3821d986fa165552023440lgao//
48030fdf1140b8d1ce93f3821d986fa165552023440lgao// "PSDT" Persistent System Description Table
48130fdf1140b8d1ce93f3821d986fa165552023440lgao//
48230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  0x54445350
48330fdf1140b8d1ce93f3821d986fa165552023440lgao
48430fdf1140b8d1ce93f3821d986fa165552023440lgao//
48530fdf1140b8d1ce93f3821d986fa165552023440lgao// "RSDT" Root System Description Table
48630fdf1140b8d1ce93f3821d986fa165552023440lgao//
48730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  0x54445352
48830fdf1140b8d1ce93f3821d986fa165552023440lgao
48930fdf1140b8d1ce93f3821d986fa165552023440lgao//
49030fdf1140b8d1ce93f3821d986fa165552023440lgao// "SBST" Smart Battery Specification Table
49130fdf1140b8d1ce93f3821d986fa165552023440lgao//
49230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE  0x54534253
49330fdf1140b8d1ce93f3821d986fa165552023440lgao
49430fdf1140b8d1ce93f3821d986fa165552023440lgao//
49530fdf1140b8d1ce93f3821d986fa165552023440lgao// "SLIT" System Locality Information Table
49630fdf1140b8d1ce93f3821d986fa165552023440lgao//
49730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE  0x54494C53
49830fdf1140b8d1ce93f3821d986fa165552023440lgao
49930fdf1140b8d1ce93f3821d986fa165552023440lgao//
50030fdf1140b8d1ce93f3821d986fa165552023440lgao// "SPCR" Serial Port Concole Redirection Table
50130fdf1140b8d1ce93f3821d986fa165552023440lgao//
50230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE  0x52435053
50330fdf1140b8d1ce93f3821d986fa165552023440lgao
50430fdf1140b8d1ce93f3821d986fa165552023440lgao//
50530fdf1140b8d1ce93f3821d986fa165552023440lgao// "SRAT" Static Resource Affinity Table
50630fdf1140b8d1ce93f3821d986fa165552023440lgao//
50730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_STATIC_RESOURCE_AFFINITY_TABLE_SIGNATURE 0x54415253
50830fdf1140b8d1ce93f3821d986fa165552023440lgao
50930fdf1140b8d1ce93f3821d986fa165552023440lgao//
51030fdf1140b8d1ce93f3821d986fa165552023440lgao// "SSDT" Secondary System Description Table
51130fdf1140b8d1ce93f3821d986fa165552023440lgao//
51230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445353
51330fdf1140b8d1ce93f3821d986fa165552023440lgao
51430fdf1140b8d1ce93f3821d986fa165552023440lgao//
51530fdf1140b8d1ce93f3821d986fa165552023440lgao// "SPMI" Server Platform Management Interface Table
51630fdf1140b8d1ce93f3821d986fa165552023440lgao//
51730fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_SIGNATURE 0x494D5053
51830fdf1140b8d1ce93f3821d986fa165552023440lgao
51930fdf1140b8d1ce93f3821d986fa165552023440lgao//
52030fdf1140b8d1ce93f3821d986fa165552023440lgao// "XSDT" Extended System Description Table
52130fdf1140b8d1ce93f3821d986fa165552023440lgao//
52230fdf1140b8d1ce93f3821d986fa165552023440lgao#define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE  0x54445358
52330fdf1140b8d1ce93f3821d986fa165552023440lgao
52430fdf1140b8d1ce93f3821d986fa165552023440lgao#pragma pack()
52530fdf1140b8d1ce93f3821d986fa165552023440lgao
52630fdf1140b8d1ce93f3821d986fa165552023440lgao#endif
527