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