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)
117 #define EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x0
119 // Firmware ACPI Control Structure
124 UINT32 HardwareSignature
;
125 UINT32 FirmwareWakingVector
;
129 } EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE
;
132 // Firmware Control Structure Feature Flags
133 // All other bits are reserved and must be set to 0.
135 #define EFI_ACPI_1_0_S4BIOS_F (1 << 0)
138 // Multiple APIC Description Table header definition. The rest of the table
139 // must be defined in a platform specific manner.
142 EFI_ACPI_DESCRIPTION_HEADER Header
;
143 UINT32 LocalApicAddress
;
145 } EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER
;
148 // MADT Revision (as defined in ACPI 1.0b spec.)
150 #define EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
153 // Multiple APIC Flags
154 // All other bits are reserved and must be set to 0.
156 #define EFI_ACPI_1_0_PCAT_COMPAT (1 << 0)
159 // Multiple APIC Description Table APIC structure types
160 // All other values between 0x09 an 0xFF are reserved and
161 // will be ignored by OSPM.
163 #define EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC 0x00
164 #define EFI_ACPI_1_0_IO_APIC 0x01
165 #define EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE 0x02
166 #define EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
167 #define EFI_ACPI_1_0_LOCAL_APIC_NMI 0x04
170 // APIC Structure Definitions
173 // Processor Local APIC Structure Definition
178 UINT8 AcpiProcessorId
;
181 } EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE
;
184 // Local APIC Flags. All other bits are reserved and must be 0.
186 #define EFI_ACPI_1_0_LOCAL_APIC_ENABLED (1 << 0)
196 UINT32 IoApicAddress
;
197 UINT32 SystemVectorBase
;
198 } EFI_ACPI_1_0_IO_APIC_STRUCTURE
;
201 // Interrupt Source Override Structure
208 UINT32 GlobalSystemInterruptVector
;
210 } EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE
;
213 // Non-Maskable Interrupt Source Structure
219 UINT32 GlobalSystemInterruptVector
;
220 } EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE
;
223 // Local APIC NMI Structure
228 UINT8 AcpiProcessorId
;
231 } EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE
;
234 // Smart Battery Description Table (SBST)
237 EFI_ACPI_DESCRIPTION_HEADER Header
;
238 UINT32 WarningEnergyLevel
;
239 UINT32 LowEnergyLevel
;
240 UINT32 CriticalEnergyLevel
;
241 } EFI_ACPI_1_0_SMART_BATTERY_DESCRIPTION_TABLE
;
244 // Known table signatures
247 // "RSD PTR " Root System Description Pointer
249 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE 0x2052545020445352ULL
252 // "APIC" Multiple APIC Description Table
254 #define EFI_ACPI_1_0_APIC_SIGNATURE 0x43495041
257 // "DSDT" Differentiated System Description Table
259 #define EFI_ACPI_1_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445344
262 // "FACS" Firmware ACPI Control Structure
264 #define EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE 0x53434146
267 // "FACP" Fixed ACPI Description Table
269 #define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE 0x50434146
272 // "PSDT" Persistent System Description Table
274 #define EFI_ACPI_1_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445350
277 // "RSDT" Root System Description Table
279 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445352
282 // "SBST" Smart Battery Specification Table
284 #define EFI_ACPI_1_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE 0x54534253
287 // "SSDT" Secondary System Description Table
289 #define EFI_ACPI_1_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445353