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