4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ACPI 2.0 definitions from the ACPI Specification, revision 2.0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _ACPI_2_0_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _ACPI_2_0_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <IndustryStandard/Acpi10.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Define for Desriptor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define ACPI_LARGE_GENERIC_REGISTER_DESCRIPTOR_NAME 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define ACPI_GENERIC_REGISTER_DESCRIPTOR 0x82
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Ensure proper structure formats
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack(1)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Generic Register Descriptor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef PACKED struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ACPI_LARGE_RESOURCE_HEADER Header;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AddressSpaceId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 RegisterBitWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 RegisterBitOffset;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AddressSize;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 RegisterAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_GENERIC_REGISTER_DESCRIPTOR;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Ensure proper structure formats
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack(1)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// ACPI 2.0 Generic Address Space definition
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AddressSpaceId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 RegisterBitWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 RegisterBitOffset;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Address;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Generic Address Space Address IDs
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SYSTEM_MEMORY 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SYSTEM_IO 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PCI_CONFIGURATION_SPACE 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SMBUS 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_FUNCTIONAL_FIXED_HARDWARE 0x7F
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// ACPI 2.0 table structures
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Root System Description Pointer Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Checksum;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 OemId[6];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Revision;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 RsdtAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 XsdtAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ExtendedChecksum;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved[3];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// RSD_PTR Revision (as defined in ACPI 2.0 spec.)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Common table header, this prefaces all ACPI tables, including FACS, but
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// excluding the RSD PTR structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_COMMON_HEADER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Root System Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// No definition needed as it is a common description table header, the same with
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// RSDT Revision (as defined in ACPI 2.0 spec.)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Extended System Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// No definition needed as it is a common description table header, the same with
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// XSDT Revision (as defined in ACPI 2.0 spec.)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Fixed ACPI Description Table Structure (FADT)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_DESCRIPTION_HEADER Header;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 FirmwareCtrl;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Dsdt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 PreferredPmProfile;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 SciInt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 SmiCmd;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AcpiEnable;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AcpiDisable;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 S4BiosReq;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 PstateCnt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Pm1aEvtBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Pm1bEvtBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Pm1aCntBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Pm1bCntBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Pm2CntBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 PmTmrBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Gpe0Blk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Gpe1Blk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Pm1EvtLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Pm1CntLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Pm2CntLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 PmTmrLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Gpe0BlkLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Gpe1BlkLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Gpe1Base;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 CstCnt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 PLvl2Lat;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 PLvl3Lat;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 FlushSize;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 FlushStride;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 DutyOffset;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 DutyWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 DayAlrm;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 MonAlrm;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Century;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 IaPcBootArch;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ResetValue;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved2[3];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 XFirmwareCtrl;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 XDsdt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// FADT Version (as defined in ACPI 2.0 spec.)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x03
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Fixed ACPI Description Table Preferred Power Management Profile
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PM_PROFILE_UNSPECIFIED 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PM_PROFILE_DESKTOP 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PM_PROFILE_MOBILE 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PM_PROFILE_WORKSTATION 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PM_PROFILE_ENTERPRISE_SERVER 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PM_PROFILE_SOHO_SERVER 5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PM_PROFILE_APPLIANCE_PC 6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Fixed ACPI Description Table Boot Architecture Flags
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// All other bits are reserved and must be set to 0.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_LEGACY_DEVICES BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_8042 BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Fixed ACPI Description Table Fixed Feature Flags
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// All other bits are reserved and must be set to 0.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_WBINVD BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_WBINVD_FLUSH BIT1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PROC_C1 BIT2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_P_LVL2_UP BIT3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PWR_BUTTON BIT4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SLP_BUTTON BIT5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_FIX_RTC BIT6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_RTC_S4 BIT7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_TMR_VAL_EXT BIT8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_DCK_CAP BIT9
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_RESET_REG_SUP BIT10
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SEALED_CASE BIT11
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_HEADLESS BIT12
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_CPU_SW_SLP BIT13
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Firmware ACPI Control Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 HardwareSignature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 FirmwareWakingVector;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 GlobalLock;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 XFirmwareWakingVector;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Version;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved[31];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// FACS Version (as defined in ACPI 2.0 spec.)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Firmware Control Structure Feature Flags
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// All other bits are reserved and must be set to 0.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_S4BIOS_F BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Multiple APIC Description Table header definition. The rest of the table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// must be defined in a platform specific manner.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_DESCRIPTION_HEADER Header;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 LocalApicAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// MADT Revision (as defined in ACPI 2.0 spec.)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Multiple APIC Flags
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// All other bits are reserved and must be set to 0.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PCAT_COMPAT BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Multiple APIC Description Table APIC structure types
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// All other values between 0x09 an 0xFF are reserved and
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// will be ignored by OSPM.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_IO_APIC 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE 0x02
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_LOCAL_APIC_NMI 0x04
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_IO_SAPIC 0x06
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC 0x07
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES 0x08
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// APIC Structure Definitions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Processor Local APIC Structure Definition
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AcpiProcessorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ApicId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Local APIC Flags. All other bits are reserved and must be 0.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_LOCAL_APIC_ENABLED BIT0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IO APIC Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 IoApicId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 IoApicAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 GlobalSystemInterruptBase;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_IO_APIC_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Interrupt Source Override Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Bus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Source;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 GlobalSystemInterrupt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Non-Maskable Interrupt Source Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 GlobalSystemInterrupt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Local APIC NMI Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AcpiProcessorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 LocalApicLint;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Local APIC Address Override Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Reserved;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 LocalApicAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// IO SAPIC Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 IoApicId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 GlobalSystemInterruptBase;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 IoSapicAddress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_IO_SAPIC_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Local SAPIC Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 AcpiProcessorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 LocalSapicId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 LocalSapicEid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Reserved[3];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Platform Interrupt Sources Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Length;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 InterruptType;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ProcessorId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ProcessorEid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 IoSapicVector;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 GlobalSystemInterrupt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Reserved;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Smart Battery Description Table (SBST)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_DESCRIPTION_HEADER Header;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 WarningEnergyLevel;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 LowEnergyLevel;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 CriticalEnergyLevel;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// SBST Version (as defined in ACPI 2.0 spec.)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Embedded Controller Boot Resources Table (ECDT)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The table is followed by a null terminated ASCII string that contains
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// a fully qualified reference to the name space object.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_DESCRIPTION_HEADER Header;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcControl;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE EcData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Uid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 GpeBit;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// ECDT Version (as defined in ACPI 2.0 spec.)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Known table signatures
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "RSD PTR " Root System Description Pointer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "SPIC" Multiple SAPIC Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// BUGBUG: Don't know where this came from except SR870BN4 uses it.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// #define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE 0x43495053
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "BOOT" MS Simple Boot Spec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "DBGP" MS Bebug Port Spec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "DSDT" Differentiated System Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "ECDT" Embedded Controller Boot Resources Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "ETDT" Event Timer Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "FACS" Firmware ACPI Control Structure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "FACP" Fixed ACPI Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "APIC" Multiple APIC Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "PSDT" Persistent System Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "RSDT" Root System Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "SBST" Smart Battery Specification Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "SLIT" System Locality Information Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "SPCR" Serial Port Concole Redirection Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "SRAT" Static Resource Affinity Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_STATIC_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "SSDT" Secondary System Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "SPMI" Server Platform Management Interface Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "XSDT" Extended System Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_ACPI_2_0_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#pragma pack()
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif