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