/** @file
ACPI 3.0 definitions from the ACPI Specification Revision 3.0 September 2, 2004
Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
under the terms and conditions of the BSD License which accompanies this
distribution. The full text of the license may be found at:
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
File Name: Acpi3_0.h
**/
#ifndef _ACPI_3_0_H_
#define _ACPI_3_0_H_
#include "IndustryStandard/Acpi.h"
//
// Ensure proper structure formats
//
#pragma pack(1)
//
// ACPI Specification Revision
//
//
// BUGBUG: OEM values need to be moved somewhere else, probably read from data hub
// and produced by a platform specific driver.
//
//
// ACPI 3.0 Generic Address Space definition
//
typedef struct {
//
// Generic Address Space Address IDs
//
#define EFI_ACPI_3_0_SYSTEM_MEMORY 0
//
// Generic Address Space Access Sizes
//
#define EFI_ACPI_3_0_UNDEFINED 0
//
// ACPI 3.0 table structures
//
//
// Root System Description Pointer Structure
//
typedef struct {
//
// RSD_PTR Revision (as defined in ACPI 3.0 spec.)
//
#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 // ACPISpec30 (Revision 3.0 September 2, 2004) says current value is 2
//
// Common table header, this prefaces all ACPI tables, including FACS, but
// excluding the RSD PTR structure
//
typedef struct {
//
// Root System Description Table
// No definition needed as it is a common description table header followed by a
// variable number of UINT32 table pointers.
//
//
// RSDT Revision (as defined in ACPI 3.0 spec.)
//
//
// Extended System Description Table
// No definition needed as it is a common description table header followed by a
// variable number of UINT64 table pointers.
//
//
// XSDT Revision (as defined in ACPI 3.0 spec.)
//
//
// Fixed ACPI Description Table Structure (FADT)
//
typedef struct {
//
// FADT Version (as defined in ACPI 3.0 spec.)
//
//
// Fixed ACPI Description Table Preferred Power Management Profile
//
#define EFI_ACPI_3_0_PM_PROFILE_UNSPECIFIED 0
//
// Fixed ACPI Description Table Boot Architecture Flags
// All other bits are reserved and must be set to 0.
//
//
// Fixed ACPI Description Table Fixed Feature Flags
// All other bits are reserved and must be set to 0.
//
//
// Firmware ACPI Control Structure
//
typedef struct {
//
// FACS Version (as defined in ACPI 3.0 spec.)
//
//
// Firmware Control Structure Feature Flags
// All other bits are reserved and must be set to 0.
//
//
// Differentiated System Description Table,
// Secondary System Description Table
// and Persistent System Description Table,
// no definition needed as they are common description table header followed by a
// definition block.
//
//
// Multiple APIC Description Table header definition. The rest of the table
// must be defined in a platform specific manner.
//
typedef struct {
//
// MADT Revision (as defined in ACPI 3.0 spec.)
//
//
// Multiple APIC Flags
// All other bits are reserved and must be set to 0.
//
//
// Multiple APIC Description Table APIC structure types
// All other values between 0x09 an 0xFF are reserved and
// will be ignored by OSPM.
//
//
// APIC Structure Definitions
//
//
// Processor Local APIC Structure Definition
//
typedef struct {
//
// Local APIC Flags. All other bits are reserved and must be 0.
//
//
// IO APIC Structure
//
typedef struct {
//
// Interrupt Source Override Structure
//
typedef struct {
//
// Platform Interrupt Sources Structure Definition
//
typedef struct {
//
// MPS INTI flags.
// All other bits are reserved and must be set to 0.
//
//
// Non-Maskable Interrupt Source Structure
//
typedef struct {
//
// Local APIC NMI Structure
//
typedef struct {
//
// Local APIC Address Override Structure
//
typedef struct {
//
// IO SAPIC Structure
//
typedef struct {
//
// Local SAPIC Structure
// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
//
typedef struct {
//
// Platform Interrupt Sources Structure
//
typedef struct {
//
// Platform Interrupt Source Flags.
// All other bits are reserved and must be set to 0.
//
//
// Smart Battery Description Table (SBST)
//
typedef struct {
//
// SBST Version (as defined in ACPI 3.0 spec.)
//
//
// Embedded Controller Boot Resources Table (ECDT)
// The table is followed by a null terminated ASCII string that contains
// a fully qualified reference to the name space object.
//
typedef struct {
//
// ECDT Version (as defined in ACPI 3.0 spec.)
//
//
// System Resource Affinity Table (SRAT. The rest of the table
// must be defined in a platform specific manner.
//
typedef struct {
//
// SRAT Version (as defined in ACPI 3.0 spec.)
//
//
// SRAT structure types.
// All other values between 0x02 an 0xFF are reserved and
// will be ignored by OSPM.
//
//
//
typedef struct {
//
//
//
// Memory Affinity Structure Definition
//
typedef struct {
//
// Memory Flags. All other bits are reserved and must be 0.
//
//
// System Locality Distance Information Table (SLIT).
// The rest of the table is a matrix.
//
typedef struct {
//
// SLIT Version (as defined in ACPI 3.0 spec.)
//
//
// Known table signatures
//
//
// "RSD PTR " Root System Description Pointer
//
//
// "APIC" Multiple APIC Description Table
//
//
// "DSDT" Differentiated System Description Table
//
//
// "ECDT" Embedded Controller Boot Resources Table
//
//
// "FACP" Fixed ACPI Description Table
//
//
// "FACS" Firmware ACPI Control Structure
//
//
// "PSDT" Persistent System Description Table
//
//
// "RSDT" Root System Description Table
//
//
// "SBST" Smart Battery Specification Table
//
//
// "SLIT" System Locality Information Table
//
//
// "SRAT" System Resource Affinity Table
//
//
// "SSDT" Secondary System Description Table
//
//
// "XSDT" Extended System Description Table
//
//
// "BOOT" MS Simple Boot Spec
//
//
// "CPEP" Corrected Platform Error Polling Table
// See
//
//
// "DBGP" MS Debug Port Spec
//
//
// "ETDT" Event Timer Description Table
//
//
// "HPET" IA-PC High Precision Event Timer Table
//
//
// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
//
#define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE 0x4746434D
//
// "SPCR" Serial Port Concole Redirection Table
//
//
// "SPMI" Server Platform Management Interface Table
//
//
// "TCPA" Trusted Computing Platform Alliance Capabilities Table
//
//
// "WDRT" Watchdog Resource Table
//
#pragma pack()
#endif