iPXE
Acpi60.h
Go to the documentation of this file.
1 /** @file
2  ACPI 6.0 definitions from the ACPI Specification Revision 6.0 Errata A January, 2016.
3 
4  Copyright (c) 2015 - 2022, Intel Corporation. All rights reserved.<BR>
5  (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>
6  Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>
7  SPDX-License-Identifier: BSD-2-Clause-Patent
8 **/
9 
10 #ifndef _ACPI_6_0_H_
11 #define _ACPI_6_0_H_
12 
13 FILE_LICENCE ( BSD2_PATENT );
14 
16 
17 ///
18 /// _PSD Revision for ACPI 6.0
19 ///
20 #define EFI_ACPI_6_0_AML_PSD_REVISION 0
21 
22 ///
23 /// _CPC Revision for ACPI 6.0
24 ///
25 #define EFI_ACPI_6_0_AML_CPC_REVISION 2
26 
27 //
28 // Ensure proper structure formats
29 //
30 #pragma pack(1)
31 
32 ///
33 /// ACPI 6.0 Generic Address Space definition
34 ///
35 typedef struct {
42 
43 //
44 // Generic Address Space Address IDs
45 //
46 #define EFI_ACPI_6_0_SYSTEM_MEMORY 0
47 #define EFI_ACPI_6_0_SYSTEM_IO 1
48 #define EFI_ACPI_6_0_PCI_CONFIGURATION_SPACE 2
49 #define EFI_ACPI_6_0_EMBEDDED_CONTROLLER 3
50 #define EFI_ACPI_6_0_SMBUS 4
51 #define EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL 0x0A
52 #define EFI_ACPI_6_0_FUNCTIONAL_FIXED_HARDWARE 0x7F
53 
54 //
55 // Generic Address Space Access Sizes
56 //
57 #define EFI_ACPI_6_0_UNDEFINED 0
58 #define EFI_ACPI_6_0_BYTE 1
59 #define EFI_ACPI_6_0_WORD 2
60 #define EFI_ACPI_6_0_DWORD 3
61 #define EFI_ACPI_6_0_QWORD 4
62 
63 //
64 // ACPI 6.0 table structures
65 //
66 
67 ///
68 /// Root System Description Pointer Structure
69 ///
70 typedef struct {
73  UINT8 OemId[6];
81 
82 ///
83 /// RSD_PTR Revision (as defined in ACPI 6.0 spec.)
84 ///
85 #define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 6.0) says current value is 2
86 
87 ///
88 /// Common table header, this prefaces all ACPI tables, including FACS, but
89 /// excluding the RSD PTR structure
90 ///
91 typedef struct {
95 
96 //
97 // Root System Description Table
98 // No definition needed as it is a common description table header, the same with
99 // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
100 //
101 
102 ///
103 /// RSDT Revision (as defined in ACPI 6.0 spec.)
104 ///
105 #define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
106 
107 //
108 // Extended System Description Table
109 // No definition needed as it is a common description table header, the same with
110 // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
111 //
112 
113 ///
114 /// XSDT Revision (as defined in ACPI 6.0 spec.)
115 ///
116 #define EFI_ACPI_6_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
117 
118 ///
119 /// Fixed ACPI Description Table Structure (FADT)
120 ///
121 typedef struct {
179 
180 ///
181 /// FADT Version (as defined in ACPI 6.0 spec.)
182 ///
183 #define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x06
184 #define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION 0x00
185 
186 //
187 // Fixed ACPI Description Table Preferred Power Management Profile
188 //
189 #define EFI_ACPI_6_0_PM_PROFILE_UNSPECIFIED 0
190 #define EFI_ACPI_6_0_PM_PROFILE_DESKTOP 1
191 #define EFI_ACPI_6_0_PM_PROFILE_MOBILE 2
192 #define EFI_ACPI_6_0_PM_PROFILE_WORKSTATION 3
193 #define EFI_ACPI_6_0_PM_PROFILE_ENTERPRISE_SERVER 4
194 #define EFI_ACPI_6_0_PM_PROFILE_SOHO_SERVER 5
195 #define EFI_ACPI_6_0_PM_PROFILE_APPLIANCE_PC 6
196 #define EFI_ACPI_6_0_PM_PROFILE_PERFORMANCE_SERVER 7
197 #define EFI_ACPI_6_0_PM_PROFILE_TABLET 8
198 
199 //
200 // Fixed ACPI Description Table Boot Architecture Flags
201 // All other bits are reserved and must be set to 0.
202 //
203 #define EFI_ACPI_6_0_LEGACY_DEVICES BIT0
204 #define EFI_ACPI_6_0_8042 BIT1
205 #define EFI_ACPI_6_0_VGA_NOT_PRESENT BIT2
206 #define EFI_ACPI_6_0_MSI_NOT_SUPPORTED BIT3
207 #define EFI_ACPI_6_0_PCIE_ASPM_CONTROLS BIT4
208 #define EFI_ACPI_6_0_CMOS_RTC_NOT_PRESENT BIT5
209 
210 //
211 // Fixed ACPI Description Table Arm Boot Architecture Flags
212 // All other bits are reserved and must be set to 0.
213 //
214 #define EFI_ACPI_6_0_ARM_PSCI_COMPLIANT BIT0
215 #define EFI_ACPI_6_0_ARM_PSCI_USE_HVC BIT1
216 
217 //
218 // Fixed ACPI Description Table Fixed Feature Flags
219 // All other bits are reserved and must be set to 0.
220 //
221 #define EFI_ACPI_6_0_WBINVD BIT0
222 #define EFI_ACPI_6_0_WBINVD_FLUSH BIT1
223 #define EFI_ACPI_6_0_PROC_C1 BIT2
224 #define EFI_ACPI_6_0_P_LVL2_UP BIT3
225 #define EFI_ACPI_6_0_PWR_BUTTON BIT4
226 #define EFI_ACPI_6_0_SLP_BUTTON BIT5
227 #define EFI_ACPI_6_0_FIX_RTC BIT6
228 #define EFI_ACPI_6_0_RTC_S4 BIT7
229 #define EFI_ACPI_6_0_TMR_VAL_EXT BIT8
230 #define EFI_ACPI_6_0_DCK_CAP BIT9
231 #define EFI_ACPI_6_0_RESET_REG_SUP BIT10
232 #define EFI_ACPI_6_0_SEALED_CASE BIT11
233 #define EFI_ACPI_6_0_HEADLESS BIT12
234 #define EFI_ACPI_6_0_CPU_SW_SLP BIT13
235 #define EFI_ACPI_6_0_PCI_EXP_WAK BIT14
236 #define EFI_ACPI_6_0_USE_PLATFORM_CLOCK BIT15
237 #define EFI_ACPI_6_0_S4_RTC_STS_VALID BIT16
238 #define EFI_ACPI_6_0_REMOTE_POWER_ON_CAPABLE BIT17
239 #define EFI_ACPI_6_0_FORCE_APIC_CLUSTER_MODEL BIT18
240 #define EFI_ACPI_6_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19
241 #define EFI_ACPI_6_0_HW_REDUCED_ACPI BIT20
242 #define EFI_ACPI_6_0_LOW_POWER_S0_IDLE_CAPABLE BIT21
243 
244 ///
245 /// Firmware ACPI Control Structure
246 ///
247 typedef struct {
256  UINT8 Reserved0[3];
258  UINT8 Reserved1[24];
260 
261 ///
262 /// FACS Version (as defined in ACPI 6.0 spec.)
263 ///
264 #define EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02
265 
266 ///
267 /// Firmware Control Structure Feature Flags
268 /// All other bits are reserved and must be set to 0.
269 ///
270 #define EFI_ACPI_6_0_S4BIOS_F BIT0
271 #define EFI_ACPI_6_0_64BIT_WAKE_SUPPORTED_F BIT1
272 
273 ///
274 /// OSPM Enabled Firmware Control Structure Flags
275 /// All other bits are reserved and must be set to 0.
276 ///
277 #define EFI_ACPI_6_0_OSPM_64BIT_WAKE_F BIT0
278 
279 //
280 // Differentiated System Description Table,
281 // Secondary System Description Table
282 // and Persistent System Description Table,
283 // no definition needed as they are common description table header, the same with
284 // EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
285 //
286 #define EFI_ACPI_6_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
287 #define EFI_ACPI_6_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
288 
289 ///
290 /// Multiple APIC Description Table header definition. The rest of the table
291 /// must be defined in a platform specific manner.
292 ///
293 typedef struct {
298 
299 ///
300 /// MADT Revision (as defined in ACPI 6.0 Errata A spec.)
301 ///
302 #define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x04
303 
304 ///
305 /// Multiple APIC Flags
306 /// All other bits are reserved and must be set to 0.
307 ///
308 #define EFI_ACPI_6_0_PCAT_COMPAT BIT0
309 
310 //
311 // Multiple APIC Description Table APIC structure types
312 // All other values between 0x0D and 0x7F are reserved and
313 // will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
314 //
315 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC 0x00
316 #define EFI_ACPI_6_0_IO_APIC 0x01
317 #define EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE 0x02
318 #define EFI_ACPI_6_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
319 #define EFI_ACPI_6_0_LOCAL_APIC_NMI 0x04
320 #define EFI_ACPI_6_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
321 #define EFI_ACPI_6_0_IO_SAPIC 0x06
322 #define EFI_ACPI_6_0_LOCAL_SAPIC 0x07
323 #define EFI_ACPI_6_0_PLATFORM_INTERRUPT_SOURCES 0x08
324 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC 0x09
325 #define EFI_ACPI_6_0_LOCAL_X2APIC_NMI 0x0A
326 #define EFI_ACPI_6_0_GIC 0x0B
327 #define EFI_ACPI_6_0_GICD 0x0C
328 #define EFI_ACPI_6_0_GIC_MSI_FRAME 0x0D
329 #define EFI_ACPI_6_0_GICR 0x0E
330 #define EFI_ACPI_6_0_GIC_ITS 0x0F
331 
332 //
333 // APIC Structure Definitions
334 //
335 
336 ///
337 /// Processor Local APIC Structure Definition
338 ///
339 typedef struct {
346 
347 ///
348 /// Local APIC Flags. All other bits are reserved and must be 0.
349 ///
350 #define EFI_ACPI_6_0_LOCAL_APIC_ENABLED BIT0
351 
352 ///
353 /// IO APIC Structure
354 ///
355 typedef struct {
363 
364 ///
365 /// Interrupt Source Override Structure
366 ///
367 typedef struct {
375 
376 ///
377 /// Platform Interrupt Sources Structure Definition
378 ///
379 typedef struct {
392 
393 //
394 // MPS INTI flags.
395 // All other bits are reserved and must be set to 0.
396 //
397 #define EFI_ACPI_6_0_POLARITY (3 << 0)
398 #define EFI_ACPI_6_0_TRIGGER_MODE (3 << 2)
399 
400 ///
401 /// Non-Maskable Interrupt Source Structure
402 ///
403 typedef struct {
409 
410 ///
411 /// Local APIC NMI Structure
412 ///
413 typedef struct {
420 
421 ///
422 /// Local APIC Address Override Structure
423 ///
424 typedef struct {
430 
431 ///
432 /// IO SAPIC Structure
433 ///
434 typedef struct {
442 
443 ///
444 /// Local SAPIC Structure
445 /// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
446 ///
447 typedef struct {
457 
458 ///
459 /// Platform Interrupt Sources Structure
460 ///
461 typedef struct {
472 
473 ///
474 /// Platform Interrupt Source Flags.
475 /// All other bits are reserved and must be set to 0.
476 ///
477 #define EFI_ACPI_6_0_CPEI_PROCESSOR_OVERRIDE BIT0
478 
479 ///
480 /// Processor Local x2APIC Structure Definition
481 ///
482 typedef struct {
490 
491 ///
492 /// Local x2APIC NMI Structure
493 ///
494 typedef struct {
502 
503 ///
504 /// GIC Structure
505 ///
506 typedef struct {
523  UINT8 Reserved2[3];
525 
526 ///
527 /// GIC Flags. All other bits are reserved and must be 0.
528 ///
529 #define EFI_ACPI_6_0_GIC_ENABLED BIT0
530 #define EFI_ACPI_6_0_PERFORMANCE_INTERRUPT_MODEL BIT1
531 #define EFI_ACPI_6_0_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS BIT2
532 
533 ///
534 /// GIC Distributor Structure
535 ///
536 typedef struct {
544  UINT8 Reserved2[3];
546 
547 ///
548 /// GIC Version
549 ///
550 #define EFI_ACPI_6_0_GIC_V1 0x01
551 #define EFI_ACPI_6_0_GIC_V2 0x02
552 #define EFI_ACPI_6_0_GIC_V3 0x03
553 #define EFI_ACPI_6_0_GIC_V4 0x04
554 
555 ///
556 /// GIC MSI Frame Structure
557 ///
558 typedef struct {
568 
569 ///
570 /// GIC MSI Frame Flags. All other bits are reserved and must be 0.
571 ///
572 #define EFI_ACPI_6_0_SPI_COUNT_BASE_SELECT BIT0
573 
574 ///
575 /// GICR Structure
576 ///
577 typedef struct {
584 
585 ///
586 /// GIC Interrupt Translation Service Structure
587 ///
588 typedef struct {
596 
597 ///
598 /// Smart Battery Description Table (SBST)
599 ///
600 typedef struct {
606 
607 ///
608 /// SBST Version (as defined in ACPI 6.0 spec.)
609 ///
610 #define EFI_ACPI_6_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
611 
612 ///
613 /// Embedded Controller Boot Resources Table (ECDT)
614 /// The table is followed by a null terminated ASCII string that contains
615 /// a fully qualified reference to the name space object.
616 ///
617 typedef struct {
624 
625 ///
626 /// ECDT Version (as defined in ACPI 6.0 spec.)
627 ///
628 #define EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
629 
630 ///
631 /// System Resource Affinity Table (SRAT). The rest of the table
632 /// must be defined in a platform specific manner.
633 ///
634 typedef struct {
636  UINT32 Reserved1; ///< Must be set to 1
639 
640 ///
641 /// SRAT Version (as defined in ACPI 6.0 spec.)
642 ///
643 #define EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03
644 
645 //
646 // SRAT structure types.
647 // All other values between 0x04 an 0xFF are reserved and
648 // will be ignored by OSPM.
649 //
650 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00
651 #define EFI_ACPI_6_0_MEMORY_AFFINITY 0x01
652 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02
653 #define EFI_ACPI_6_0_GICC_AFFINITY 0x03
654 
655 ///
656 /// Processor Local APIC/SAPIC Affinity Structure Definition
657 ///
658 typedef struct {
665  UINT8 ProximityDomain31To8[3];
668 
669 ///
670 /// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
671 ///
672 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
673 
674 ///
675 /// Memory Affinity Structure Definition
676 ///
677 typedef struct {
690 
691 //
692 // Memory Flags. All other bits are reserved and must be 0.
693 //
694 #define EFI_ACPI_6_0_MEMORY_ENABLED (1 << 0)
695 #define EFI_ACPI_6_0_MEMORY_HOT_PLUGGABLE (1 << 1)
696 #define EFI_ACPI_6_0_MEMORY_NONVOLATILE (1 << 2)
697 
698 ///
699 /// Processor Local x2APIC Affinity Structure Definition
700 ///
701 typedef struct {
704  UINT8 Reserved1[2];
709  UINT8 Reserved2[4];
711 
712 ///
713 /// GICC Affinity Structure Definition
714 ///
715 typedef struct {
723 
724 ///
725 /// GICC Flags. All other bits are reserved and must be 0.
726 ///
727 #define EFI_ACPI_6_0_GICC_ENABLED (1 << 0)
728 
729 ///
730 /// System Locality Distance Information Table (SLIT).
731 /// The rest of the table is a matrix.
732 ///
733 typedef struct {
737 
738 ///
739 /// SLIT Version (as defined in ACPI 6.0 spec.)
740 ///
741 #define EFI_ACPI_6_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01
742 
743 ///
744 /// Corrected Platform Error Polling Table (CPEP)
745 ///
746 typedef struct {
750 
751 ///
752 /// CPEP Version (as defined in ACPI 6.0 spec.)
753 ///
754 #define EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01
755 
756 //
757 // CPEP processor structure types.
758 //
759 #define EFI_ACPI_6_0_CPEP_PROCESSOR_APIC_SAPIC 0x00
760 
761 ///
762 /// Corrected Platform Error Polling Processor Structure Definition
763 ///
764 typedef struct {
771 
772 ///
773 /// Maximum System Characteristics Table (MSCT)
774 ///
775 typedef struct {
782 
783 ///
784 /// MSCT Version (as defined in ACPI 6.0 spec.)
785 ///
786 #define EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01
787 
788 ///
789 /// Maximum Proximity Domain Information Structure Definition
790 ///
791 typedef struct {
799 
800 ///
801 /// ACPI RAS Feature Table definition.
802 ///
803 typedef struct {
805  UINT8 PlatformCommunicationChannelIdentifier[12];
807 
808 ///
809 /// RASF Version (as defined in ACPI 6.0 spec.)
810 ///
811 #define EFI_ACPI_6_0_RAS_FEATURE_TABLE_REVISION 0x01
812 
813 ///
814 /// ACPI RASF Platform Communication Channel Shared Memory Region definition.
815 ///
816 typedef struct {
821  UINT8 RASCapabilities[16];
822  UINT8 SetRASCapabilities[16];
826 
827 ///
828 /// ACPI RASF PCC command code
829 ///
830 #define EFI_ACPI_6_0_RASF_PCC_COMMAND_CODE_EXECUTE_RASF_COMMAND 0x01
831 
832 ///
833 /// ACPI RASF Platform RAS Capabilities
834 ///
835 #define EFI_ACPI_6_0_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED 0x01
836 #define EFI_ACPI_6_0_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED_AND_EXPOSED_TO_SOFTWARE 0x02
837 
838 ///
839 /// ACPI RASF Parameter Block structure for PATROL_SCRUB
840 ///
841 typedef struct {
846  UINT64 RequestedAddressRange[2];
847  UINT64 ActualAddressRange[2];
851 
852 ///
853 /// ACPI RASF Patrol Scrub command
854 ///
855 #define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_GET_PATROL_PARAMETERS 0x01
856 #define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_START_PATROL_SCRUBBER 0x02
857 #define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_STOP_PATROL_SCRUBBER 0x03
858 
859 ///
860 /// Memory Power State Table definition.
861 ///
862 typedef struct {
866  // Memory Power Node Structure
867  // Memory Power State Characteristics
869 
870 ///
871 /// MPST Version (as defined in ACPI 6.0 spec.)
872 ///
873 #define EFI_ACPI_6_0_MEMORY_POWER_STATE_TABLE_REVISION 0x01
874 
875 ///
876 /// MPST Platform Communication Channel Shared Memory Region definition.
877 ///
878 typedef struct {
889 
890 ///
891 /// ACPI MPST PCC command code
892 ///
893 #define EFI_ACPI_6_0_MPST_PCC_COMMAND_CODE_EXECUTE_MPST_COMMAND 0x03
894 
895 ///
896 /// ACPI MPST Memory Power command
897 ///
898 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_POWER_STATE 0x01
899 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_SET_MEMORY_POWER_STATE 0x02
900 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_AVERAGE_POWER_CONSUMED 0x03
901 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_ENERGY_CONSUMED 0x04
902 
903 ///
904 /// MPST Memory Power Node Table
905 ///
906 typedef struct {
910 
911 typedef struct {
920  // EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates];
921  // UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents];
923 
924 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_ENABLE 0x01
925 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_POWER_MANAGED 0x02
926 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_HOT_PLUGGABLE 0x04
927 
928 typedef struct {
932 
933 ///
934 /// MPST Memory Power State Characteristics Table
935 ///
936 typedef struct {
944 
945 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_MEMORY_CONTENT_PRESERVED 0x01
946 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_ENTRY 0x02
947 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_EXIT 0x04
948 
949 typedef struct {
953 
954 ///
955 /// Memory Topology Table definition.
956 ///
957 typedef struct {
961 
962 ///
963 /// PMTT Version (as defined in ACPI 6.0 spec.)
964 ///
965 #define EFI_ACPI_6_0_MEMORY_TOPOLOGY_TABLE_REVISION 0x01
966 
967 ///
968 /// Common Memory Aggregator Device Structure.
969 ///
970 typedef struct {
977 
978 ///
979 /// Memory Aggregator Device Type
980 ///
981 #define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_SOCKET 0x0
982 #define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_MEMORY_CONTROLLER 0x1
983 #define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_DIMM 0x2
984 
985 ///
986 /// Socket Memory Aggregator Device Structure.
987 ///
988 typedef struct {
992  // EFI_ACPI_6_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE MemoryController[];
994 
995 ///
996 /// MemoryController Memory Aggregator Device Structure.
997 ///
998 typedef struct {
1008  // UINT32 ProximityDomain[NumberOfProximityDomains];
1009  // EFI_ACPI_6_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE PhysicalComponent[];
1011 
1012 ///
1013 /// DIMM Memory Aggregator Device Structure.
1014 ///
1015 typedef struct {
1022 
1023 ///
1024 /// Boot Graphics Resource Table definition.
1025 ///
1026 typedef struct {
1028  ///
1029  /// 2-bytes (16 bit) version ID. This value must be 1.
1030  ///
1032  ///
1033  /// 1-byte status field indicating current status about the table.
1034  /// Bits[7:1] = Reserved (must be zero)
1035  /// Bit [0] = Valid. A one indicates the boot image graphic is valid.
1036  ///
1038  ///
1039  /// 1-byte enumerated type field indicating format of the image.
1040  /// 0 = Bitmap
1041  /// 1 - 255 Reserved (for future use)
1042  ///
1044  ///
1045  /// 8-byte (64 bit) physical address pointing to the firmware's in-memory copy
1046  /// of the image bitmap.
1047  ///
1049  ///
1050  /// A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image.
1051  /// (X, Y) display offset of the top left corner of the boot image.
1052  /// The top left corner of the display is at offset (0, 0).
1053  ///
1055  ///
1056  /// A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image.
1057  /// (X, Y) display offset of the top left corner of the boot image.
1058  /// The top left corner of the display is at offset (0, 0).
1059  ///
1062 
1063 ///
1064 /// BGRT Revision
1065 ///
1066 #define EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE_REVISION 1
1067 
1068 ///
1069 /// BGRT Version
1070 ///
1071 #define EFI_ACPI_6_0_BGRT_VERSION 0x01
1072 
1073 ///
1074 /// BGRT Status
1075 ///
1076 #define EFI_ACPI_6_0_BGRT_STATUS_NOT_DISPLAYED 0x00
1077 #define EFI_ACPI_6_0_BGRT_STATUS_DISPLAYED 0x01
1078 
1079 ///
1080 /// BGRT Image Type
1081 ///
1082 #define EFI_ACPI_6_0_BGRT_IMAGE_TYPE_BMP 0x00
1083 
1084 ///
1085 /// FPDT Version (as defined in ACPI 6.0 spec.)
1086 ///
1087 #define EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_DATA_TABLE_REVISION 0x01
1088 
1089 ///
1090 /// FPDT Performance Record Types
1091 ///
1092 #define EFI_ACPI_6_0_FPDT_RECORD_TYPE_FIRMWARE_BASIC_BOOT_POINTER 0x0000
1093 #define EFI_ACPI_6_0_FPDT_RECORD_TYPE_S3_PERFORMANCE_TABLE_POINTER 0x0001
1094 
1095 ///
1096 /// FPDT Performance Record Revision
1097 ///
1098 #define EFI_ACPI_6_0_FPDT_RECORD_REVISION_FIRMWARE_BASIC_BOOT_POINTER 0x01
1099 #define EFI_ACPI_6_0_FPDT_RECORD_REVISION_S3_PERFORMANCE_TABLE_POINTER 0x01
1100 
1101 ///
1102 /// FPDT Runtime Performance Record Types
1103 ///
1104 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_S3_RESUME 0x0000
1105 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_S3_SUSPEND 0x0001
1106 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_FIRMWARE_BASIC_BOOT 0x0002
1107 
1108 ///
1109 /// FPDT Runtime Performance Record Revision
1110 ///
1111 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_S3_RESUME 0x01
1112 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_S3_SUSPEND 0x01
1113 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_FIRMWARE_BASIC_BOOT 0x02
1114 
1115 ///
1116 /// FPDT Performance Record header
1117 ///
1118 typedef struct {
1123 
1124 ///
1125 /// FPDT Performance Table header
1126 ///
1127 typedef struct {
1131 
1132 ///
1133 /// FPDT Firmware Basic Boot Performance Pointer Record Structure
1134 ///
1135 typedef struct {
1138  ///
1139  /// 64-bit processor-relative physical address of the Basic Boot Performance Table.
1140  ///
1143 
1144 ///
1145 /// FPDT S3 Performance Table Pointer Record Structure
1146 ///
1147 typedef struct {
1150  ///
1151  /// 64-bit processor-relative physical address of the S3 Performance Table.
1152  ///
1155 
1156 ///
1157 /// FPDT Firmware Basic Boot Performance Record Structure
1158 ///
1159 typedef struct {
1162  ///
1163  /// Timer value logged at the beginning of firmware image execution.
1164  /// This may not always be zero or near zero.
1165  ///
1167  ///
1168  /// Timer value logged just prior to loading the OS boot loader into memory.
1169  /// For non-UEFI compatible boots, this field must be zero.
1170  ///
1172  ///
1173  /// Timer value logged just prior to launching the previously loaded OS boot loader image.
1174  /// For non-UEFI compatible boots, the timer value logged will be just prior
1175  /// to the INT 19h handler invocation.
1176  ///
1178  ///
1179  /// Timer value logged at the point when the OS loader calls the
1180  /// ExitBootServices function for UEFI compatible firmware.
1181  /// For non-UEFI compatible boots, this field must be zero.
1182  ///
1184  ///
1185  /// Timer value logged at the point just prior to when the OS loader gaining
1186  /// control back from calls the ExitBootServices function for UEFI compatible firmware.
1187  /// For non-UEFI compatible boots, this field must be zero.
1188  ///
1191 
1192 ///
1193 /// FPDT Firmware Basic Boot Performance Table signature
1194 ///
1195 #define EFI_ACPI_6_0_FPDT_BOOT_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('F', 'B', 'P', 'T')
1196 
1197 //
1198 // FPDT Firmware Basic Boot Performance Table
1199 //
1200 typedef struct {
1202  //
1203  // one or more Performance Records.
1204  //
1206 
1207 ///
1208 /// FPDT "S3PT" S3 Performance Table
1209 ///
1210 #define EFI_ACPI_6_0_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('S', '3', 'P', 'T')
1211 
1212 //
1213 // FPDT Firmware S3 Boot Performance Table
1214 //
1215 typedef struct {
1217  //
1218  // one or more Performance Records.
1219  //
1221 
1222 ///
1223 /// FPDT Basic S3 Resume Performance Record
1224 ///
1225 typedef struct {
1227  ///
1228  /// A count of the number of S3 resume cycles since the last full boot sequence.
1229  ///
1231  ///
1232  /// Timer recorded at the end of BIOS S3 resume, just prior to handoff to the
1233  /// OS waking vector. Only the most recent resume cycle's time is retained.
1234  ///
1236  ///
1237  /// Average timer value of all resume cycles logged since the last full boot
1238  /// sequence, including the most recent resume. Note that the entire log of
1239  /// timer values does not need to be retained in order to calculate this average.
1240  ///
1243 
1244 ///
1245 /// FPDT Basic S3 Suspend Performance Record
1246 ///
1247 typedef struct {
1249  ///
1250  /// Timer value recorded at the OS write to SLP_TYP upon entry to S3.
1251  /// Only the most recent suspend cycle's timer value is retained.
1252  ///
1254  ///
1255  /// Timer value recorded at the final firmware write to SLP_TYP (or other
1256  /// mechanism) used to trigger hardware entry to S3.
1257  /// Only the most recent suspend cycle's timer value is retained.
1258  ///
1261 
1262 ///
1263 /// Firmware Performance Record Table definition.
1264 ///
1265 typedef struct {
1268 
1269 ///
1270 /// Generic Timer Description Table definition.
1271 ///
1272 typedef struct {
1288 
1289 ///
1290 /// GTDT Version (as defined in ACPI 6.0 spec.)
1291 ///
1292 #define EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION 0x02
1293 
1294 ///
1295 /// Timer Flags. All other bits are reserved and must be 0.
1296 ///
1297 #define EFI_ACPI_6_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0
1298 #define EFI_ACPI_6_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1299 #define EFI_ACPI_6_0_GTDT_TIMER_FLAG_ALWAYS_ON_CAPABILITY BIT2
1300 
1301 ///
1302 /// Platform Timer Type
1303 ///
1304 #define EFI_ACPI_6_0_GTDT_GT_BLOCK 0
1305 #define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG 1
1306 
1307 ///
1308 /// GT Block Structure
1309 ///
1310 typedef struct {
1318 
1319 ///
1320 /// GT Block Timer Structure
1321 ///
1322 typedef struct {
1333 
1334 ///
1335 /// GT Block Physical Timers and Virtual Timers Flags. All other bits are reserved and must be 0.
1336 ///
1337 #define EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0
1338 #define EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1339 
1340 ///
1341 /// Common Flags Flags. All other bits are reserved and must be 0.
1342 ///
1343 #define EFI_ACPI_6_0_GTDT_GT_BLOCK_COMMON_FLAG_SECURE_TIMER BIT0
1344 #define EFI_ACPI_6_0_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY BIT1
1345 
1346 ///
1347 /// SBSA Generic Watchdog Structure
1348 ///
1349 typedef struct {
1358 
1359 ///
1360 /// SBSA Generic Watchdog Timer Flags. All other bits are reserved and must be 0.
1361 ///
1362 #define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE BIT0
1363 #define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1364 #define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_SECURE_TIMER BIT2
1365 
1366 //
1367 // NVDIMM Firmware Interface Table definition.
1368 //
1369 typedef struct {
1373 
1374 //
1375 // NFIT Version (as defined in ACPI 6.0 spec.)
1376 //
1377 #define EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE_REVISION 0x1
1378 
1379 //
1380 // Definition for NFIT Table Structure Types
1381 //
1382 #define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE 0
1383 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_TO_SYSTEM_ADDRESS_RANGE_MAP_STRUCTURE_TYPE 1
1384 #define EFI_ACPI_6_0_NFIT_INTERLEAVE_STRUCTURE_TYPE 2
1385 #define EFI_ACPI_6_0_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE_TYPE 3
1386 #define EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE_TYPE 4
1387 #define EFI_ACPI_6_0_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE_TYPE 5
1388 #define EFI_ACPI_6_0_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE_TYPE 6
1389 
1390 //
1391 // Definition for NFIT Structure Header
1392 //
1393 typedef struct {
1397 
1398 //
1399 // Definition for System Physical Address Range Structure
1400 //
1401 #define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_CONTROL_REGION_FOR_MANAGEMENT BIT0
1402 #define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_PROXIMITY_DOMAIN_VALID BIT1
1403 #define EFI_ACPI_6_0_NFIT_GUID_VOLATILE_MEMORY_REGION { 0x7305944F, 0xFDDA, 0x44E3, { 0xB1, 0x6C, 0x3F, 0x22, 0xD2, 0x52, 0xE5, 0xD0 }}
1404 #define EFI_ACPI_6_0_NFIT_GUID_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_REGION { 0x66F0D379, 0xB4F3, 0x4074, { 0xAC, 0x43, 0x0D, 0x33, 0x18, 0xB7, 0x8C, 0xDB }}
1405 #define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_CONTROL_REGION { 0x92F701F6, 0x13B4, 0x405D, { 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C }}
1406 #define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_BLOCK_DATA_WINDOW_REGION { 0x91AF0530, 0x5D86, 0x470E, { 0xA6, 0xB0, 0x0A, 0x2D, 0xB9, 0x40, 0x82, 0x49 }}
1407 #define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE { 0x77AB535A, 0x45FC, 0x624B, { 0x55, 0x60, 0xF7, 0xB2, 0x81, 0xD1, 0xF9, 0x6E }}
1408 #define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE { 0x3D5ABD30, 0x4175, 0x87CE, { 0x6D, 0x64, 0xD2, 0xAD, 0xE5, 0x23, 0xC4, 0xBB }}
1409 #define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT { 0x5CEA02C9, 0x4D07, 0x69D3, { 0x26, 0x9F ,0x44, 0x96, 0xFB, 0xE0, 0x96, 0xF9 }}
1410 #define EFI_ACPI_6_0_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT { 0x08018188, 0x42CD, 0xBB48, { 0x10, 0x0F, 0x53, 0x87, 0xD5, 0x3D, 0xED, 0x3D }}
1411 typedef struct {
1423 
1424 //
1425 // Definition for Memory Device to System Physical Address Range Mapping Structure
1426 //
1427 typedef struct {
1435 
1436 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_PREVIOUS_SAVE_FAIL BIT0
1437 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_LAST_RESTORE_FAIL BIT1
1438 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_PLATFORM_FLUSH_FAIL BIT2
1439 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_NOT_ARMED_PRIOR_TO_OSPM_HAND_OFF BIT3
1440 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_SMART_HEALTH_EVENTS_PRIOR_OSPM_HAND_OFF BIT4
1441 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_FIRMWARE_ENABLED_TO_NOTIFY_OSPM_ON_SMART_HEALTH_EVENTS BIT5
1442 typedef struct {
1458 
1459 //
1460 // Definition for Interleave Structure
1461 //
1462 typedef struct {
1469  // UINT32 LineOffset[NumberOfLines];
1471 
1472 //
1473 // Definition for SMBIOS Management Information Structure
1474 //
1475 typedef struct {
1479  // UINT8 Data[];
1481 
1482 //
1483 // Definition for NVDIMM Control Region Structure
1484 //
1485 #define EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_FLAGS_BLOCK_DATA_WINDOWS_BUFFERED BIT0
1486 typedef struct {
1496  UINT8 Reserved_18[6];
1506  UINT8 Reserved_74[6];
1508 
1509 //
1510 // Definition for NVDIMM Block Data Window Region Structure
1511 //
1512 typedef struct {
1522 
1523 //
1524 // Definition for Flush Hint Address Structure
1525 //
1526 typedef struct {
1531  UINT8 Reserved_10[6];
1532  // UINT64 FlushHintAddress[NumberOfFlushHintAddresses];
1534 
1535 ///
1536 /// Boot Error Record Table (BERT)
1537 ///
1538 typedef struct {
1543 
1544 ///
1545 /// BERT Version (as defined in ACPI 6.0 spec.)
1546 ///
1547 #define EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_REVISION 0x01
1548 
1549 ///
1550 /// Boot Error Region Block Status Definition
1551 ///
1552 typedef struct {
1560 
1561 ///
1562 /// Boot Error Region Definition
1563 ///
1564 typedef struct {
1571 
1572 //
1573 // Boot Error Severity types
1574 //
1575 #define EFI_ACPI_6_0_ERROR_SEVERITY_RECOVERABLE 0x00
1576 #define EFI_ACPI_6_0_ERROR_SEVERITY_FATAL 0x01
1577 #define EFI_ACPI_6_0_ERROR_SEVERITY_CORRECTED 0x02
1578 #define EFI_ACPI_6_0_ERROR_SEVERITY_NONE 0x03
1579 //
1580 // The term 'Correctable' is no longer being used as an error severity of the
1581 // reported error since ACPI Specification Version 5.1 Errata B.
1582 // The below macro is considered as deprecated and should no longer be used.
1583 //
1584 #define EFI_ACPI_6_0_ERROR_SEVERITY_CORRECTABLE 0x00
1585 
1586 ///
1587 /// Generic Error Data Entry Definition
1588 ///
1589 typedef struct {
1590  UINT8 SectionType[16];
1596  UINT8 FruId[16];
1597  UINT8 FruText[20];
1599 
1600 ///
1601 /// Generic Error Data Entry Version (as defined in ACPI 6.0 spec.)
1602 ///
1603 #define EFI_ACPI_6_0_GENERIC_ERROR_DATA_ENTRY_REVISION 0x0201
1604 
1605 ///
1606 /// HEST - Hardware Error Source Table
1607 ///
1608 typedef struct {
1612 
1613 ///
1614 /// HEST Version (as defined in ACPI 6.0 spec.)
1615 ///
1616 #define EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x01
1617 
1618 //
1619 // Error Source structure types.
1620 //
1621 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x00
1622 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x01
1623 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_NMI_ERROR 0x02
1624 #define EFI_ACPI_6_0_PCI_EXPRESS_ROOT_PORT_AER 0x06
1625 #define EFI_ACPI_6_0_PCI_EXPRESS_DEVICE_AER 0x07
1626 #define EFI_ACPI_6_0_PCI_EXPRESS_BRIDGE_AER 0x08
1627 #define EFI_ACPI_6_0_GENERIC_HARDWARE_ERROR 0x09
1628 
1629 //
1630 // Error Source structure flags.
1631 //
1632 #define EFI_ACPI_6_0_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0)
1633 #define EFI_ACPI_6_0_ERROR_SOURCE_FLAG_GLOBAL (1 << 1)
1634 
1635 ///
1636 /// IA-32 Architecture Machine Check Exception Structure Definition
1637 ///
1638 typedef struct {
1641  UINT8 Reserved0[2];
1649  UINT8 Reserved1[7];
1651 
1652 ///
1653 /// IA-32 Architecture Machine Check Bank Structure Definition
1654 ///
1655 typedef struct {
1666 
1667 ///
1668 /// IA-32 Architecture Machine Check Bank Structure MCA data format
1669 ///
1670 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x00
1671 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x01
1672 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x02
1673 
1674 //
1675 // Hardware Error Notification types. All other values are reserved
1676 //
1677 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_POLLED 0x00
1678 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x01
1679 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x02
1680 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_SCI 0x03
1681 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_NMI 0x04
1682 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CMCI 0x05
1683 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_MCE 0x06
1684 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_GPIO_SIGNAL 0x07
1685 
1686 ///
1687 /// Hardware Error Notification Configuration Write Enable Structure Definition
1688 ///
1689 typedef struct {
1698 
1699 ///
1700 /// Hardware Error Notification Structure Definition
1701 ///
1702 typedef struct {
1713 
1714 ///
1715 /// IA-32 Architecture Corrected Machine Check Structure Definition
1716 ///
1717 typedef struct {
1720  UINT8 Reserved0[2];
1727  UINT8 Reserved1[3];
1729 
1730 ///
1731 /// IA-32 Architecture NMI Error Structure Definition
1732 ///
1733 typedef struct {
1736  UINT8 Reserved0[2];
1741 
1742 ///
1743 /// PCI Express Root Port AER Structure Definition
1744 ///
1745 typedef struct {
1748  UINT8 Reserved0[2];
1757  UINT8 Reserved1[2];
1764 
1765 ///
1766 /// PCI Express Device AER Structure Definition
1767 ///
1768 typedef struct {
1771  UINT8 Reserved0[2];
1780  UINT8 Reserved1[2];
1786 
1787 ///
1788 /// PCI Express Bridge AER Structure Definition
1789 ///
1790 typedef struct {
1793  UINT8 Reserved0[2];
1802  UINT8 Reserved1[2];
1811 
1812 ///
1813 /// Generic Hardware Error Source Structure Definition
1814 ///
1815 typedef struct {
1828 
1829 ///
1830 /// Generic Error Status Definition
1831 ///
1832 typedef struct {
1839 
1840 ///
1841 /// ERST - Error Record Serialization Table
1842 ///
1843 typedef struct {
1846  UINT8 Reserved0[4];
1849 
1850 ///
1851 /// ERST Version (as defined in ACPI 6.0 spec.)
1852 ///
1853 #define EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x01
1854 
1855 ///
1856 /// ERST Serialization Actions
1857 ///
1858 #define EFI_ACPI_6_0_ERST_BEGIN_WRITE_OPERATION 0x00
1859 #define EFI_ACPI_6_0_ERST_BEGIN_READ_OPERATION 0x01
1860 #define EFI_ACPI_6_0_ERST_BEGIN_CLEAR_OPERATION 0x02
1861 #define EFI_ACPI_6_0_ERST_END_OPERATION 0x03
1862 #define EFI_ACPI_6_0_ERST_SET_RECORD_OFFSET 0x04
1863 #define EFI_ACPI_6_0_ERST_EXECUTE_OPERATION 0x05
1864 #define EFI_ACPI_6_0_ERST_CHECK_BUSY_STATUS 0x06
1865 #define EFI_ACPI_6_0_ERST_GET_COMMAND_STATUS 0x07
1866 #define EFI_ACPI_6_0_ERST_GET_RECORD_IDENTIFIER 0x08
1867 #define EFI_ACPI_6_0_ERST_SET_RECORD_IDENTIFIER 0x09
1868 #define EFI_ACPI_6_0_ERST_GET_RECORD_COUNT 0x0A
1869 #define EFI_ACPI_6_0_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B
1870 #define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D
1871 #define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E
1872 #define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F
1873 
1874 ///
1875 /// ERST Action Command Status
1876 ///
1877 #define EFI_ACPI_6_0_ERST_STATUS_SUCCESS 0x00
1878 #define EFI_ACPI_6_0_ERST_STATUS_NOT_ENOUGH_SPACE 0x01
1879 #define EFI_ACPI_6_0_ERST_STATUS_HARDWARE_NOT_AVAILABLE 0x02
1880 #define EFI_ACPI_6_0_ERST_STATUS_FAILED 0x03
1881 #define EFI_ACPI_6_0_ERST_STATUS_RECORD_STORE_EMPTY 0x04
1882 #define EFI_ACPI_6_0_ERST_STATUS_RECORD_NOT_FOUND 0x05
1883 
1884 ///
1885 /// ERST Serialization Instructions
1886 ///
1887 #define EFI_ACPI_6_0_ERST_READ_REGISTER 0x00
1888 #define EFI_ACPI_6_0_ERST_READ_REGISTER_VALUE 0x01
1889 #define EFI_ACPI_6_0_ERST_WRITE_REGISTER 0x02
1890 #define EFI_ACPI_6_0_ERST_WRITE_REGISTER_VALUE 0x03
1891 #define EFI_ACPI_6_0_ERST_NOOP 0x04
1892 #define EFI_ACPI_6_0_ERST_LOAD_VAR1 0x05
1893 #define EFI_ACPI_6_0_ERST_LOAD_VAR2 0x06
1894 #define EFI_ACPI_6_0_ERST_STORE_VAR1 0x07
1895 #define EFI_ACPI_6_0_ERST_ADD 0x08
1896 #define EFI_ACPI_6_0_ERST_SUBTRACT 0x09
1897 #define EFI_ACPI_6_0_ERST_ADD_VALUE 0x0A
1898 #define EFI_ACPI_6_0_ERST_SUBTRACT_VALUE 0x0B
1899 #define EFI_ACPI_6_0_ERST_STALL 0x0C
1900 #define EFI_ACPI_6_0_ERST_STALL_WHILE_TRUE 0x0D
1901 #define EFI_ACPI_6_0_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E
1902 #define EFI_ACPI_6_0_ERST_GOTO 0x0F
1903 #define EFI_ACPI_6_0_ERST_SET_SRC_ADDRESS_BASE 0x10
1904 #define EFI_ACPI_6_0_ERST_SET_DST_ADDRESS_BASE 0x11
1905 #define EFI_ACPI_6_0_ERST_MOVE_DATA 0x12
1906 
1907 ///
1908 /// ERST Instruction Flags
1909 ///
1910 #define EFI_ACPI_6_0_ERST_PRESERVE_REGISTER 0x01
1911 
1912 ///
1913 /// ERST Serialization Instruction Entry
1914 ///
1915 typedef struct {
1924 
1925 ///
1926 /// EINJ - Error Injection Table
1927 ///
1928 typedef struct {
1932  UINT8 Reserved0[3];
1935 
1936 ///
1937 /// EINJ Version (as defined in ACPI 6.0 spec.)
1938 ///
1939 #define EFI_ACPI_6_0_ERROR_INJECTION_TABLE_REVISION 0x01
1940 
1941 ///
1942 /// EINJ Error Injection Actions
1943 ///
1944 #define EFI_ACPI_6_0_EINJ_BEGIN_INJECTION_OPERATION 0x00
1945 #define EFI_ACPI_6_0_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x01
1946 #define EFI_ACPI_6_0_EINJ_SET_ERROR_TYPE 0x02
1947 #define EFI_ACPI_6_0_EINJ_GET_ERROR_TYPE 0x03
1948 #define EFI_ACPI_6_0_EINJ_END_OPERATION 0x04
1949 #define EFI_ACPI_6_0_EINJ_EXECUTE_OPERATION 0x05
1950 #define EFI_ACPI_6_0_EINJ_CHECK_BUSY_STATUS 0x06
1951 #define EFI_ACPI_6_0_EINJ_GET_COMMAND_STATUS 0x07
1952 #define EFI_ACPI_6_0_EINJ_TRIGGER_ERROR 0xFF
1953 
1954 ///
1955 /// EINJ Action Command Status
1956 ///
1957 #define EFI_ACPI_6_0_EINJ_STATUS_SUCCESS 0x00
1958 #define EFI_ACPI_6_0_EINJ_STATUS_UNKNOWN_FAILURE 0x01
1959 #define EFI_ACPI_6_0_EINJ_STATUS_INVALID_ACCESS 0x02
1960 
1961 ///
1962 /// EINJ Error Type Definition
1963 ///
1964 #define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0)
1965 #define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1)
1966 #define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2)
1967 #define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3)
1968 #define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4)
1969 #define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5)
1970 #define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6)
1971 #define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7)
1972 #define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8)
1973 #define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9)
1974 #define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10)
1975 #define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11)
1976 
1977 ///
1978 /// EINJ Injection Instructions
1979 ///
1980 #define EFI_ACPI_6_0_EINJ_READ_REGISTER 0x00
1981 #define EFI_ACPI_6_0_EINJ_READ_REGISTER_VALUE 0x01
1982 #define EFI_ACPI_6_0_EINJ_WRITE_REGISTER 0x02
1983 #define EFI_ACPI_6_0_EINJ_WRITE_REGISTER_VALUE 0x03
1984 #define EFI_ACPI_6_0_EINJ_NOOP 0x04
1985 
1986 ///
1987 /// EINJ Instruction Flags
1988 ///
1989 #define EFI_ACPI_6_0_EINJ_PRESERVE_REGISTER 0x01
1990 
1991 ///
1992 /// EINJ Injection Instruction Entry
1993 ///
1994 typedef struct {
2003 
2004 ///
2005 /// EINJ Trigger Action Table
2006 ///
2007 typedef struct {
2013 
2014 ///
2015 /// Platform Communications Channel Table (PCCT)
2016 ///
2017 typedef struct {
2022 
2023 ///
2024 /// PCCT Version (as defined in ACPI 6.0 spec.)
2025 ///
2026 #define EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL_TABLE_REVISION 0x01
2027 
2028 ///
2029 /// PCCT Global Flags
2030 ///
2031 #define EFI_ACPI_6_0_PCCT_FLAGS_SCI_DOORBELL BIT0
2032 
2033 //
2034 // PCCT Subspace type
2035 //
2036 #define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_GENERIC 0x00
2037 #define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS 0x01
2038 #define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS 0x02
2039 
2040 ///
2041 /// PCC Subspace Structure Header
2042 ///
2043 typedef struct {
2047 
2048 ///
2049 /// Generic Communications Subspace Structure
2050 ///
2051 typedef struct {
2064 
2065 ///
2066 /// Generic Communications Channel Shared Memory Region
2067 ///
2068 
2069 typedef struct {
2074 
2075 typedef struct {
2083 
2084 typedef struct {
2089 
2090 #define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_POLARITY BIT0
2091 #define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_MODE BIT1
2092 
2093 ///
2094 /// Type 1 HW-Reduced Communications Subspace Structure
2095 ///
2096 typedef struct {
2111 
2112 ///
2113 /// Type 2 HW-Reduced Communications Subspace Structure
2114 ///
2115 typedef struct {
2133 
2134 //
2135 // Known table signatures
2136 //
2137 
2138 ///
2139 /// "RSD PTR " Root System Description Pointer
2140 ///
2141 #define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
2142 
2143 ///
2144 /// "APIC" Multiple APIC Description Table
2145 ///
2146 #define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
2147 
2148 ///
2149 /// "BERT" Boot Error Record Table
2150 ///
2151 #define EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T')
2152 
2153 ///
2154 /// "BGRT" Boot Graphics Resource Table
2155 ///
2156 #define EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('B', 'G', 'R', 'T')
2157 
2158 ///
2159 /// "CPEP" Corrected Platform Error Polling Table
2160 ///
2161 #define EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')
2162 
2163 ///
2164 /// "DSDT" Differentiated System Description Table
2165 ///
2166 #define EFI_ACPI_6_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
2167 
2168 ///
2169 /// "ECDT" Embedded Controller Boot Resources Table
2170 ///
2171 #define EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
2172 
2173 ///
2174 /// "EINJ" Error Injection Table
2175 ///
2176 #define EFI_ACPI_6_0_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J')
2177 
2178 ///
2179 /// "ERST" Error Record Serialization Table
2180 ///
2181 #define EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T')
2182 
2183 ///
2184 /// "FACP" Fixed ACPI Description Table
2185 ///
2186 #define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
2187 
2188 ///
2189 /// "FACS" Firmware ACPI Control Structure
2190 ///
2191 #define EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
2192 
2193 ///
2194 /// "FPDT" Firmware Performance Data Table
2195 ///
2196 #define EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_DATA_TABLE_SIGNATURE SIGNATURE_32('F', 'P', 'D', 'T')
2197 
2198 ///
2199 /// "GTDT" Generic Timer Description Table
2200 ///
2201 #define EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('G', 'T', 'D', 'T')
2202 
2203 ///
2204 /// "HEST" Hardware Error Source Table
2205 ///
2206 #define EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T')
2207 
2208 ///
2209 /// "MPST" Memory Power State Table
2210 ///
2211 #define EFI_ACPI_6_0_MEMORY_POWER_STATE_TABLE_SIGNATURE SIGNATURE_32('M', 'P', 'S', 'T')
2212 
2213 ///
2214 /// "MSCT" Maximum System Characteristics Table
2215 ///
2216 #define EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T')
2217 
2218 ///
2219 /// "NFIT" NVDIMM Firmware Interface Table
2220 ///
2221 #define EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('N', 'F', 'I', 'T')
2222 
2223 ///
2224 /// "PMTT" Platform Memory Topology Table
2225 ///
2226 #define EFI_ACPI_6_0_PLATFORM_MEMORY_TOPOLOGY_TABLE_SIGNATURE SIGNATURE_32('P', 'M', 'T', 'T')
2227 
2228 ///
2229 /// "PSDT" Persistent System Description Table
2230 ///
2231 #define EFI_ACPI_6_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
2232 
2233 ///
2234 /// "RASF" ACPI RAS Feature Table
2235 ///
2236 #define EFI_ACPI_6_0_ACPI_RAS_FEATURE_TABLE_SIGNATURE SIGNATURE_32('R', 'A', 'S', 'F')
2237 
2238 ///
2239 /// "RSDT" Root System Description Table
2240 ///
2241 #define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
2242 
2243 ///
2244 /// "SBST" Smart Battery Specification Table
2245 ///
2246 #define EFI_ACPI_6_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
2247 
2248 ///
2249 /// "SLIT" System Locality Information Table
2250 ///
2251 #define EFI_ACPI_6_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
2252 
2253 ///
2254 /// "SRAT" System Resource Affinity Table
2255 ///
2256 #define EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
2257 
2258 ///
2259 /// "SSDT" Secondary System Description Table
2260 ///
2261 #define EFI_ACPI_6_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
2262 
2263 ///
2264 /// "XSDT" Extended System Description Table
2265 ///
2266 #define EFI_ACPI_6_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
2267 
2268 ///
2269 /// "BOOT" MS Simple Boot Spec
2270 ///
2271 #define EFI_ACPI_6_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
2272 
2273 ///
2274 /// "CSRT" MS Core System Resource Table
2275 ///
2276 #define EFI_ACPI_6_0_CORE_SYSTEM_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('C', 'S', 'R', 'T')
2277 
2278 ///
2279 /// "DBG2" MS Debug Port 2 Spec
2280 ///
2281 #define EFI_ACPI_6_0_DEBUG_PORT_2_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', '2')
2282 
2283 ///
2284 /// "DBGP" MS Debug Port Spec
2285 ///
2286 #define EFI_ACPI_6_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
2287 
2288 ///
2289 /// "DMAR" DMA Remapping Table
2290 ///
2291 #define EFI_ACPI_6_0_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R')
2292 
2293 ///
2294 /// "DRTM" Dynamic Root of Trust for Measurement Table
2295 ///
2296 #define EFI_ACPI_6_0_DYNAMIC_ROOT_OF_TRUST_FOR_MEASUREMENT_TABLE_SIGNATURE SIGNATURE_32('D', 'R', 'T', 'M')
2297 
2298 ///
2299 /// "ETDT" Event Timer Description Table
2300 ///
2301 #define EFI_ACPI_6_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
2302 
2303 ///
2304 /// "HPET" IA-PC High Precision Event Timer Table
2305 ///
2306 #define EFI_ACPI_6_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')
2307 
2308 ///
2309 /// "iBFT" iSCSI Boot Firmware Table
2310 ///
2311 #define EFI_ACPI_6_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')
2312 
2313 ///
2314 /// "IORT" I/O Remapping Table
2315 ///
2316 #define EFI_ACPI_6_0_IO_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('I', 'O', 'R', 'T')
2317 
2318 ///
2319 /// "IVRS" I/O Virtualization Reporting Structure
2320 ///
2321 #define EFI_ACPI_6_0_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S')
2322 
2323 ///
2324 /// "LPIT" Low Power Idle Table
2325 ///
2326 #define EFI_ACPI_6_0_LOW_POWER_IDLE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('L', 'P', 'I', 'T')
2327 
2328 ///
2329 /// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
2330 ///
2331 #define EFI_ACPI_6_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
2332 
2333 ///
2334 /// "MCHI" Management Controller Host Interface Table
2335 ///
2336 #define EFI_ACPI_6_0_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I')
2337 
2338 ///
2339 /// "MSDM" MS Data Management Table
2340 ///
2341 #define EFI_ACPI_6_0_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M')
2342 
2343 ///
2344 /// "PCCT" Platform Communications Channel Table
2345 ///
2346 #define EFI_ACPI_6_0_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE SIGNATURE_32('P', 'C', 'C', 'T')
2347 
2348 ///
2349 /// "SLIC" MS Software Licensing Table Specification
2350 ///
2351 #define EFI_ACPI_6_0_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C')
2352 
2353 ///
2354 /// "SPCR" Serial Port Console Redirection Table
2355 ///
2356 #define EFI_ACPI_6_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
2357 
2358 ///
2359 /// "SPMI" Server Platform Management Interface Table
2360 ///
2361 #define EFI_ACPI_6_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
2362 
2363 ///
2364 /// "STAO" _STA Override Table
2365 ///
2366 #define EFI_ACPI_6_0_STA_OVERRIDE_TABLE_SIGNATURE SIGNATURE_32('S', 'T', 'A', 'O')
2367 
2368 ///
2369 /// "TCPA" Trusted Computing Platform Alliance Capabilities Table
2370 ///
2371 #define EFI_ACPI_6_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')
2372 
2373 ///
2374 /// "TPM2" Trusted Computing Platform 1 Table
2375 ///
2376 #define EFI_ACPI_6_0_TRUSTED_COMPUTING_PLATFORM_2_TABLE_SIGNATURE SIGNATURE_32('T', 'P', 'M', '2')
2377 
2378 ///
2379 /// "UEFI" UEFI ACPI Data Table
2380 ///
2381 #define EFI_ACPI_6_0_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I')
2382 
2383 ///
2384 /// "WAET" Windows ACPI Emulated Devices Table
2385 ///
2386 #define EFI_ACPI_6_0_WINDOWS_ACPI_EMULATED_DEVICES_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T')
2387 
2388 ///
2389 /// "WDAT" Watchdog Action Table
2390 ///
2391 #define EFI_ACPI_6_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')
2392 
2393 ///
2394 /// "WDRT" Watchdog Resource Table
2395 ///
2396 #define EFI_ACPI_6_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')
2397 
2398 ///
2399 /// "WPBT" MS Platform Binary Table
2400 ///
2401 #define EFI_ACPI_6_0_PLATFORM_BINARY_TABLE_SIGNATURE SIGNATURE_32('W', 'P', 'B', 'T')
2402 
2403 ///
2404 /// "XENV" Xen Project Table
2405 ///
2406 #define EFI_ACPI_6_0_XEN_PROJECT_TABLE_SIGNATURE SIGNATURE_32('X', 'E', 'N', 'V')
2407 
2408 #pragma pack()
2409 
2410 #endif
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk
Definition: Acpi60.h:174
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg
Definition: Acpi60.h:176
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1226
UINT64 SuspendEnd
Timer value recorded at the final firmware write to SLP_TYP (or other mechanism) used to trigger hard...
Definition: Acpi60.h:1259
Common Memory Aggregator Device Structure.
Definition: Acpi60.h:970
FPDT Firmware Basic Boot Performance Pointer Record Structure.
Definition: Acpi60.h:1135
Non-Maskable Interrupt Source Structure.
Definition: Acpi60.h:403
UINT8 Instruction
Definition: Acpi60.h:1996
IO APIC Structure.
Definition: Acpi60.h:355
Firmware Performance Record Table definition.
Definition: Acpi60.h:1265
UINT32 ImageOffsetX
A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image.
Definition: Acpi60.h:1054
IA-32 Architecture NMI Error Structure Definition.
Definition: Acpi60.h:1733
Memory Power State Table definition.
Definition: Acpi60.h:862
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk
Definition: Acpi60.h:167
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1148
Memory Affinity Structure Definition.
Definition: Acpi60.h:677
EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header
Definition: Acpi60.h:999
Generic Error Data Entry Definition.
Definition: Acpi60.h:1589
ACPI RASF Parameter Block structure for PATROL_SCRUB.
Definition: Acpi60.h:841
UINT8 Reserved0
Definition: Acpi60.h:1998
UINT8 ValidationBits
Definition: Acpi60.h:1593
FPDT Performance Record header.
Definition: Acpi60.h:1118
System Resource Affinity Table (SRAT).
Definition: Acpi60.h:634
EFI_ACPI_6_0_NFIT_DEVICE_HANDLE NFITDeviceHandle
Definition: Acpi60.h:1529
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk
Definition: Acpi60.h:169
UINT8 Reserved0
Definition: Acpi60.h:1919
UINT32_t Reserved[2]
Must be zero.
Definition: pxe_api.h:76
128 bit buffer containing a unique identifier value.
Definition: Base.h:215
Processor Local APIC Structure Definition.
Definition: Acpi60.h:339
UINT8 Instruction
Definition: Acpi60.h:1917
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk
Definition: Acpi60.h:168
ERST - Error Record Serialization Table.
Definition: Acpi60.h:1843
Root System Description Pointer Structure.
Definition: Acpi60.h:70
Firmware ACPI Control Structure.
Definition: Acpi60.h:247
UINT32 ImageOffsetY
A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image.
Definition: Acpi60.h:1060
Maximum Proximity Domain Information Structure Definition.
Definition: Acpi60.h:791
PCI Express Bridge AER Structure Definition.
Definition: Acpi60.h:1790
GICR Structure.
Definition: Acpi60.h:577
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1027
EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure
Definition: Acpi60.h:1725
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1539
UINT8 ProcessorPowerEfficiencyClass
Definition: Acpi60.h:522
DIMM Memory Aggregator Device Structure.
Definition: Acpi60.h:1015
unsigned int UINT32
Definition: ProcessorBind.h:98
Embedded Controller Boot Resources Table (ECDT) The table is followed by a null terminated ASCII stri...
Definition: Acpi60.h:617
Platform Interrupt Sources Structure.
Definition: Acpi60.h:461
UINT64 ExitBootServicesEntry
Timer value logged at the point when the OS loader calls the ExitBootServices function for UEFI compa...
Definition: Acpi60.h:1183
UINT16 Version
2-bytes (16 bit) version ID.
Definition: Acpi60.h:1031
UINT8 Flags
Definition: Acpi60.h:1918
UINT64 AverageResume
Average timer value of all resume cycles logged since the last full boot sequence,...
Definition: Acpi60.h:1241
GICC Affinity Structure Definition.
Definition: Acpi60.h:715
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister
Definition: Acpi60.h:2123
Fixed ACPI Description Table Structure (FADT)
Definition: Acpi60.h:121
Platform Communications Channel Table (PCCT)
Definition: Acpi60.h:2017
Processor Local x2APIC Structure Definition.
Definition: Acpi60.h:482
UINT64 Value
Definition: Acpi60.h:2000
Type 2 HW-Reduced Communications Subspace Structure.
Definition: Acpi60.h:2115
ACPI RAS Feature Table definition.
Definition: Acpi60.h:803
UINT8 ImageType
1-byte enumerated type field indicating format of the image.
Definition: Acpi60.h:1043
EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure
Definition: Acpi60.h:1825
unsigned char UINT8
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:958
Processor Local APIC/SAPIC Affinity Structure Definition.
Definition: Acpi60.h:658
EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus
Definition: Acpi60.h:1833
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1273
Interrupt Source Override Structure.
Definition: Acpi60.h:367
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion
Definition: Acpi60.h:1999
UINT32 PerformanceInterruptGsiv
Definition: Acpi60.h:514
System Locality Distance Information Table (SLIT).
Definition: Acpi60.h:733
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1136
Boot Error Region Block Status Definition.
Definition: Acpi60.h:1552
UINT8 InjectionAction
Definition: Acpi60.h:1995
GIC Interrupt Translation Service Structure.
Definition: Acpi60.h:588
HEST - Hardware Error Source Table.
Definition: Acpi60.h:1608
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk
Definition: Acpi60.h:173
Multiple APIC Description Table header definition.
Definition: Acpi60.h:293
Corrected Platform Error Polling Table (CPEP)
Definition: Acpi60.h:746
UINT64 ImageAddress
8-byte (64 bit) physical address pointing to the firmware's in-memory copy of the image bitmap.
Definition: Acpi60.h:1048
Boot Error Region Definition.
Definition: Acpi60.h:1564
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1370
IA-32 Architecture Machine Check Bank Structure Definition.
Definition: Acpi60.h:1655
Processor Local x2APIC Affinity Structure Definition.
Definition: Acpi60.h:701
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ResetReg
Definition: Acpi60.h:161
Generic Communications Channel Shared Memory Region.
Definition: Acpi60.h:2069
UINT32 VGICMaintenanceInterrupt
Definition: Acpi60.h:519
EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND Command
Definition: Acpi60.h:2086
GIC Distributor Structure.
Definition: Acpi60.h:536
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcData
Definition: Acpi60.h:620
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister
Definition: Acpi60.h:2104
EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header
Definition: Acpi60.h:1201
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellAckRegister
Definition: Acpi60.h:2129
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk
Definition: Acpi60.h:172
MPST Memory Power State Characteristics Table.
Definition: Acpi60.h:936
Platform Interrupt Sources Structure Definition.
Definition: Acpi60.h:379
FPDT Performance Table header.
Definition: Acpi60.h:1127
Generic Timer Description Table definition.
Definition: Acpi60.h:1272
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg
Definition: Acpi60.h:175
GIC MSI Frame Structure.
Definition: Acpi60.h:558
UINT8 Status
1-byte status field indicating current status about the table.
Definition: Acpi60.h:1037
ACPI RASF Platform Communication Channel Shared Memory Region definition.
Definition: Acpi60.h:816
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister
Definition: Acpi60.h:2057
UINT64 FullResume
Timer recorded at the end of BIOS S3 resume, just prior to handoff to the OS waking vector.
Definition: Acpi60.h:1235
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:122
ERST Serialization Instruction Entry.
Definition: Acpi60.h:1915
Local APIC NMI Structure.
Definition: Acpi60.h:413
EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header
Definition: Acpi60.h:1016
MPST Memory Power Node Table.
Definition: Acpi60.h:906
FPDT Basic S3 Resume Performance Record.
Definition: Acpi60.h:1225
unsigned short UINT16
Hardware Error Notification Structure Definition.
Definition: Acpi60.h:1702
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk
Definition: Acpi60.h:170
EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable
Definition: Acpi60.h:1705
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress
Definition: Acpi60.h:1824
Common table header, this prefaces all ACPI tables, including FACS, but excluding the RSD PTR structu...
Definition: Acpi60.h:91
UINT64 Mask
Definition: Acpi60.h:2001
UINT64 S3PerformanceTablePointer
64-bit processor-relative physical address of the S3 Performance Table.
Definition: Acpi60.h:1153
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:863
Local x2APIC NMI Structure.
Definition: Acpi60.h:494
EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header
Definition: Acpi60.h:1216
Maximum System Characteristics Table (MSCT)
Definition: Acpi60.h:775
Boot Graphics Resource Table definition.
Definition: Acpi60.h:1026
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1160
FPDT S3 Performance Table Pointer Record Structure.
Definition: Acpi60.h:1147
The common ACPI description table header.
Definition: Acpi10.h:29
MemoryController Memory Aggregator Device Structure.
Definition: Acpi60.h:998
Smart Battery Description Table (SBST)
Definition: Acpi60.h:600
EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header
Definition: Acpi60.h:989
UINT8 Flags
Definition: Acpi60.h:1997
UINT32 ResumeCount
A count of the number of S3 resume cycles since the last full boot sequence.
Definition: Acpi60.h:1230
EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS Status
Definition: Acpi60.h:2087
GIC Structure.
Definition: Acpi60.h:506
Local SAPIC Structure This struct followed by a null-terminated ASCII string - ACPI Processor UID Str...
Definition: Acpi60.h:447
UINT8 SerializationAction
Definition: Acpi60.h:1916
unsigned long long UINT64
Definition: ProcessorBind.h:96
EINJ - Error Injection Table.
Definition: Acpi60.h:1928
UINT32 ErrorSeverity
Definition: Acpi60.h:1591
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:601
UINT64 OsLoaderStartImageStart
Timer value logged just prior to launching the previously loaded OS boot loader image.
Definition: Acpi60.h:1177
ACPI 5.1 definitions from the ACPI Specification Revision 5.1 Errata B January, 2016.
UINT64 OsLoaderLoadImageStart
Timer value logged just prior to loading the OS boot loader into memory.
Definition: Acpi60.h:1171
UINT64 DiscoveryRangeBaseAddress
Definition: Acpi60.h:581
EINJ Trigger Action Table.
Definition: Acpi60.h:2007
FILE_LICENCE(BSD2_PATENT)
IA-32 Architecture Machine Check Exception Structure Definition.
Definition: Acpi60.h:1638
Generic Error Status Definition.
Definition: Acpi60.h:1832
FPDT Basic S3 Suspend Performance Record.
Definition: Acpi60.h:1247
Type 1 HW-Reduced Communications Subspace Structure.
Definition: Acpi60.h:2096
PCI Express Device AER Structure Definition.
Definition: Acpi60.h:1768
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1266
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcControl
Definition: Acpi60.h:619
PCI Express Root Port AER Structure Definition.
Definition: Acpi60.h:1745
PCC Subspace Structure Header.
Definition: Acpi60.h:2043
EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus
Definition: Acpi60.h:1565
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion
Definition: Acpi60.h:1920
Generic Communications Subspace Structure.
Definition: Acpi60.h:2051
IO SAPIC Structure.
Definition: Acpi60.h:434
UINT64 BootPerformanceTablePointer
64-bit processor-relative physical address of the Basic Boot Performance Table.
Definition: Acpi60.h:1141
UINT64 Mask
Definition: Acpi60.h:1922
IA-32 Architecture Corrected Machine Check Structure Definition.
Definition: Acpi60.h:1717
Generic Hardware Error Source Structure Definition.
Definition: Acpi60.h:1815
UINT64 ResetEnd
Timer value logged at the beginning of firmware image execution.
Definition: Acpi60.h:1166
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1248
MPST Platform Communication Channel Shared Memory Region definition.
Definition: Acpi60.h:878
UINT64 SuspendStart
Timer value recorded at the OS write to SLP_TYP upon entry to S3.
Definition: Acpi60.h:1253
Hardware Error Notification Configuration Write Enable Structure Definition.
Definition: Acpi60.h:1689
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:804
Local APIC Address Override Structure.
Definition: Acpi60.h:424
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk
Definition: Acpi60.h:171
Memory Topology Table definition.
Definition: Acpi60.h:957
FPDT Firmware Basic Boot Performance Record Structure.
Definition: Acpi60.h:1159
Corrected Platform Error Polling Processor Structure Definition.
Definition: Acpi60.h:764
UINT64 ExitBootServicesExit
Timer value logged at the point just prior to when the OS loader gaining control back from calls the ...
Definition: Acpi60.h:1189
UINT64 Value
Definition: Acpi60.h:1921
UINT16 Revision
Definition: Acpi60.h:1592
EINJ Injection Instruction Entry.
Definition: Acpi60.h:1994
ACPI 6.0 Generic Address Space definition.
Definition: Acpi60.h:35
GT Block Timer Structure.
Definition: Acpi60.h:1322
UINT32 ErrorDataLength
Definition: Acpi60.h:1595
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1609
Boot Error Record Table (BERT)
Definition: Acpi60.h:1538
Socket Memory Aggregator Device Structure.
Definition: Acpi60.h:988
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1929
SBSA Generic Watchdog Structure.
Definition: Acpi60.h:1349
UINT8 Flags
Definition: Acpi60.h:1594