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