2 ACPI 1.0b definitions from the ACPI Specification, revision 1.0b
4 Copyright (c) 2006 - 2007 Intel Corporation. All rights reserved.
6 This program and the accompanying materials are licensed and made available
7 under the terms and conditions of the BSD License which accompanies this
8 distribution. The full text of the license may be found at:
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
21 #include "IndustryStandard/Acpi.h"
24 // Ensure proper structure formats
28 // ACPI 1.0b table structures
31 // Root System Description Pointer Structure
39 } EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER
;
42 // Root System Description Table
43 // No definition needed as it is a common description table header followed by a
44 // variable number of UINT32 table pointers.
47 // RSDT Revision (as defined in ACPI 1.0b spec.)
49 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
52 // Fixed ACPI Description Table Structure (FADT)
55 EFI_ACPI_DESCRIPTION_HEADER Header
;
95 } EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE
;
98 // FADT Version (as defined in ACPI 1.0b spec.)
100 #define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x01
103 // Fixed ACPI Description Table Fixed Feature Flags
104 // All other bits are reserved and must be set to 0.
106 #define EFI_ACPI_1_0_WBINVD (1 << 0)
107 #define EFI_ACPI_1_0_WBINVD_FLUSH (1 << 1)
108 #define EFI_ACPI_1_0_PROC_C1 (1 << 2)
109 #define EFI_ACPI_1_0_P_LVL2_UP (1 << 3)
110 #define EFI_ACPI_1_0_PWR_BUTTON (1 << 4)
111 #define EFI_ACPI_1_0_SLP_BUTTON (1 << 5)
112 #define EFI_ACPI_1_0_FIX_RTC (1 << 6)
113 #define EFI_ACPI_1_0_RTC_S4 (1 << 7)
114 #define EFI_ACPI_1_0_TMR_VAL_EXT (1 << 8)
115 #define EFI_ACPI_1_0_DCK_CAP (1 << 9)
118 // Firmware ACPI Control Structure
123 UINT32 HardwareSignature
;
124 UINT32 FirmwareWakingVector
;
128 } EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE
;
131 // Firmware Control Structure Feature Flags
132 // All other bits are reserved and must be set to 0.
134 #define EFI_ACPI_1_0_S4BIOS_F (1 << 0)
137 // Multiple APIC Description Table header definition. The rest of the table
138 // must be defined in a platform specific manner.
141 EFI_ACPI_DESCRIPTION_HEADER Header
;
142 UINT32 LocalApicAddress
;
144 } EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER
;
147 // MADT Revision (as defined in ACPI 1.0b spec.)
149 #define EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
152 // Multiple APIC Flags
153 // All other bits are reserved and must be set to 0.
155 #define EFI_ACPI_1_0_PCAT_COMPAT (1 << 0)
158 // Multiple APIC Description Table APIC structure types
159 // All other values between 0x09 an 0xFF are reserved and
160 // will be ignored by OSPM.
162 #define EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC 0x00
163 #define EFI_ACPI_1_0_IO_APIC 0x01
164 #define EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE 0x02
165 #define EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
166 #define EFI_ACPI_1_0_LOCAL_APIC_NMI 0x04
169 // APIC Structure Definitions
172 // Processor Local APIC Structure Definition
177 UINT8 AcpiProcessorId
;
180 } EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE
;
183 // Local APIC Flags. All other bits are reserved and must be 0.
185 #define EFI_ACPI_1_0_LOCAL_APIC_ENABLED (1 << 0)
195 UINT32 IoApicAddress
;
196 UINT32 SystemVectorBase
;
197 } EFI_ACPI_1_0_IO_APIC_STRUCTURE
;
200 // Interrupt Source Override Structure
207 UINT32 GlobalSystemInterruptVector
;
209 } EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE
;
212 // Non-Maskable Interrupt Source Structure
218 UINT32 GlobalSystemInterruptVector
;
219 } EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE
;
222 // Local APIC NMI Structure
227 UINT8 AcpiProcessorId
;
230 } EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE
;
233 // Smart Battery Description Table (SBST)
236 EFI_ACPI_DESCRIPTION_HEADER Header
;
237 UINT32 WarningEnergyLevel
;
238 UINT32 LowEnergyLevel
;
239 UINT32 CriticalEnergyLevel
;
240 } EFI_ACPI_1_0_SMART_BATTERY_DESCRIPTION_TABLE
;
243 // Known table signatures
246 // "RSD PTR " Root System Description Pointer
248 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE 0x2052545020445352ULL
251 // "APIC" Multiple APIC Description Table
253 #define EFI_ACPI_1_0_APIC_SIGNATURE 0x43495041
256 // "DSDT" Differentiated System Description Table
258 #define EFI_ACPI_1_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445344
261 // "FACS" Firmware ACPI Control Structure
263 #define EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE 0x53434146
266 // "FACP" Fixed ACPI Description Table
268 #define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE 0x50434146
271 // "PSDT" Persistent System Description Table
273 #define EFI_ACPI_1_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445350
276 // "RSDT" Root System Description Table
278 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445352
281 // "SBST" Smart Battery Specification Table
283 #define EFI_ACPI_1_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE 0x54534253
286 // "SSDT" Secondary System Description Table
288 #define EFI_ACPI_1_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445353