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