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