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