]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/C/Include/IndustryStandard/Acpi3_0.h
BaseTools: Clear build versions to sync with buildtools/BaseTools
[mirror_edk2.git] / BaseTools / Source / C / Include / IndustryStandard / Acpi3_0.h
CommitLineData
30fdf114
LG
1/** @file\r
2 ACPI 3.0 definitions from the ACPI Specification Revision 3.0 September 2, 2004\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: Acpi3_0.h\r
15\r
16**/\r
17\r
18#ifndef _ACPI_3_0_H_\r
19#define _ACPI_3_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 Specification Revision\r
29//\r
30#define EFI_ACPI_3_0_REVISION 0x03 // BUGBUG: Not in spec yet.\r
31//\r
32// BUGBUG: OEM values need to be moved somewhere else, probably read from data hub\r
33// and produced by a platform specific driver.\r
34//\r
35//\r
36// ACPI 3.0 Generic Address Space definition\r
37//\r
38typedef struct {\r
39 UINT8 AddressSpaceId;\r
40 UINT8 RegisterBitWidth;\r
41 UINT8 RegisterBitOffset;\r
42 UINT8 AccessSize;\r
43 UINT64 Address;\r
44} EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE;\r
45\r
46//\r
47// Generic Address Space Address IDs\r
48//\r
49#define EFI_ACPI_3_0_SYSTEM_MEMORY 0\r
50#define EFI_ACPI_3_0_SYSTEM_IO 1\r
51#define EFI_ACPI_3_0_PCI_CONFIGURATION_SPACE 2\r
52#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER 3\r
53#define EFI_ACPI_3_0_SMBUS 4\r
54#define EFI_ACPI_3_0_FUNCTIONAL_FIXED_HARDWARE 0x7F\r
55\r
56//\r
57// Generic Address Space Access Sizes\r
58//\r
59#define EFI_ACPI_3_0_UNDEFINED 0\r
60#define EFI_ACPI_3_0_BYTE 1\r
61#define EFI_ACPI_3_0_WORD 2\r
62#define EFI_ACPI_3_0_DWORD 3\r
63#define EFI_ACPI_3_0_QWORD 4\r
64\r
65//\r
66// ACPI 3.0 table structures\r
67//\r
68//\r
69// Root System Description Pointer Structure\r
70//\r
71typedef struct {\r
72 UINT64 Signature;\r
73 UINT8 Checksum;\r
74 UINT8 OemId[6];\r
75 UINT8 Revision;\r
76 UINT32 RsdtAddress;\r
77 UINT32 Length;\r
78 UINT64 XsdtAddress;\r
79 UINT8 ExtendedChecksum;\r
80 UINT8 Reserved[3];\r
81} EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER;\r
82\r
83//\r
84// RSD_PTR Revision (as defined in ACPI 3.0 spec.)\r
85//\r
86#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 // ACPISpec30 (Revision 3.0 September 2, 2004) says current value is 2\r
87//\r
88// Common table header, this prefaces all ACPI tables, including FACS, but\r
89// excluding the RSD PTR structure\r
90//\r
91typedef struct {\r
92 UINT32 Signature;\r
93 UINT32 Length;\r
94} EFI_ACPI_3_0_COMMON_HEADER;\r
95\r
96//\r
97// Root System Description Table\r
98// No definition needed as it is a common description table header followed by a\r
99// variable number of UINT32 table pointers.\r
100//\r
101//\r
102// RSDT Revision (as defined in ACPI 3.0 spec.)\r
103//\r
104#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01\r
105\r
106//\r
107// Extended System Description Table\r
108// No definition needed as it is a common description table header followed by a\r
109// variable number of UINT64 table pointers.\r
110//\r
111//\r
112// XSDT Revision (as defined in ACPI 3.0 spec.)\r
113//\r
114#define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01\r
115\r
116//\r
117// Fixed ACPI Description Table Structure (FADT)\r
118//\r
119typedef struct {\r
120 EFI_ACPI_DESCRIPTION_HEADER Header;\r
121 UINT32 FirmwareCtrl;\r
122 UINT32 Dsdt;\r
123 UINT8 Reserved0;\r
124 UINT8 PreferredPmProfile;\r
125 UINT16 SciInt;\r
126 UINT32 SmiCmd;\r
127 UINT8 AcpiEnable;\r
128 UINT8 AcpiDisable;\r
129 UINT8 S4BiosReq;\r
130 UINT8 PstateCnt;\r
131 UINT32 Pm1aEvtBlk;\r
132 UINT32 Pm1bEvtBlk;\r
133 UINT32 Pm1aCntBlk;\r
134 UINT32 Pm1bCntBlk;\r
135 UINT32 Pm2CntBlk;\r
136 UINT32 PmTmrBlk;\r
137 UINT32 Gpe0Blk;\r
138 UINT32 Gpe1Blk;\r
139 UINT8 Pm1EvtLen;\r
140 UINT8 Pm1CntLen;\r
141 UINT8 Pm2CntLen;\r
142 UINT8 PmTmrLen;\r
143 UINT8 Gpe0BlkLen;\r
144 UINT8 Gpe1BlkLen;\r
145 UINT8 Gpe1Base;\r
146 UINT8 CstCnt;\r
147 UINT16 PLvl2Lat;\r
148 UINT16 PLvl3Lat;\r
149 UINT16 FlushSize;\r
150 UINT16 FlushStride;\r
151 UINT8 DutyOffset;\r
152 UINT8 DutyWidth;\r
153 UINT8 DayAlrm;\r
154 UINT8 MonAlrm;\r
155 UINT8 Century;\r
156 UINT16 IaPcBootArch;\r
157 UINT8 Reserved1;\r
158 UINT32 Flags;\r
159 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ResetReg;\r
160 UINT8 ResetValue;\r
161 UINT8 Reserved2[3];\r
162 UINT64 XFirmwareCtrl;\r
163 UINT64 XDsdt;\r
164 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;\r
165 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;\r
166 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;\r
167 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;\r
168 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;\r
169 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;\r
170 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;\r
171 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;\r
172} EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE;\r
173\r
174//\r
175// FADT Version (as defined in ACPI 3.0 spec.)\r
176//\r
177#define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x04\r
178\r
179//\r
180// Fixed ACPI Description Table Preferred Power Management Profile\r
181//\r
182#define EFI_ACPI_3_0_PM_PROFILE_UNSPECIFIED 0\r
183#define EFI_ACPI_3_0_PM_PROFILE_DESKTOP 1\r
184#define EFI_ACPI_3_0_PM_PROFILE_MOBILE 2\r
185#define EFI_ACPI_3_0_PM_PROFILE_WORKSTATION 3\r
186#define EFI_ACPI_3_0_PM_PROFILE_ENTERPRISE_SERVER 4\r
187#define EFI_ACPI_3_0_PM_PROFILE_SOHO_SERVER 5\r
188#define EFI_ACPI_3_0_PM_PROFILE_APPLIANCE_PC 6\r
189#define EFI_ACPI_3_0_PM_PROFILE_PERFORMANCE_SERVER 7\r
190\r
191//\r
192// Fixed ACPI Description Table Boot Architecture Flags\r
193// All other bits are reserved and must be set to 0.\r
194//\r
195#define EFI_ACPI_3_0_LEGACY_DEVICES (1 << 0)\r
196#define EFI_ACPI_3_0_8042 (1 << 1)\r
197#define EFI_ACPI_3_0_VGA_NOT_PRESENT (1 << 2)\r
198#define EFI_ACPI_3_0_MSI_NOT_SUPPORTED (1 << 3)\r
199//\r
200// Fixed ACPI Description Table Fixed Feature Flags\r
201// All other bits are reserved and must be set to 0.\r
202//\r
203#define EFI_ACPI_3_0_WBINVD (1 << 0)\r
204#define EFI_ACPI_3_0_WBINVD_FLUSH (1 << 1)\r
205#define EFI_ACPI_3_0_PROC_C1 (1 << 2)\r
206#define EFI_ACPI_3_0_P_LVL2_UP (1 << 3)\r
207#define EFI_ACPI_3_0_PWR_BUTTON (1 << 4)\r
208#define EFI_ACPI_3_0_SLP_BUTTON (1 << 5)\r
209#define EFI_ACPI_3_0_FIX_RTC (1 << 6)\r
210#define EFI_ACPI_3_0_RTC_S4 (1 << 7)\r
211#define EFI_ACPI_3_0_TMR_VAL_EXT (1 << 8)\r
212#define EFI_ACPI_3_0_DCK_CAP (1 << 9)\r
213#define EFI_ACPI_3_0_RESET_REG_SUP (1 << 10)\r
214#define EFI_ACPI_3_0_SEALED_CASE (1 << 11)\r
215#define EFI_ACPI_3_0_HEADLESS (1 << 12)\r
216#define EFI_ACPI_3_0_CPU_SW_SLP (1 << 13)\r
217#define EFI_ACPI_3_0_PCI_EXP_WAK (1 << 14)\r
218#define EFI_ACPI_3_0_USE_PLATFORM_CLOCK (1 << 15)\r
219#define EFI_ACPI_3_0_S4_RTC_STS_VALID (1 << 16)\r
220#define EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE (1 << 17)\r
221#define EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL (1 << 18)\r
222#define EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE (1 << 19)\r
223\r
224//\r
225// Firmware ACPI Control Structure\r
226//\r
227typedef struct {\r
228 UINT32 Signature;\r
229 UINT32 Length;\r
230 UINT32 HardwareSignature;\r
231 UINT32 FirmwareWakingVector;\r
232 UINT32 GlobalLock;\r
233 UINT32 Flags;\r
234 UINT64 XFirmwareWakingVector;\r
235 UINT8 Version;\r
236 UINT8 Reserved[31];\r
237} EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE;\r
238\r
239//\r
240// FACS Version (as defined in ACPI 3.0 spec.)\r
241//\r
242#define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x01\r
243\r
244//\r
245// Firmware Control Structure Feature Flags\r
246// All other bits are reserved and must be set to 0.\r
247//\r
248#define EFI_ACPI_3_0_S4BIOS_F (1 << 0)\r
249\r
250//\r
251// Differentiated System Description Table,\r
252// Secondary System Description Table\r
253// and Persistent System Description Table,\r
254// no definition needed as they are common description table header followed by a\r
255// definition block.\r
256//\r
257#define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02\r
258#define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02\r
259\r
260//\r
261// Multiple APIC Description Table header definition. The rest of the table\r
262// must be defined in a platform specific manner.\r
263//\r
264typedef struct {\r
265 EFI_ACPI_DESCRIPTION_HEADER Header;\r
266 UINT32 LocalApicAddress;\r
267 UINT32 Flags;\r
268} EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER;\r
269\r
270//\r
271// MADT Revision (as defined in ACPI 3.0 spec.)\r
272//\r
273#define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x02\r
274\r
275//\r
276// Multiple APIC Flags\r
277// All other bits are reserved and must be set to 0.\r
278//\r
279#define EFI_ACPI_3_0_PCAT_COMPAT (1 << 0)\r
280\r
281//\r
282// Multiple APIC Description Table APIC structure types\r
283// All other values between 0x09 an 0xFF are reserved and\r
284// will be ignored by OSPM.\r
285//\r
286#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC 0x00\r
287#define EFI_ACPI_3_0_IO_APIC 0x01\r
288#define EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE 0x02\r
289#define EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03\r
290#define EFI_ACPI_3_0_LOCAL_APIC_NMI 0x04\r
291#define EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05\r
292#define EFI_ACPI_3_0_IO_SAPIC 0x06\r
293#define EFI_ACPI_3_0_LOCAL_SAPIC 0x07\r
294#define EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES 0x08\r
295\r
296//\r
297// APIC Structure Definitions\r
298//\r
299//\r
300// Processor Local APIC Structure Definition\r
301//\r
302typedef struct {\r
303 UINT8 Type;\r
304 UINT8 Length;\r
305 UINT8 AcpiProcessorId;\r
306 UINT8 ApicId;\r
307 UINT32 Flags;\r
308} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE;\r
309\r
310//\r
311// Local APIC Flags. All other bits are reserved and must be 0.\r
312//\r
313#define EFI_ACPI_3_0_LOCAL_APIC_ENABLED (1 << 0)\r
314\r
315//\r
316// IO APIC Structure\r
317//\r
318typedef struct {\r
319 UINT8 Type;\r
320 UINT8 Length;\r
321 UINT8 IoApicId;\r
322 UINT8 Reserved;\r
323 UINT32 IoApicAddress;\r
324 UINT32 GlobalSystemInterruptBase;\r
325} EFI_ACPI_3_0_IO_APIC_STRUCTURE;\r
326\r
327//\r
328// Interrupt Source Override Structure\r
329//\r
330typedef struct {\r
331 UINT8 Type;\r
332 UINT8 Length;\r
333 UINT8 Bus;\r
334 UINT8 Source;\r
335 UINT32 GlobalSystemInterrupt;\r
336 UINT16 Flags;\r
337} EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE;\r
338\r
339//\r
340// Platform Interrupt Sources Structure Definition\r
341//\r
342typedef struct {\r
343 UINT8 Type;\r
344 UINT8 Length;\r
345 UINT16 Flags;\r
346 UINT8 InterruptType;\r
347 UINT8 ProcessorId;\r
348 UINT8 ProcessorEid;\r
349 UINT8 IoSapicVector;\r
350 UINT32 GlobalSystemInterrupt;\r
351 UINT32 PlatformInterruptSourceFlags;\r
352 UINT8 CpeiProcessorOverride;\r
353 UINT8 Reserved[31];\r
354} EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE;\r
355\r
356//\r
357// MPS INTI flags.\r
358// All other bits are reserved and must be set to 0.\r
359//\r
360#define EFI_ACPI_3_0_POLARITY (3 << 0)\r
361#define EFI_ACPI_3_0_TRIGGER_MODE (3 << 2)\r
362\r
363//\r
364// Non-Maskable Interrupt Source Structure\r
365//\r
366typedef struct {\r
367 UINT8 Type;\r
368 UINT8 Length;\r
369 UINT16 Flags;\r
370 UINT32 GlobalSystemInterrupt;\r
371} EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE;\r
372\r
373//\r
374// Local APIC NMI Structure\r
375//\r
376typedef struct {\r
377 UINT8 Type;\r
378 UINT8 Length;\r
379 UINT8 AcpiProcessorId;\r
380 UINT16 Flags;\r
381 UINT8 LocalApicLint;\r
382} EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE;\r
383\r
384//\r
385// Local APIC Address Override Structure\r
386//\r
387typedef struct {\r
388 UINT8 Type;\r
389 UINT8 Length;\r
390 UINT16 Reserved;\r
391 UINT64 LocalApicAddress;\r
392} EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE;\r
393\r
394//\r
395// IO SAPIC Structure\r
396//\r
397typedef struct {\r
398 UINT8 Type;\r
399 UINT8 Length;\r
400 UINT8 IoApicId;\r
401 UINT8 Reserved;\r
402 UINT32 GlobalSystemInterruptBase;\r
403 UINT64 IoSapicAddress;\r
404} EFI_ACPI_3_0_IO_SAPIC_STRUCTURE;\r
405\r
406//\r
407// Local SAPIC Structure\r
408// This struct followed by a null-terminated ASCII string - ACPI Processor UID String\r
409//\r
410typedef struct {\r
411 UINT8 Type;\r
412 UINT8 Length;\r
413 UINT8 AcpiProcessorId;\r
414 UINT8 LocalSapicId;\r
415 UINT8 LocalSapicEid;\r
416 UINT8 Reserved[3];\r
417 UINT32 Flags;\r
418 UINT32 ACPIProcessorUIDValue;\r
419} EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE;\r
420\r
421//\r
422// Platform Interrupt Sources Structure\r
423//\r
424typedef struct {\r
425 UINT8 Type;\r
426 UINT8 Length;\r
427 UINT16 Flags;\r
428 UINT8 InterruptType;\r
429 UINT8 ProcessorId;\r
430 UINT8 ProcessorEid;\r
431 UINT8 IoSapicVector;\r
432 UINT32 GlobalSystemInterrupt;\r
433 UINT32 PlatformInterruptSourceFlags;\r
434} EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE;\r
435\r
436//\r
437// Platform Interrupt Source Flags.\r
438// All other bits are reserved and must be set to 0.\r
439//\r
440#define EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE (1 << 0)\r
441\r
442//\r
443// Smart Battery Description Table (SBST)\r
444//\r
445typedef struct {\r
446 EFI_ACPI_DESCRIPTION_HEADER Header;\r
447 UINT32 WarningEnergyLevel;\r
448 UINT32 LowEnergyLevel;\r
449 UINT32 CriticalEnergyLevel;\r
450} EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE;\r
451\r
452//\r
453// SBST Version (as defined in ACPI 3.0 spec.)\r
454//\r
455#define EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01\r
456\r
457//\r
458// Embedded Controller Boot Resources Table (ECDT)\r
459// The table is followed by a null terminated ASCII string that contains\r
460// a fully qualified reference to the name space object.\r
461//\r
462typedef struct {\r
463 EFI_ACPI_DESCRIPTION_HEADER Header;\r
464 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcControl;\r
465 EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcData;\r
466 UINT32 Uid;\r
467 UINT8 GpeBit;\r
468} EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE;\r
469\r
470//\r
471// ECDT Version (as defined in ACPI 3.0 spec.)\r
472//\r
473#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01\r
474\r
475//\r
476// System Resource Affinity Table (SRAT. The rest of the table\r
477// must be defined in a platform specific manner.\r
478//\r
479typedef struct {\r
480 EFI_ACPI_DESCRIPTION_HEADER Header;\r
481 UINT32 Reserved1; // Must be set to 1\r
482 UINT64 Reserved2;\r
483} EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER;\r
484\r
485//\r
486// SRAT Version (as defined in ACPI 3.0 spec.)\r
487//\r
488#define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x02\r
489\r
490//\r
491// SRAT structure types.\r
492// All other values between 0x02 an 0xFF are reserved and\r
493// will be ignored by OSPM.\r
494//\r
495#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00\r
496#define EFI_ACPI_3_0_MEMORY_AFFINITY 0x01\r
497\r
498//\r
499// Processor Local APIC/SAPIC Affinity Structure Definition\r
500//\r
501typedef struct {\r
502 UINT8 Type;\r
503 UINT8 Length;\r
504 UINT8 ProximityDomain7To0;\r
505 UINT8 ApicId;\r
506 UINT32 Flags;\r
507 UINT8 LocalSapicEid;\r
508 UINT8 ProximityDomain31To8[3];\r
509 UINT8 Reserved[4];\r
510} EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE;\r
511\r
512//\r
513// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.\r
514//\r
515#define EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)\r
516\r
517//\r
518// Memory Affinity Structure Definition\r
519//\r
520typedef struct {\r
521 UINT8 Type;\r
522 UINT8 Length;\r
523 UINT32 ProximityDomain;\r
524 UINT16 Reserved1;\r
525 UINT32 AddressBaseLow;\r
526 UINT32 AddressBaseHigh;\r
527 UINT32 LengthLow;\r
528 UINT32 LengthHigh;\r
529 UINT32 Reserved2;\r
530 UINT32 Flags;\r
531 UINT64 Reserved3;\r
532} EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE;\r
533\r
534//\r
535// Memory Flags. All other bits are reserved and must be 0.\r
536//\r
537#define EFI_ACPI_3_0_MEMORY_ENABLED (1 << 0)\r
538#define EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE (1 << 1)\r
539#define EFI_ACPI_3_0_MEMORY_NONVOLATILE (1 << 2)\r
540\r
541//\r
542// System Locality Distance Information Table (SLIT).\r
543// The rest of the table is a matrix.\r
544//\r
545typedef struct {\r
546 EFI_ACPI_DESCRIPTION_HEADER Header;\r
547 UINT64 NumberOfSystemLocalities;\r
548} EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER;\r
549\r
550//\r
551// SLIT Version (as defined in ACPI 3.0 spec.)\r
552//\r
553#define EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01\r
554\r
555//\r
556// Known table signatures\r
557//\r
558//\r
559// "RSD PTR " Root System Description Pointer\r
560//\r
561#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE 0x2052545020445352ULL\r
562\r
563//\r
564// "APIC" Multiple APIC Description Table\r
565//\r
566#define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE 0x43495041\r
567\r
568//\r
569// "DSDT" Differentiated System Description Table\r
570//\r
571#define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445344\r
572\r
573//\r
574// "ECDT" Embedded Controller Boot Resources Table\r
575//\r
576#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE 0x54444345\r
577\r
578//\r
579// "FACP" Fixed ACPI Description Table\r
580//\r
581#define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE 0x50434146\r
582\r
583//\r
584// "FACS" Firmware ACPI Control Structure\r
585//\r
586#define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE 0x53434146\r
587\r
588//\r
589// "PSDT" Persistent System Description Table\r
590//\r
591#define EFI_ACPI_3_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445350\r
592\r
593//\r
594// "RSDT" Root System Description Table\r
595//\r
596#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445352\r
597\r
598//\r
599// "SBST" Smart Battery Specification Table\r
600//\r
601#define EFI_ACPI_3_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE 0x54534253\r
602\r
603//\r
604// "SLIT" System Locality Information Table\r
605//\r
606#define EFI_ACPI_3_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE 0x54494C53\r
607\r
608//\r
609// "SRAT" System Resource Affinity Table\r
610//\r
611#define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE 0x54415253\r
612\r
613//\r
614// "SSDT" Secondary System Description Table\r
615//\r
616#define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445353\r
617\r
618//\r
619// "XSDT" Extended System Description Table\r
620//\r
621#define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445358\r
622\r
623//\r
624// "BOOT" MS Simple Boot Spec\r
625//\r
626#define EFI_ACPI_3_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE 0x544F4F42\r
627\r
628//\r
629// "CPEP" Corrected Platform Error Polling Table\r
630// See\r
631//\r
632#define EFI_ACPI_3_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE 0x50455043\r
633\r
634//\r
635// "DBGP" MS Debug Port Spec\r
636//\r
637#define EFI_ACPI_3_0_DEBUG_PORT_TABLE_SIGNATURE 0x50474244\r
638\r
639//\r
640// "ETDT" Event Timer Description Table\r
641//\r
642#define EFI_ACPI_3_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE 0x54445445\r
643\r
644//\r
645// "HPET" IA-PC High Precision Event Timer Table\r
646//\r
647#define EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE 0x54455048\r
648\r
649//\r
650// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table\r
651//\r
652#define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE 0x4746434D\r
653\r
654//\r
655// "SPCR" Serial Port Concole Redirection Table\r
656//\r
657#define EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE 0x52435053\r
658\r
659//\r
660// "SPMI" Server Platform Management Interface Table\r
661//\r
662#define EFI_ACPI_3_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE 0x494D5053\r
663\r
664//\r
665// "TCPA" Trusted Computing Platform Alliance Capabilities Table\r
666//\r
667#define EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE 0x41504354\r
668\r
669//\r
670// "WDRT" Watchdog Resource Table\r
671//\r
672#define EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE 0x54524457\r
673\r
674#pragma pack()\r
675\r
676#endif\r