]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/Acpi30.h
re-defined CDROM_VOLUME_DESCRIPTOR to be a union including Boot Record Volume Descrip...
[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
568eb0cb 558#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE 0x2052545020445352ULL\r
559\r
1bc5d021 560///\r
561/// "APIC" Multiple APIC Description Table\r
562///\r
568eb0cb 563#define EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE 0x43495041\r
564\r
1bc5d021 565///\r
566/// "DSDT" Differentiated System Description Table\r
567///\r
568eb0cb 568#define EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445344\r
569\r
1bc5d021 570///\r
571/// "ECDT" Embedded Controller Boot Resources Table\r
572///\r
568eb0cb 573#define EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE 0x54444345\r
574\r
1bc5d021 575///\r
576/// "FACP" Fixed ACPI Description Table\r
577///\r
568eb0cb 578#define EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE 0x50434146\r
579\r
1bc5d021 580///\r
581/// "FACS" Firmware ACPI Control Structure\r
582///\r
568eb0cb 583#define EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE 0x53434146\r
584\r
1bc5d021 585///\r
586/// "PSDT" Persistent System Description Table\r
587///\r
568eb0cb 588#define EFI_ACPI_3_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445350\r
589\r
1bc5d021 590///\r
591/// "RSDT" Root System Description Table\r
592///\r
568eb0cb 593#define EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445352\r
594\r
1bc5d021 595///\r
596/// "SBST" Smart Battery Specification Table\r
597///\r
568eb0cb 598#define EFI_ACPI_3_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE 0x54534253\r
599\r
1bc5d021 600///\r
601/// "SLIT" System Locality Information Table\r
602///\r
568eb0cb 603#define EFI_ACPI_3_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE 0x54494C53\r
604\r
1bc5d021 605///\r
606/// "SRAT" System Resource Affinity Table\r
607///\r
568eb0cb 608#define EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE 0x54415253\r
609\r
1bc5d021 610///\r
611/// "SSDT" Secondary System Description Table\r
612///\r
568eb0cb 613#define EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445353\r
614\r
1bc5d021 615///\r
616/// "XSDT" Extended System Description Table\r
617///\r
568eb0cb 618#define EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE 0x54445358\r
619\r
1bc5d021 620///\r
621/// "BOOT" MS Simple Boot Spec\r
622///\r
568eb0cb 623#define EFI_ACPI_3_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE 0x544F4F42\r
624\r
1bc5d021 625///\r
626/// "CPEP" Corrected Platform Error Polling Table\r
627/// See\r
628///\r
568eb0cb 629#define EFI_ACPI_3_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE 0x50455043\r
630\r
1bc5d021 631///\r
632/// "DBGP" MS Debug Port Spec\r
633///\r
568eb0cb 634#define EFI_ACPI_3_0_DEBUG_PORT_TABLE_SIGNATURE 0x50474244\r
635\r
1bc5d021 636///\r
637/// "ETDT" Event Timer Description Table\r
638///\r
568eb0cb 639#define EFI_ACPI_3_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE 0x54445445\r
640\r
1bc5d021 641///\r
642/// "HPET" IA-PC High Precision Event Timer Table\r
643///\r
568eb0cb 644#define EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE 0x54455048\r
645\r
1bc5d021 646///\r
647/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table\r
648///\r
568eb0cb 649#define EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE 0x4746434D\r
650\r
1bc5d021 651///\r
652/// "SPCR" Serial Port Concole Redirection Table\r
653///\r
568eb0cb 654#define EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE 0x52435053\r
655\r
1bc5d021 656///\r
657/// "SPMI" Server Platform Management Interface Table\r
658///\r
568eb0cb 659#define EFI_ACPI_3_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE 0x494D5053\r
660\r
1bc5d021 661///\r
662/// "TCPA" Trusted Computing Platform Alliance Capabilities Table\r
663///\r
568eb0cb 664#define EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE 0x41504354\r
665\r
1bc5d021 666///\r
667/// "WDRT" Watchdog Resource Table\r
668///\r
568eb0cb 669#define EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE 0x54524457\r
670\r
1bc5d021 671///\r
672/// "WDAT" Watchdog Action Table\r
673///\r
c8c92c8d 674#define EFI_ACPI_3_0_WATCHDOG_ACTION_TABLE_SIGNATURE 0x54414457\r
675\r
1bc5d021 676///\r
677/// "iBFT" iSCSI Boot Firmware Table\r
678///\r
e3b1115e 679#define EFI_ACPI_3_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE 0x54464269\r
680\r
568eb0cb 681#pragma pack()\r
682\r
683#endif\r