]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/Include/IndustryStandard/Acpi1_0.h
942a2a35b3f2f41d3cc40b8b2d1f666661ad505a
[mirror_edk2.git] / BaseTools / Source / C / Include / IndustryStandard / Acpi1_0.h
1 /** @file
2 ACPI 1.0b definitions from the ACPI Specification, revision 1.0b
3
4 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
5
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
10
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.
13
14 **/
15
16 #ifndef _ACPI_1_0_H_
17 #define _ACPI_1_0_H_
18
19 #include "IndustryStandard/Acpi.h"
20
21 //
22 // Ensure proper structure formats
23 //
24 #pragma pack(1)
25 //
26 // ACPI 1.0b table structures
27 //
28 //
29 // Root System Description Pointer Structure
30 //
31 typedef struct {
32 UINT64 Signature;
33 UINT8 Checksum;
34 UINT8 OemId[6];
35 UINT8 Reserved;
36 UINT32 RsdtAddress;
37 } EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER;
38
39 //
40 // Root System Description Table
41 // No definition needed as it is a common description table header followed by a
42 // variable number of UINT32 table pointers.
43 //
44 //
45 // RSDT Revision (as defined in ACPI 1.0b spec.)
46 //
47 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
48
49 //
50 // Fixed ACPI Description Table Structure (FADT)
51 //
52 typedef struct {
53 EFI_ACPI_DESCRIPTION_HEADER Header;
54 UINT32 FirmwareCtrl;
55 UINT32 Dsdt;
56 UINT8 IntModel;
57 UINT8 Reserved1;
58 UINT16 SciInt;
59 UINT32 SmiCmd;
60 UINT8 AcpiEnable;
61 UINT8 AcpiDisable;
62 UINT8 S4BiosReq;
63 UINT8 Reserved2;
64 UINT32 Pm1aEvtBlk;
65 UINT32 Pm1bEvtBlk;
66 UINT32 Pm1aCntBlk;
67 UINT32 Pm1bCntBlk;
68 UINT32 Pm2CntBlk;
69 UINT32 PmTmrBlk;
70 UINT32 Gpe0Blk;
71 UINT32 Gpe1Blk;
72 UINT8 Pm1EvtLen;
73 UINT8 Pm1CntLen;
74 UINT8 Pm2CntLen;
75 UINT8 PmTmLen;
76 UINT8 Gpe0BlkLen;
77 UINT8 Gpe1BlkLen;
78 UINT8 Gpe1Base;
79 UINT8 Reserved3;
80 UINT16 PLvl2Lat;
81 UINT16 PLvl3Lat;
82 UINT16 FlushSize;
83 UINT16 FlushStride;
84 UINT8 DutyOffset;
85 UINT8 DutyWidth;
86 UINT8 DayAlrm;
87 UINT8 MonAlrm;
88 UINT8 Century;
89 UINT8 Reserved4;
90 UINT8 Reserved5;
91 UINT8 Reserved6;
92 UINT32 Flags;
93 } EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE;
94
95 //
96 // FADT Version (as defined in ACPI 1.0b spec.)
97 //
98 #define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x01
99
100 //
101 // Fixed ACPI Description Table Fixed Feature Flags
102 // All other bits are reserved and must be set to 0.
103 //
104 #define EFI_ACPI_1_0_WBINVD (1 << 0)
105 #define EFI_ACPI_1_0_WBINVD_FLUSH (1 << 1)
106 #define EFI_ACPI_1_0_PROC_C1 (1 << 2)
107 #define EFI_ACPI_1_0_P_LVL2_UP (1 << 3)
108 #define EFI_ACPI_1_0_PWR_BUTTON (1 << 4)
109 #define EFI_ACPI_1_0_SLP_BUTTON (1 << 5)
110 #define EFI_ACPI_1_0_FIX_RTC (1 << 6)
111 #define EFI_ACPI_1_0_RTC_S4 (1 << 7)
112 #define EFI_ACPI_1_0_TMR_VAL_EXT (1 << 8)
113 #define EFI_ACPI_1_0_DCK_CAP (1 << 9)
114
115 #define EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x0
116 //
117 // Firmware ACPI Control Structure
118 //
119 typedef struct {
120 UINT32 Signature;
121 UINT32 Length;
122 UINT32 HardwareSignature;
123 UINT32 FirmwareWakingVector;
124 UINT32 GlobalLock;
125 UINT32 Flags;
126 UINT8 Reserved[40];
127 } EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;
128
129 //
130 // Firmware Control Structure Feature Flags
131 // All other bits are reserved and must be set to 0.
132 //
133 #define EFI_ACPI_1_0_S4BIOS_F (1 << 0)
134
135 //
136 // Multiple APIC Description Table header definition. The rest of the table
137 // must be defined in a platform specific manner.
138 //
139 typedef struct {
140 EFI_ACPI_DESCRIPTION_HEADER Header;
141 UINT32 LocalApicAddress;
142 UINT32 Flags;
143 } EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;
144
145 //
146 // MADT Revision (as defined in ACPI 1.0b spec.)
147 //
148 #define EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x01
149
150 //
151 // Multiple APIC Flags
152 // All other bits are reserved and must be set to 0.
153 //
154 #define EFI_ACPI_1_0_PCAT_COMPAT (1 << 0)
155
156 //
157 // Multiple APIC Description Table APIC structure types
158 // All other values between 0x09 an 0xFF are reserved and
159 // will be ignored by OSPM.
160 //
161 #define EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC 0x00
162 #define EFI_ACPI_1_0_IO_APIC 0x01
163 #define EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE 0x02
164 #define EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
165 #define EFI_ACPI_1_0_LOCAL_APIC_NMI 0x04
166
167 //
168 // APIC Structure Definitions
169 //
170 //
171 // Processor Local APIC Structure Definition
172 //
173 typedef struct {
174 UINT8 Type;
175 UINT8 Length;
176 UINT8 AcpiProcessorId;
177 UINT8 ApicId;
178 UINT32 Flags;
179 } EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE;
180
181 //
182 // Local APIC Flags. All other bits are reserved and must be 0.
183 //
184 #define EFI_ACPI_1_0_LOCAL_APIC_ENABLED (1 << 0)
185
186 //
187 // IO APIC Structure
188 //
189 typedef struct {
190 UINT8 Type;
191 UINT8 Length;
192 UINT8 IoApicId;
193 UINT8 Reserved;
194 UINT32 IoApicAddress;
195 UINT32 SystemVectorBase;
196 } EFI_ACPI_1_0_IO_APIC_STRUCTURE;
197
198 //
199 // Interrupt Source Override Structure
200 //
201 typedef struct {
202 UINT8 Type;
203 UINT8 Length;
204 UINT8 Bus;
205 UINT8 Source;
206 UINT32 GlobalSystemInterruptVector;
207 UINT16 Flags;
208 } EFI_ACPI_1_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;
209
210 //
211 // Non-Maskable Interrupt Source Structure
212 //
213 typedef struct {
214 UINT8 Type;
215 UINT8 Length;
216 UINT16 Flags;
217 UINT32 GlobalSystemInterruptVector;
218 } EFI_ACPI_1_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;
219
220 //
221 // Local APIC NMI Structure
222 //
223 typedef struct {
224 UINT8 Type;
225 UINT8 Length;
226 UINT8 AcpiProcessorId;
227 UINT16 Flags;
228 UINT8 LocalApicInti;
229 } EFI_ACPI_1_0_LOCAL_APIC_NMI_STRUCTURE;
230
231 //
232 // Smart Battery Description Table (SBST)
233 //
234 typedef struct {
235 EFI_ACPI_DESCRIPTION_HEADER Header;
236 UINT32 WarningEnergyLevel;
237 UINT32 LowEnergyLevel;
238 UINT32 CriticalEnergyLevel;
239 } EFI_ACPI_1_0_SMART_BATTERY_DESCRIPTION_TABLE;
240
241 //
242 // Known table signatures
243 //
244 //
245 // "RSD PTR " Root System Description Pointer
246 //
247 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE 0x2052545020445352ULL
248
249 //
250 // "APIC" Multiple APIC Description Table
251 //
252 #define EFI_ACPI_1_0_APIC_SIGNATURE 0x43495041
253
254 //
255 // "DSDT" Differentiated System Description Table
256 //
257 #define EFI_ACPI_1_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445344
258
259 //
260 // "FACS" Firmware ACPI Control Structure
261 //
262 #define EFI_ACPI_1_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE 0x53434146
263
264 //
265 // "FACP" Fixed ACPI Description Table
266 //
267 #define EFI_ACPI_1_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE 0x50434146
268
269 //
270 // "PSDT" Persistent System Description Table
271 //
272 #define EFI_ACPI_1_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445350
273
274 //
275 // "RSDT" Root System Description Table
276 //
277 #define EFI_ACPI_1_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445352
278
279 //
280 // "SBST" Smart Battery Specification Table
281 //
282 #define EFI_ACPI_1_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE 0x54534253
283
284 //
285 // "SSDT" Secondary System Description Table
286 //
287 #define EFI_ACPI_1_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445353
288
289 #pragma pack()
290
291 #endif