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  Copyright (C) 2025, Advanced Micro Devices, Inc. All rights reserved.
8  SPDX-License-Identifier: BSD-2-Clause-Patent
9 **/
10 
11 #ifndef _ACPI_6_0_H_
12 #define _ACPI_6_0_H_
13 
14 FILE_LICENCE ( BSD2_PATENT );
15 FILE_SECBOOT ( PERMITTED );
16 
18 
19 ///
20 /// _CSD Revision for ACPI 6.0
21 ///
22 #define EFI_ACPI_6_0_AML_CSD_REVISION 0
23 
24 ///
25 /// _CSD NumEntries for ACPI 6.0
26 ///
27 #define EFI_ACPI_6_0_AML_CSD_NUM_ENTRIES 6
28 
29 ///
30 /// _PSD Revision for ACPI 6.0
31 ///
32 #define EFI_ACPI_6_0_AML_PSD_REVISION 0
33 
34 ///
35 /// _CPC Revision for ACPI 6.0
36 ///
37 #define EFI_ACPI_6_0_AML_CPC_REVISION 2
38 
39 //
40 // Ensure proper structure formats
41 //
42 #pragma pack(1)
43 
44 ///
45 /// ACPI 6.0 Generic Address Space definition
46 ///
47 typedef struct {
54 
55 //
56 // Generic Address Space Address IDs
57 //
58 #define EFI_ACPI_6_0_SYSTEM_MEMORY 0
59 #define EFI_ACPI_6_0_SYSTEM_IO 1
60 #define EFI_ACPI_6_0_PCI_CONFIGURATION_SPACE 2
61 #define EFI_ACPI_6_0_EMBEDDED_CONTROLLER 3
62 #define EFI_ACPI_6_0_SMBUS 4
63 #define EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL 0x0A
64 #define EFI_ACPI_6_0_FUNCTIONAL_FIXED_HARDWARE 0x7F
65 
66 //
67 // Generic Address Space Access Sizes
68 //
69 #define EFI_ACPI_6_0_UNDEFINED 0
70 #define EFI_ACPI_6_0_BYTE 1
71 #define EFI_ACPI_6_0_WORD 2
72 #define EFI_ACPI_6_0_DWORD 3
73 #define EFI_ACPI_6_0_QWORD 4
74 
75 //
76 // ACPI 6.0 table structures
77 //
78 
79 ///
80 /// Root System Description Pointer Structure
81 ///
82 typedef struct {
85  UINT8 OemId[6];
93 
94 ///
95 /// RSD_PTR Revision (as defined in ACPI 6.0 spec.)
96 ///
97 #define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 6.0) says current value is 2
98 
99 ///
100 /// Common table header, this prefaces all ACPI tables, including FACS, but
101 /// excluding the RSD PTR structure
102 ///
103 typedef struct {
107 
108 //
109 // Root System Description Table
110 // No definition needed as it is a common description table header, the same with
111 // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
112 //
113 
114 ///
115 /// RSDT Revision (as defined in ACPI 6.0 spec.)
116 ///
117 #define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
118 
119 //
120 // Extended System Description Table
121 // No definition needed as it is a common description table header, the same with
122 // EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
123 //
124 
125 ///
126 /// XSDT Revision (as defined in ACPI 6.0 spec.)
127 ///
128 #define EFI_ACPI_6_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
129 
130 ///
131 /// Fixed ACPI Description Table Structure (FADT)
132 ///
133 typedef struct {
191 
192 ///
193 /// FADT Version (as defined in ACPI 6.0 spec.)
194 ///
195 #define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x06
196 #define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION 0x00
197 
198 //
199 // Fixed ACPI Description Table Preferred Power Management Profile
200 //
201 #define EFI_ACPI_6_0_PM_PROFILE_UNSPECIFIED 0
202 #define EFI_ACPI_6_0_PM_PROFILE_DESKTOP 1
203 #define EFI_ACPI_6_0_PM_PROFILE_MOBILE 2
204 #define EFI_ACPI_6_0_PM_PROFILE_WORKSTATION 3
205 #define EFI_ACPI_6_0_PM_PROFILE_ENTERPRISE_SERVER 4
206 #define EFI_ACPI_6_0_PM_PROFILE_SOHO_SERVER 5
207 #define EFI_ACPI_6_0_PM_PROFILE_APPLIANCE_PC 6
208 #define EFI_ACPI_6_0_PM_PROFILE_PERFORMANCE_SERVER 7
209 #define EFI_ACPI_6_0_PM_PROFILE_TABLET 8
210 
211 //
212 // Fixed ACPI Description Table Boot Architecture Flags
213 // All other bits are reserved and must be set to 0.
214 //
215 #define EFI_ACPI_6_0_LEGACY_DEVICES BIT0
216 #define EFI_ACPI_6_0_8042 BIT1
217 #define EFI_ACPI_6_0_VGA_NOT_PRESENT BIT2
218 #define EFI_ACPI_6_0_MSI_NOT_SUPPORTED BIT3
219 #define EFI_ACPI_6_0_PCIE_ASPM_CONTROLS BIT4
220 #define EFI_ACPI_6_0_CMOS_RTC_NOT_PRESENT BIT5
221 
222 //
223 // Fixed ACPI Description Table Arm Boot Architecture Flags
224 // All other bits are reserved and must be set to 0.
225 //
226 #define EFI_ACPI_6_0_ARM_PSCI_COMPLIANT BIT0
227 #define EFI_ACPI_6_0_ARM_PSCI_USE_HVC BIT1
228 
229 //
230 // Fixed ACPI Description Table Fixed Feature Flags
231 // All other bits are reserved and must be set to 0.
232 //
233 #define EFI_ACPI_6_0_WBINVD BIT0
234 #define EFI_ACPI_6_0_WBINVD_FLUSH BIT1
235 #define EFI_ACPI_6_0_PROC_C1 BIT2
236 #define EFI_ACPI_6_0_P_LVL2_UP BIT3
237 #define EFI_ACPI_6_0_PWR_BUTTON BIT4
238 #define EFI_ACPI_6_0_SLP_BUTTON BIT5
239 #define EFI_ACPI_6_0_FIX_RTC BIT6
240 #define EFI_ACPI_6_0_RTC_S4 BIT7
241 #define EFI_ACPI_6_0_TMR_VAL_EXT BIT8
242 #define EFI_ACPI_6_0_DCK_CAP BIT9
243 #define EFI_ACPI_6_0_RESET_REG_SUP BIT10
244 #define EFI_ACPI_6_0_SEALED_CASE BIT11
245 #define EFI_ACPI_6_0_HEADLESS BIT12
246 #define EFI_ACPI_6_0_CPU_SW_SLP BIT13
247 #define EFI_ACPI_6_0_PCI_EXP_WAK BIT14
248 #define EFI_ACPI_6_0_USE_PLATFORM_CLOCK BIT15
249 #define EFI_ACPI_6_0_S4_RTC_STS_VALID BIT16
250 #define EFI_ACPI_6_0_REMOTE_POWER_ON_CAPABLE BIT17
251 #define EFI_ACPI_6_0_FORCE_APIC_CLUSTER_MODEL BIT18
252 #define EFI_ACPI_6_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19
253 #define EFI_ACPI_6_0_HW_REDUCED_ACPI BIT20
254 #define EFI_ACPI_6_0_LOW_POWER_S0_IDLE_CAPABLE BIT21
255 
256 ///
257 /// Firmware ACPI Control Structure
258 ///
259 typedef struct {
268  UINT8 Reserved0[3];
270  UINT8 Reserved1[24];
272 
273 ///
274 /// FACS Version (as defined in ACPI 6.0 spec.)
275 ///
276 #define EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02
277 
278 ///
279 /// Firmware Control Structure Feature Flags
280 /// All other bits are reserved and must be set to 0.
281 ///
282 #define EFI_ACPI_6_0_S4BIOS_F BIT0
283 #define EFI_ACPI_6_0_64BIT_WAKE_SUPPORTED_F BIT1
284 
285 ///
286 /// OSPM Enabled Firmware Control Structure Flags
287 /// All other bits are reserved and must be set to 0.
288 ///
289 #define EFI_ACPI_6_0_OSPM_64BIT_WAKE_F BIT0
290 
291 //
292 // Differentiated System Description Table,
293 // Secondary System Description Table
294 // and Persistent System Description Table,
295 // no definition needed as they are common description table header, the same with
296 // EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
297 //
298 #define EFI_ACPI_6_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
299 #define EFI_ACPI_6_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
300 
301 ///
302 /// Multiple APIC Description Table header definition. The rest of the table
303 /// must be defined in a platform specific manner.
304 ///
305 typedef struct {
310 
311 ///
312 /// MADT Revision (as defined in ACPI 6.0 Errata A spec.)
313 ///
314 #define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x04
315 
316 ///
317 /// Multiple APIC Flags
318 /// All other bits are reserved and must be set to 0.
319 ///
320 #define EFI_ACPI_6_0_PCAT_COMPAT BIT0
321 
322 //
323 // Multiple APIC Description Table APIC structure types
324 // All other values between 0x0D and 0x7F are reserved and
325 // will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
326 //
327 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC 0x00
328 #define EFI_ACPI_6_0_IO_APIC 0x01
329 #define EFI_ACPI_6_0_INTERRUPT_SOURCE_OVERRIDE 0x02
330 #define EFI_ACPI_6_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
331 #define EFI_ACPI_6_0_LOCAL_APIC_NMI 0x04
332 #define EFI_ACPI_6_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
333 #define EFI_ACPI_6_0_IO_SAPIC 0x06
334 #define EFI_ACPI_6_0_LOCAL_SAPIC 0x07
335 #define EFI_ACPI_6_0_PLATFORM_INTERRUPT_SOURCES 0x08
336 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC 0x09
337 #define EFI_ACPI_6_0_LOCAL_X2APIC_NMI 0x0A
338 #define EFI_ACPI_6_0_GIC 0x0B
339 #define EFI_ACPI_6_0_GICD 0x0C
340 #define EFI_ACPI_6_0_GIC_MSI_FRAME 0x0D
341 #define EFI_ACPI_6_0_GICR 0x0E
342 #define EFI_ACPI_6_0_GIC_ITS 0x0F
343 
344 //
345 // APIC Structure Definitions
346 //
347 
348 ///
349 /// Processor Local APIC Structure Definition
350 ///
351 typedef struct {
358 
359 ///
360 /// Local APIC Flags. All other bits are reserved and must be 0.
361 ///
362 #define EFI_ACPI_6_0_LOCAL_APIC_ENABLED BIT0
363 
364 ///
365 /// IO APIC Structure
366 ///
367 typedef struct {
375 
376 ///
377 /// Interrupt Source Override Structure
378 ///
379 typedef struct {
387 
388 ///
389 /// Platform Interrupt Sources Structure Definition
390 ///
391 typedef struct {
404 
405 //
406 // MPS INTI flags.
407 // All other bits are reserved and must be set to 0.
408 //
409 #define EFI_ACPI_6_0_POLARITY (3 << 0)
410 #define EFI_ACPI_6_0_TRIGGER_MODE (3 << 2)
411 
412 ///
413 /// Non-Maskable Interrupt Source Structure
414 ///
415 typedef struct {
421 
422 ///
423 /// Local APIC NMI Structure
424 ///
425 typedef struct {
432 
433 ///
434 /// Local APIC Address Override Structure
435 ///
436 typedef struct {
442 
443 ///
444 /// IO SAPIC Structure
445 ///
446 typedef struct {
454 
455 ///
456 /// Local SAPIC Structure
457 /// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
458 ///
459 typedef struct {
469 
470 ///
471 /// Platform Interrupt Sources Structure
472 ///
473 typedef struct {
484 
485 ///
486 /// Platform Interrupt Source Flags.
487 /// All other bits are reserved and must be set to 0.
488 ///
489 #define EFI_ACPI_6_0_CPEI_PROCESSOR_OVERRIDE BIT0
490 
491 ///
492 /// Processor Local x2APIC Structure Definition
493 ///
494 typedef struct {
502 
503 ///
504 /// Local x2APIC NMI Structure
505 ///
506 typedef struct {
514 
515 ///
516 /// GIC Structure
517 ///
518 typedef struct {
535  UINT8 Reserved2[3];
537 
538 ///
539 /// GIC Flags. All other bits are reserved and must be 0.
540 ///
541 #define EFI_ACPI_6_0_GIC_ENABLED BIT0
542 #define EFI_ACPI_6_0_PERFORMANCE_INTERRUPT_MODEL BIT1
543 #define EFI_ACPI_6_0_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS BIT2
544 
545 ///
546 /// GIC Distributor Structure
547 ///
548 typedef struct {
556  UINT8 Reserved2[3];
558 
559 ///
560 /// GIC Version
561 ///
562 #define EFI_ACPI_6_0_GIC_V1 0x01
563 #define EFI_ACPI_6_0_GIC_V2 0x02
564 #define EFI_ACPI_6_0_GIC_V3 0x03
565 #define EFI_ACPI_6_0_GIC_V4 0x04
566 
567 ///
568 /// GIC MSI Frame Structure
569 ///
570 typedef struct {
580 
581 ///
582 /// GIC MSI Frame Flags. All other bits are reserved and must be 0.
583 ///
584 #define EFI_ACPI_6_0_SPI_COUNT_BASE_SELECT BIT0
585 
586 ///
587 /// GICR Structure
588 ///
589 typedef struct {
596 
597 ///
598 /// GIC Interrupt Translation Service Structure
599 ///
600 typedef struct {
608 
609 ///
610 /// Smart Battery Description Table (SBST)
611 ///
612 typedef struct {
618 
619 ///
620 /// SBST Version (as defined in ACPI 6.0 spec.)
621 ///
622 #define EFI_ACPI_6_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
623 
624 ///
625 /// Embedded Controller Boot Resources Table (ECDT)
626 /// The table is followed by a null terminated ASCII string that contains
627 /// a fully qualified reference to the name space object.
628 ///
629 typedef struct {
636 
637 ///
638 /// ECDT Version (as defined in ACPI 6.0 spec.)
639 ///
640 #define EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
641 
642 ///
643 /// System Resource Affinity Table (SRAT). The rest of the table
644 /// must be defined in a platform specific manner.
645 ///
646 typedef struct {
648  UINT32 Reserved1; ///< Must be set to 1
651 
652 ///
653 /// SRAT Version (as defined in ACPI 6.0 spec.)
654 ///
655 #define EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03
656 
657 //
658 // SRAT structure types.
659 // All other values between 0x04 an 0xFF are reserved and
660 // will be ignored by OSPM.
661 //
662 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00
663 #define EFI_ACPI_6_0_MEMORY_AFFINITY 0x01
664 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02
665 #define EFI_ACPI_6_0_GICC_AFFINITY 0x03
666 
667 ///
668 /// Processor Local APIC/SAPIC Affinity Structure Definition
669 ///
670 typedef struct {
677  UINT8 ProximityDomain31To8[3];
680 
681 ///
682 /// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
683 ///
684 #define EFI_ACPI_6_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
685 
686 ///
687 /// Memory Affinity Structure Definition
688 ///
689 typedef struct {
702 
703 //
704 // Memory Flags. All other bits are reserved and must be 0.
705 //
706 #define EFI_ACPI_6_0_MEMORY_ENABLED (1 << 0)
707 #define EFI_ACPI_6_0_MEMORY_HOT_PLUGGABLE (1 << 1)
708 #define EFI_ACPI_6_0_MEMORY_NONVOLATILE (1 << 2)
709 
710 ///
711 /// Processor Local x2APIC Affinity Structure Definition
712 ///
713 typedef struct {
716  UINT8 Reserved1[2];
721  UINT8 Reserved2[4];
723 
724 ///
725 /// GICC Affinity Structure Definition
726 ///
727 typedef struct {
735 
736 ///
737 /// GICC Flags. All other bits are reserved and must be 0.
738 ///
739 #define EFI_ACPI_6_0_GICC_ENABLED (1 << 0)
740 
741 ///
742 /// System Locality Distance Information Table (SLIT).
743 /// The rest of the table is a matrix.
744 ///
745 typedef struct {
749 
750 ///
751 /// SLIT Version (as defined in ACPI 6.0 spec.)
752 ///
753 #define EFI_ACPI_6_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01
754 
755 ///
756 /// Corrected Platform Error Polling Table (CPEP)
757 ///
758 typedef struct {
762 
763 ///
764 /// CPEP Version (as defined in ACPI 6.0 spec.)
765 ///
766 #define EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01
767 
768 //
769 // CPEP processor structure types.
770 //
771 #define EFI_ACPI_6_0_CPEP_PROCESSOR_APIC_SAPIC 0x00
772 
773 ///
774 /// Corrected Platform Error Polling Processor Structure Definition
775 ///
776 typedef struct {
783 
784 ///
785 /// Maximum System Characteristics Table (MSCT)
786 ///
787 typedef struct {
794 
795 ///
796 /// MSCT Version (as defined in ACPI 6.0 spec.)
797 ///
798 #define EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01
799 
800 ///
801 /// Maximum Proximity Domain Information Structure Definition
802 ///
803 typedef struct {
811 
812 ///
813 /// ACPI RAS Feature Table definition.
814 ///
815 typedef struct {
817  UINT8 PlatformCommunicationChannelIdentifier[12];
819 
820 ///
821 /// RASF Version (as defined in ACPI 6.0 spec.)
822 ///
823 #define EFI_ACPI_6_0_RAS_FEATURE_TABLE_REVISION 0x01
824 
825 ///
826 /// ACPI RASF Platform Communication Channel Shared Memory Region definition.
827 ///
828 typedef struct {
833  UINT8 RASCapabilities[16];
834  UINT8 SetRASCapabilities[16];
838 
839 ///
840 /// ACPI RASF PCC command code
841 ///
842 #define EFI_ACPI_6_0_RASF_PCC_COMMAND_CODE_EXECUTE_RASF_COMMAND 0x01
843 
844 ///
845 /// ACPI RASF Platform RAS Capabilities
846 ///
847 #define EFI_ACPI_6_0_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED 0x01
848 #define EFI_ACPI_6_0_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPOTED_AND_EXPOSED_TO_SOFTWARE 0x02
849 
850 ///
851 /// ACPI RASF Parameter Block structure for PATROL_SCRUB
852 ///
853 typedef struct {
858  UINT64 RequestedAddressRange[2];
859  UINT64 ActualAddressRange[2];
863 
864 ///
865 /// ACPI RASF Patrol Scrub command
866 ///
867 #define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_GET_PATROL_PARAMETERS 0x01
868 #define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_START_PATROL_SCRUBBER 0x02
869 #define EFI_ACPI_6_0_RASF_PATROL_SCRUB_COMMAND_STOP_PATROL_SCRUBBER 0x03
870 
871 ///
872 /// Memory Power State Table definition.
873 ///
874 typedef struct {
878  // Memory Power Node Structure
879  // Memory Power State Characteristics
881 
882 ///
883 /// MPST Version (as defined in ACPI 6.0 spec.)
884 ///
885 #define EFI_ACPI_6_0_MEMORY_POWER_STATE_TABLE_REVISION 0x01
886 
887 ///
888 /// MPST Platform Communication Channel Shared Memory Region definition.
889 ///
890 typedef struct {
901 
902 ///
903 /// ACPI MPST PCC command code
904 ///
905 #define EFI_ACPI_6_0_MPST_PCC_COMMAND_CODE_EXECUTE_MPST_COMMAND 0x03
906 
907 ///
908 /// ACPI MPST Memory Power command
909 ///
910 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_POWER_STATE 0x01
911 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_SET_MEMORY_POWER_STATE 0x02
912 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_AVERAGE_POWER_CONSUMED 0x03
913 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_ENERGY_CONSUMED 0x04
914 
915 ///
916 /// MPST Memory Power Node Table
917 ///
918 typedef struct {
922 
923 typedef struct {
932  // EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates];
933  // UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents];
935 
936 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_ENABLE 0x01
937 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_POWER_MANAGED 0x02
938 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STRUCTURE_FLAG_HOT_PLUGGABLE 0x04
939 
940 typedef struct {
944 
945 ///
946 /// MPST Memory Power State Characteristics Table
947 ///
948 typedef struct {
956 
957 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_MEMORY_CONTENT_PRESERVED 0x01
958 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_ENTRY 0x02
959 #define EFI_ACPI_6_0_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_EXIT 0x04
960 
961 typedef struct {
965 
966 ///
967 /// Memory Topology Table definition.
968 ///
969 typedef struct {
973 
974 ///
975 /// PMTT Version (as defined in ACPI 6.0 spec.)
976 ///
977 #define EFI_ACPI_6_0_MEMORY_TOPOLOGY_TABLE_REVISION 0x01
978 
979 ///
980 /// Common Memory Aggregator Device Structure.
981 ///
982 typedef struct {
989 
990 ///
991 /// Memory Aggregator Device Type
992 ///
993 #define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_SOCKET 0x0
994 #define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_MEMORY_CONTROLLER 0x1
995 #define EFI_ACPI_6_0_PMMT_MEMORY_AGGREGATOR_DEVICE_TYPE_DIMM 0x2
996 
997 ///
998 /// Socket Memory Aggregator Device Structure.
999 ///
1000 typedef struct {
1004  // EFI_ACPI_6_0_PMMT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE MemoryController[];
1006 
1007 ///
1008 /// MemoryController Memory Aggregator Device Structure.
1009 ///
1010 typedef struct {
1020  // UINT32 ProximityDomain[NumberOfProximityDomains];
1021  // EFI_ACPI_6_0_PMMT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE PhysicalComponent[];
1023 
1024 ///
1025 /// DIMM Memory Aggregator Device Structure.
1026 ///
1027 typedef struct {
1034 
1035 ///
1036 /// Boot Graphics Resource Table definition.
1037 ///
1038 typedef struct {
1040  ///
1041  /// 2-bytes (16 bit) version ID. This value must be 1.
1042  ///
1044  ///
1045  /// 1-byte status field indicating current status about the table.
1046  /// Bits[7:1] = Reserved (must be zero)
1047  /// Bit [0] = Valid. A one indicates the boot image graphic is valid.
1048  ///
1050  ///
1051  /// 1-byte enumerated type field indicating format of the image.
1052  /// 0 = Bitmap
1053  /// 1 - 255 Reserved (for future use)
1054  ///
1056  ///
1057  /// 8-byte (64 bit) physical address pointing to the firmware's in-memory copy
1058  /// of the image bitmap.
1059  ///
1061  ///
1062  /// A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image.
1063  /// (X, Y) display offset of the top left corner of the boot image.
1064  /// The top left corner of the display is at offset (0, 0).
1065  ///
1067  ///
1068  /// A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image.
1069  /// (X, Y) display offset of the top left corner of the boot image.
1070  /// The top left corner of the display is at offset (0, 0).
1071  ///
1074 
1075 ///
1076 /// BGRT Revision
1077 ///
1078 #define EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE_REVISION 1
1079 
1080 ///
1081 /// BGRT Version
1082 ///
1083 #define EFI_ACPI_6_0_BGRT_VERSION 0x01
1084 
1085 ///
1086 /// BGRT Status
1087 ///
1088 #define EFI_ACPI_6_0_BGRT_STATUS_NOT_DISPLAYED 0x00
1089 #define EFI_ACPI_6_0_BGRT_STATUS_DISPLAYED 0x01
1090 
1091 ///
1092 /// BGRT Image Type
1093 ///
1094 #define EFI_ACPI_6_0_BGRT_IMAGE_TYPE_BMP 0x00
1095 
1096 ///
1097 /// FPDT Version (as defined in ACPI 6.0 spec.)
1098 ///
1099 #define EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_DATA_TABLE_REVISION 0x01
1100 
1101 ///
1102 /// FPDT Performance Record Types
1103 ///
1104 #define EFI_ACPI_6_0_FPDT_RECORD_TYPE_FIRMWARE_BASIC_BOOT_POINTER 0x0000
1105 #define EFI_ACPI_6_0_FPDT_RECORD_TYPE_S3_PERFORMANCE_TABLE_POINTER 0x0001
1106 
1107 ///
1108 /// FPDT Performance Record Revision
1109 ///
1110 #define EFI_ACPI_6_0_FPDT_RECORD_REVISION_FIRMWARE_BASIC_BOOT_POINTER 0x01
1111 #define EFI_ACPI_6_0_FPDT_RECORD_REVISION_S3_PERFORMANCE_TABLE_POINTER 0x01
1112 
1113 ///
1114 /// FPDT Runtime Performance Record Types
1115 ///
1116 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_S3_RESUME 0x0000
1117 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_S3_SUSPEND 0x0001
1118 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_TYPE_FIRMWARE_BASIC_BOOT 0x0002
1119 
1120 ///
1121 /// FPDT Runtime Performance Record Revision
1122 ///
1123 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_S3_RESUME 0x01
1124 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_S3_SUSPEND 0x01
1125 #define EFI_ACPI_6_0_FPDT_RUNTIME_RECORD_REVISION_FIRMWARE_BASIC_BOOT 0x02
1126 
1127 ///
1128 /// FPDT Performance Record header
1129 ///
1130 typedef struct {
1135 
1136 ///
1137 /// FPDT Performance Table header
1138 ///
1139 typedef struct {
1143 
1144 ///
1145 /// FPDT Firmware Basic Boot Performance Pointer Record Structure
1146 ///
1147 typedef struct {
1150  ///
1151  /// 64-bit processor-relative physical address of the Basic Boot Performance Table.
1152  ///
1155 
1156 ///
1157 /// FPDT S3 Performance Table Pointer Record Structure
1158 ///
1159 typedef struct {
1162  ///
1163  /// 64-bit processor-relative physical address of the S3 Performance Table.
1164  ///
1167 
1168 ///
1169 /// FPDT Firmware Basic Boot Performance Record Structure
1170 ///
1171 typedef struct {
1174  ///
1175  /// Timer value logged at the beginning of firmware image execution.
1176  /// This may not always be zero or near zero.
1177  ///
1179  ///
1180  /// Timer value logged just prior to loading the OS boot loader into memory.
1181  /// For non-UEFI compatible boots, this field must be zero.
1182  ///
1184  ///
1185  /// Timer value logged just prior to launching the previously loaded OS boot loader image.
1186  /// For non-UEFI compatible boots, the timer value logged will be just prior
1187  /// to the INT 19h handler invocation.
1188  ///
1190  ///
1191  /// Timer value logged at the point when the OS loader calls the
1192  /// ExitBootServices function for UEFI compatible firmware.
1193  /// For non-UEFI compatible boots, this field must be zero.
1194  ///
1196  ///
1197  /// Timer value logged at the point just prior to when the OS loader gaining
1198  /// control back from calls the ExitBootServices function for UEFI compatible firmware.
1199  /// For non-UEFI compatible boots, this field must be zero.
1200  ///
1203 
1204 ///
1205 /// FPDT Firmware Basic Boot Performance Table signature
1206 ///
1207 #define EFI_ACPI_6_0_FPDT_BOOT_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('F', 'B', 'P', 'T')
1208 
1209 //
1210 // FPDT Firmware Basic Boot Performance Table
1211 //
1212 typedef struct {
1214  //
1215  // one or more Performance Records.
1216  //
1218 
1219 ///
1220 /// FPDT "S3PT" S3 Performance Table
1221 ///
1222 #define EFI_ACPI_6_0_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('S', '3', 'P', 'T')
1223 
1224 //
1225 // FPDT Firmware S3 Boot Performance Table
1226 //
1227 typedef struct {
1229  //
1230  // one or more Performance Records.
1231  //
1233 
1234 ///
1235 /// FPDT Basic S3 Resume Performance Record
1236 ///
1237 typedef struct {
1239  ///
1240  /// A count of the number of S3 resume cycles since the last full boot sequence.
1241  ///
1243  ///
1244  /// Timer recorded at the end of BIOS S3 resume, just prior to handoff to the
1245  /// OS waking vector. Only the most recent resume cycle's time is retained.
1246  ///
1248  ///
1249  /// Average timer value of all resume cycles logged since the last full boot
1250  /// sequence, including the most recent resume. Note that the entire log of
1251  /// timer values does not need to be retained in order to calculate this average.
1252  ///
1255 
1256 ///
1257 /// FPDT Basic S3 Suspend Performance Record
1258 ///
1259 typedef struct {
1261  ///
1262  /// Timer value recorded at the OS write to SLP_TYP upon entry to S3.
1263  /// Only the most recent suspend cycle's timer value is retained.
1264  ///
1266  ///
1267  /// Timer value recorded at the final firmware write to SLP_TYP (or other
1268  /// mechanism) used to trigger hardware entry to S3.
1269  /// Only the most recent suspend cycle's timer value is retained.
1270  ///
1273 
1274 ///
1275 /// Firmware Performance Record Table definition.
1276 ///
1277 typedef struct {
1280 
1281 ///
1282 /// Generic Timer Description Table definition.
1283 ///
1284 typedef struct {
1300 
1301 ///
1302 /// GTDT Version (as defined in ACPI 6.0 spec.)
1303 ///
1304 #define EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION 0x02
1305 
1306 ///
1307 /// Timer Flags. All other bits are reserved and must be 0.
1308 ///
1309 #define EFI_ACPI_6_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0
1310 #define EFI_ACPI_6_0_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1311 #define EFI_ACPI_6_0_GTDT_TIMER_FLAG_ALWAYS_ON_CAPABILITY BIT2
1312 
1313 ///
1314 /// Platform Timer Type
1315 ///
1316 #define EFI_ACPI_6_0_GTDT_GT_BLOCK 0
1317 #define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG 1
1318 
1319 ///
1320 /// GT Block Structure
1321 ///
1322 typedef struct {
1330 
1331 ///
1332 /// GT Block Timer Structure
1333 ///
1334 typedef struct {
1345 
1346 ///
1347 /// GT Block Physical Timers and Virtual Timers Flags. All other bits are reserved and must be 0.
1348 ///
1349 #define EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0
1350 #define EFI_ACPI_6_0_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1351 
1352 ///
1353 /// Common Flags Flags. All other bits are reserved and must be 0.
1354 ///
1355 #define EFI_ACPI_6_0_GTDT_GT_BLOCK_COMMON_FLAG_SECURE_TIMER BIT0
1356 #define EFI_ACPI_6_0_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY BIT1
1357 
1358 ///
1359 /// SBSA Generic Watchdog Structure
1360 ///
1361 typedef struct {
1370 
1371 ///
1372 /// SBSA Generic Watchdog Timer Flags. All other bits are reserved and must be 0.
1373 ///
1374 #define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE BIT0
1375 #define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1376 #define EFI_ACPI_6_0_GTDT_SBSA_GENERIC_WATCHDOG_FLAG_SECURE_TIMER BIT2
1377 
1378 //
1379 // NVDIMM Firmware Interface Table definition.
1380 //
1381 typedef struct {
1385 
1386 //
1387 // NFIT Version (as defined in ACPI 6.0 spec.)
1388 //
1389 #define EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE_REVISION 0x1
1390 
1391 //
1392 // Definition for NFIT Table Structure Types
1393 //
1394 #define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE 0
1395 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_TO_SYSTEM_ADDRESS_RANGE_MAP_STRUCTURE_TYPE 1
1396 #define EFI_ACPI_6_0_NFIT_INTERLEAVE_STRUCTURE_TYPE 2
1397 #define EFI_ACPI_6_0_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE_TYPE 3
1398 #define EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE_TYPE 4
1399 #define EFI_ACPI_6_0_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE_TYPE 5
1400 #define EFI_ACPI_6_0_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE_TYPE 6
1401 
1402 //
1403 // Definition for NFIT Structure Header
1404 //
1405 typedef struct {
1409 
1410 //
1411 // Definition for System Physical Address Range Structure
1412 //
1413 #define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_CONTROL_REGION_FOR_MANAGEMENT BIT0
1414 #define EFI_ACPI_6_0_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_PROXIMITY_DOMAIN_VALID BIT1
1415 #define EFI_ACPI_6_0_NFIT_GUID_VOLATILE_MEMORY_REGION { 0x7305944F, 0xFDDA, 0x44E3, { 0xB1, 0x6C, 0x3F, 0x22, 0xD2, 0x52, 0xE5, 0xD0 }}
1416 #define EFI_ACPI_6_0_NFIT_GUID_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_REGION { 0x66F0D379, 0xB4F3, 0x4074, { 0xAC, 0x43, 0x0D, 0x33, 0x18, 0xB7, 0x8C, 0xDB }}
1417 #define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_CONTROL_REGION { 0x92F701F6, 0x13B4, 0x405D, { 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C }}
1418 #define EFI_ACPI_6_0_NFIT_GUID_NVDIMM_BLOCK_DATA_WINDOW_REGION { 0x91AF0530, 0x5D86, 0x470E, { 0xA6, 0xB0, 0x0A, 0x2D, 0xB9, 0x40, 0x82, 0x49 }}
1419 #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 }}
1420 #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 }}
1421 #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 }}
1422 #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 }}
1423 typedef struct {
1435 
1436 //
1437 // Definition for Memory Device to System Physical Address Range Mapping Structure
1438 //
1439 typedef struct {
1447 
1448 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_PREVIOUS_SAVE_FAIL BIT0
1449 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_LAST_RESTORE_FAIL BIT1
1450 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_PLATFORM_FLUSH_FAIL BIT2
1451 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_NOT_ARMED_PRIOR_TO_OSPM_HAND_OFF BIT3
1452 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_SMART_HEALTH_EVENTS_PRIOR_OSPM_HAND_OFF BIT4
1453 #define EFI_ACPI_6_0_NFIT_MEMORY_DEVICE_STATE_FLAGS_FIRMWARE_ENABLED_TO_NOTIFY_OSPM_ON_SMART_HEALTH_EVENTS BIT5
1454 typedef struct {
1470 
1471 //
1472 // Definition for Interleave Structure
1473 //
1474 typedef struct {
1481  // UINT32 LineOffset[NumberOfLines];
1483 
1484 //
1485 // Definition for SMBIOS Management Information Structure
1486 //
1487 typedef struct {
1491  // UINT8 Data[];
1493 
1494 //
1495 // Definition for NVDIMM Control Region Structure
1496 //
1497 #define EFI_ACPI_6_0_NFIT_NVDIMM_CONTROL_REGION_FLAGS_BLOCK_DATA_WINDOWS_BUFFERED BIT0
1498 typedef struct {
1508  UINT8 Reserved_18[6];
1518  UINT8 Reserved_74[6];
1520 
1521 //
1522 // Definition for NVDIMM Block Data Window Region Structure
1523 //
1524 typedef struct {
1534 
1535 //
1536 // Definition for Flush Hint Address Structure
1537 //
1538 typedef struct {
1543  UINT8 Reserved_10[6];
1544  // UINT64 FlushHintAddress[NumberOfFlushHintAddresses];
1546 
1547 ///
1548 /// Boot Error Record Table (BERT)
1549 ///
1550 typedef struct {
1555 
1556 ///
1557 /// BERT Version (as defined in ACPI 6.0 spec.)
1558 ///
1559 #define EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_REVISION 0x01
1560 
1561 ///
1562 /// Boot Error Region Block Status Definition
1563 ///
1564 typedef struct {
1572 
1573 ///
1574 /// Boot Error Region Definition
1575 ///
1576 typedef struct {
1583 
1584 //
1585 // Boot Error Severity types
1586 //
1587 #define EFI_ACPI_6_0_ERROR_SEVERITY_RECOVERABLE 0x00
1588 #define EFI_ACPI_6_0_ERROR_SEVERITY_FATAL 0x01
1589 #define EFI_ACPI_6_0_ERROR_SEVERITY_CORRECTED 0x02
1590 #define EFI_ACPI_6_0_ERROR_SEVERITY_NONE 0x03
1591 //
1592 // The term 'Correctable' is no longer being used as an error severity of the
1593 // reported error since ACPI Specification Version 5.1 Errata B.
1594 // The below macro is considered as deprecated and should no longer be used.
1595 //
1596 #define EFI_ACPI_6_0_ERROR_SEVERITY_CORRECTABLE 0x00
1597 
1598 ///
1599 /// Generic Error Data Entry Definition
1600 ///
1601 typedef struct {
1602  UINT8 SectionType[16];
1608  UINT8 FruId[16];
1609  UINT8 FruText[20];
1611 
1612 ///
1613 /// Generic Error Data Entry Version (as defined in ACPI 6.0 spec.)
1614 ///
1615 #define EFI_ACPI_6_0_GENERIC_ERROR_DATA_ENTRY_REVISION 0x0201
1616 
1617 ///
1618 /// HEST - Hardware Error Source Table
1619 ///
1620 typedef struct {
1624 
1625 ///
1626 /// HEST Version (as defined in ACPI 6.0 spec.)
1627 ///
1628 #define EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x01
1629 
1630 //
1631 // Error Source structure types.
1632 //
1633 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x00
1634 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x01
1635 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_NMI_ERROR 0x02
1636 #define EFI_ACPI_6_0_PCI_EXPRESS_ROOT_PORT_AER 0x06
1637 #define EFI_ACPI_6_0_PCI_EXPRESS_DEVICE_AER 0x07
1638 #define EFI_ACPI_6_0_PCI_EXPRESS_BRIDGE_AER 0x08
1639 #define EFI_ACPI_6_0_GENERIC_HARDWARE_ERROR 0x09
1640 
1641 //
1642 // Error Source structure flags.
1643 //
1644 #define EFI_ACPI_6_0_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0)
1645 #define EFI_ACPI_6_0_ERROR_SOURCE_FLAG_GLOBAL (1 << 1)
1646 
1647 ///
1648 /// IA-32 Architecture Machine Check Exception Structure Definition
1649 ///
1650 typedef struct {
1653  UINT8 Reserved0[2];
1661  UINT8 Reserved1[7];
1663 
1664 ///
1665 /// IA-32 Architecture Machine Check Bank Structure Definition
1666 ///
1667 typedef struct {
1678 
1679 ///
1680 /// IA-32 Architecture Machine Check Bank Structure MCA data format
1681 ///
1682 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x00
1683 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x01
1684 #define EFI_ACPI_6_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x02
1685 
1686 //
1687 // Hardware Error Notification types. All other values are reserved
1688 //
1689 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_POLLED 0x00
1690 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x01
1691 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x02
1692 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_SCI 0x03
1693 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_NMI 0x04
1694 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CMCI 0x05
1695 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_MCE 0x06
1696 #define EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_GPIO_SIGNAL 0x07
1697 
1698 ///
1699 /// Hardware Error Notification Configuration Write Enable Structure Definition
1700 ///
1701 typedef struct {
1710 
1711 ///
1712 /// Hardware Error Notification Structure Definition
1713 ///
1714 typedef struct {
1725 
1726 ///
1727 /// IA-32 Architecture Corrected Machine Check Structure Definition
1728 ///
1729 typedef struct {
1732  UINT8 Reserved0[2];
1739  UINT8 Reserved1[3];
1741 
1742 ///
1743 /// IA-32 Architecture NMI Error Structure Definition
1744 ///
1745 typedef struct {
1748  UINT8 Reserved0[2];
1753 
1754 ///
1755 /// PCI Express Root Port AER Structure Definition
1756 ///
1757 typedef struct {
1760  UINT8 Reserved0[2];
1769  UINT8 Reserved1[2];
1776 
1777 ///
1778 /// PCI Express Device AER Structure Definition
1779 ///
1780 typedef struct {
1783  UINT8 Reserved0[2];
1792  UINT8 Reserved1[2];
1798 
1799 ///
1800 /// PCI Express Bridge AER Structure Definition
1801 ///
1802 typedef struct {
1805  UINT8 Reserved0[2];
1814  UINT8 Reserved1[2];
1823 
1824 ///
1825 /// Generic Hardware Error Source Structure Definition
1826 ///
1827 typedef struct {
1840 
1841 ///
1842 /// Generic Error Status Definition
1843 ///
1844 typedef struct {
1851 
1852 ///
1853 /// ERST - Error Record Serialization Table
1854 ///
1855 typedef struct {
1858  UINT8 Reserved0[4];
1861 
1862 ///
1863 /// ERST Version (as defined in ACPI 6.0 spec.)
1864 ///
1865 #define EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x01
1866 
1867 ///
1868 /// ERST Serialization Actions
1869 ///
1870 #define EFI_ACPI_6_0_ERST_BEGIN_WRITE_OPERATION 0x00
1871 #define EFI_ACPI_6_0_ERST_BEGIN_READ_OPERATION 0x01
1872 #define EFI_ACPI_6_0_ERST_BEGIN_CLEAR_OPERATION 0x02
1873 #define EFI_ACPI_6_0_ERST_END_OPERATION 0x03
1874 #define EFI_ACPI_6_0_ERST_SET_RECORD_OFFSET 0x04
1875 #define EFI_ACPI_6_0_ERST_EXECUTE_OPERATION 0x05
1876 #define EFI_ACPI_6_0_ERST_CHECK_BUSY_STATUS 0x06
1877 #define EFI_ACPI_6_0_ERST_GET_COMMAND_STATUS 0x07
1878 #define EFI_ACPI_6_0_ERST_GET_RECORD_IDENTIFIER 0x08
1879 #define EFI_ACPI_6_0_ERST_SET_RECORD_IDENTIFIER 0x09
1880 #define EFI_ACPI_6_0_ERST_GET_RECORD_COUNT 0x0A
1881 #define EFI_ACPI_6_0_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B
1882 #define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D
1883 #define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E
1884 #define EFI_ACPI_6_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F
1885 
1886 ///
1887 /// ERST Action Command Status
1888 ///
1889 #define EFI_ACPI_6_0_ERST_STATUS_SUCCESS 0x00
1890 #define EFI_ACPI_6_0_ERST_STATUS_NOT_ENOUGH_SPACE 0x01
1891 #define EFI_ACPI_6_0_ERST_STATUS_HARDWARE_NOT_AVAILABLE 0x02
1892 #define EFI_ACPI_6_0_ERST_STATUS_FAILED 0x03
1893 #define EFI_ACPI_6_0_ERST_STATUS_RECORD_STORE_EMPTY 0x04
1894 #define EFI_ACPI_6_0_ERST_STATUS_RECORD_NOT_FOUND 0x05
1895 
1896 ///
1897 /// ERST Serialization Instructions
1898 ///
1899 #define EFI_ACPI_6_0_ERST_READ_REGISTER 0x00
1900 #define EFI_ACPI_6_0_ERST_READ_REGISTER_VALUE 0x01
1901 #define EFI_ACPI_6_0_ERST_WRITE_REGISTER 0x02
1902 #define EFI_ACPI_6_0_ERST_WRITE_REGISTER_VALUE 0x03
1903 #define EFI_ACPI_6_0_ERST_NOOP 0x04
1904 #define EFI_ACPI_6_0_ERST_LOAD_VAR1 0x05
1905 #define EFI_ACPI_6_0_ERST_LOAD_VAR2 0x06
1906 #define EFI_ACPI_6_0_ERST_STORE_VAR1 0x07
1907 #define EFI_ACPI_6_0_ERST_ADD 0x08
1908 #define EFI_ACPI_6_0_ERST_SUBTRACT 0x09
1909 #define EFI_ACPI_6_0_ERST_ADD_VALUE 0x0A
1910 #define EFI_ACPI_6_0_ERST_SUBTRACT_VALUE 0x0B
1911 #define EFI_ACPI_6_0_ERST_STALL 0x0C
1912 #define EFI_ACPI_6_0_ERST_STALL_WHILE_TRUE 0x0D
1913 #define EFI_ACPI_6_0_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E
1914 #define EFI_ACPI_6_0_ERST_GOTO 0x0F
1915 #define EFI_ACPI_6_0_ERST_SET_SRC_ADDRESS_BASE 0x10
1916 #define EFI_ACPI_6_0_ERST_SET_DST_ADDRESS_BASE 0x11
1917 #define EFI_ACPI_6_0_ERST_MOVE_DATA 0x12
1918 
1919 ///
1920 /// ERST Instruction Flags
1921 ///
1922 #define EFI_ACPI_6_0_ERST_PRESERVE_REGISTER 0x01
1923 
1924 ///
1925 /// ERST Serialization Instruction Entry
1926 ///
1927 typedef struct {
1936 
1937 ///
1938 /// EINJ - Error Injection Table
1939 ///
1940 typedef struct {
1944  UINT8 Reserved0[3];
1947 
1948 ///
1949 /// EINJ Version (as defined in ACPI 6.0 spec.)
1950 ///
1951 #define EFI_ACPI_6_0_ERROR_INJECTION_TABLE_REVISION 0x01
1952 
1953 ///
1954 /// EINJ Error Injection Actions
1955 ///
1956 #define EFI_ACPI_6_0_EINJ_BEGIN_INJECTION_OPERATION 0x00
1957 #define EFI_ACPI_6_0_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x01
1958 #define EFI_ACPI_6_0_EINJ_SET_ERROR_TYPE 0x02
1959 #define EFI_ACPI_6_0_EINJ_GET_ERROR_TYPE 0x03
1960 #define EFI_ACPI_6_0_EINJ_END_OPERATION 0x04
1961 #define EFI_ACPI_6_0_EINJ_EXECUTE_OPERATION 0x05
1962 #define EFI_ACPI_6_0_EINJ_CHECK_BUSY_STATUS 0x06
1963 #define EFI_ACPI_6_0_EINJ_GET_COMMAND_STATUS 0x07
1964 #define EFI_ACPI_6_0_EINJ_SET_ERROR_TYPE_WITH_ADDRESS 0x08
1965 #define EFI_ACPI_6_0_EINJ_TRIGGER_ERROR 0xFF
1966 
1967 ///
1968 /// EINJ Action Command Status
1969 ///
1970 #define EFI_ACPI_6_0_EINJ_STATUS_SUCCESS 0x00
1971 #define EFI_ACPI_6_0_EINJ_STATUS_UNKNOWN_FAILURE 0x01
1972 #define EFI_ACPI_6_0_EINJ_STATUS_INVALID_ACCESS 0x02
1973 
1974 ///
1975 /// EINJ Error Type Definition
1976 ///
1977 #define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0)
1978 #define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1)
1979 #define EFI_ACPI_6_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2)
1980 #define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3)
1981 #define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4)
1982 #define EFI_ACPI_6_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5)
1983 #define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6)
1984 #define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7)
1985 #define EFI_ACPI_6_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8)
1986 #define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9)
1987 #define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10)
1988 #define EFI_ACPI_6_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11)
1989 
1990 ///
1991 /// EINJ Injection Instructions
1992 ///
1993 #define EFI_ACPI_6_0_EINJ_READ_REGISTER 0x00
1994 #define EFI_ACPI_6_0_EINJ_READ_REGISTER_VALUE 0x01
1995 #define EFI_ACPI_6_0_EINJ_WRITE_REGISTER 0x02
1996 #define EFI_ACPI_6_0_EINJ_WRITE_REGISTER_VALUE 0x03
1997 #define EFI_ACPI_6_0_EINJ_NOOP 0x04
1998 
1999 ///
2000 /// EINJ Instruction Flags
2001 ///
2002 #define EFI_ACPI_6_0_EINJ_PRESERVE_REGISTER 0x01
2003 
2004 ///
2005 /// EINJ Injection Instruction Entry
2006 ///
2007 typedef struct {
2016 
2017 ///
2018 /// EINJ Trigger Action Table
2019 ///
2020 typedef struct {
2026 
2027 ///
2028 /// Platform Communications Channel Table (PCCT)
2029 ///
2030 typedef struct {
2035 
2036 ///
2037 /// PCCT Version (as defined in ACPI 6.0 spec.)
2038 ///
2039 #define EFI_ACPI_6_0_PLATFORM_COMMUNICATION_CHANNEL_TABLE_REVISION 0x01
2040 
2041 ///
2042 /// PCCT Global Flags
2043 ///
2044 #define EFI_ACPI_6_0_PCCT_FLAGS_SCI_DOORBELL BIT0
2045 
2046 //
2047 // PCCT Subspace type
2048 //
2049 #define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_GENERIC 0x00
2050 #define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS 0x01
2051 #define EFI_ACPI_6_0_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS 0x02
2052 
2053 ///
2054 /// PCC Subspace Structure Header
2055 ///
2056 typedef struct {
2060 
2061 ///
2062 /// Generic Communications Subspace Structure
2063 ///
2064 typedef struct {
2077 
2078 ///
2079 /// Generic Communications Channel Shared Memory Region
2080 ///
2081 
2082 typedef struct {
2087 
2088 typedef struct {
2096 
2097 typedef struct {
2102 
2103 #define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_POLARITY BIT0
2104 #define EFI_ACPI_6_0_PCCT_SUBSPACE_DOORBELL_INTERRUPT_FLAGS_MODE BIT1
2105 
2106 ///
2107 /// Type 1 HW-Reduced Communications Subspace Structure
2108 ///
2109 typedef struct {
2124 
2125 ///
2126 /// Type 2 HW-Reduced Communications Subspace Structure
2127 ///
2128 typedef struct {
2146 
2147 //
2148 // Known table signatures
2149 //
2150 
2151 ///
2152 /// "RSD PTR " Root System Description Pointer
2153 ///
2154 #define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
2155 
2156 ///
2157 /// "APIC" Multiple APIC Description Table
2158 ///
2159 #define EFI_ACPI_6_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
2160 
2161 ///
2162 /// "BERT" Boot Error Record Table
2163 ///
2164 #define EFI_ACPI_6_0_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T')
2165 
2166 ///
2167 /// "BGRT" Boot Graphics Resource Table
2168 ///
2169 #define EFI_ACPI_6_0_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('B', 'G', 'R', 'T')
2170 
2171 ///
2172 /// "CPEP" Corrected Platform Error Polling Table
2173 ///
2174 #define EFI_ACPI_6_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')
2175 
2176 ///
2177 /// "DSDT" Differentiated System Description Table
2178 ///
2179 #define EFI_ACPI_6_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
2180 
2181 ///
2182 /// "ECDT" Embedded Controller Boot Resources Table
2183 ///
2184 #define EFI_ACPI_6_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
2185 
2186 ///
2187 /// "EINJ" Error Injection Table
2188 ///
2189 #define EFI_ACPI_6_0_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J')
2190 
2191 ///
2192 /// "ERST" Error Record Serialization Table
2193 ///
2194 #define EFI_ACPI_6_0_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T')
2195 
2196 ///
2197 /// "FACP" Fixed ACPI Description Table
2198 ///
2199 #define EFI_ACPI_6_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
2200 
2201 ///
2202 /// "FACS" Firmware ACPI Control Structure
2203 ///
2204 #define EFI_ACPI_6_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
2205 
2206 ///
2207 /// "FPDT" Firmware Performance Data Table
2208 ///
2209 #define EFI_ACPI_6_0_FIRMWARE_PERFORMANCE_DATA_TABLE_SIGNATURE SIGNATURE_32('F', 'P', 'D', 'T')
2210 
2211 ///
2212 /// "GTDT" Generic Timer Description Table
2213 ///
2214 #define EFI_ACPI_6_0_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('G', 'T', 'D', 'T')
2215 
2216 ///
2217 /// "HEST" Hardware Error Source Table
2218 ///
2219 #define EFI_ACPI_6_0_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T')
2220 
2221 ///
2222 /// "MPST" Memory Power State Table
2223 ///
2224 #define EFI_ACPI_6_0_MEMORY_POWER_STATE_TABLE_SIGNATURE SIGNATURE_32('M', 'P', 'S', 'T')
2225 
2226 ///
2227 /// "MSCT" Maximum System Characteristics Table
2228 ///
2229 #define EFI_ACPI_6_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T')
2230 
2231 ///
2232 /// "NFIT" NVDIMM Firmware Interface Table
2233 ///
2234 #define EFI_ACPI_6_0_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('N', 'F', 'I', 'T')
2235 
2236 ///
2237 /// "PMTT" Platform Memory Topology Table
2238 ///
2239 #define EFI_ACPI_6_0_PLATFORM_MEMORY_TOPOLOGY_TABLE_SIGNATURE SIGNATURE_32('P', 'M', 'T', 'T')
2240 
2241 ///
2242 /// "PSDT" Persistent System Description Table
2243 ///
2244 #define EFI_ACPI_6_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
2245 
2246 ///
2247 /// "RASF" ACPI RAS Feature Table
2248 ///
2249 #define EFI_ACPI_6_0_ACPI_RAS_FEATURE_TABLE_SIGNATURE SIGNATURE_32('R', 'A', 'S', 'F')
2250 
2251 ///
2252 /// "RSDT" Root System Description Table
2253 ///
2254 #define EFI_ACPI_6_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
2255 
2256 ///
2257 /// "SBST" Smart Battery Specification Table
2258 ///
2259 #define EFI_ACPI_6_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
2260 
2261 ///
2262 /// "SLIT" System Locality Information Table
2263 ///
2264 #define EFI_ACPI_6_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
2265 
2266 ///
2267 /// "SRAT" System Resource Affinity Table
2268 ///
2269 #define EFI_ACPI_6_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
2270 
2271 ///
2272 /// "SSDT" Secondary System Description Table
2273 ///
2274 #define EFI_ACPI_6_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
2275 
2276 ///
2277 /// "XSDT" Extended System Description Table
2278 ///
2279 #define EFI_ACPI_6_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
2280 
2281 ///
2282 /// "BOOT" MS Simple Boot Spec
2283 ///
2284 #define EFI_ACPI_6_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
2285 
2286 ///
2287 /// "CSRT" MS Core System Resource Table
2288 ///
2289 #define EFI_ACPI_6_0_CORE_SYSTEM_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('C', 'S', 'R', 'T')
2290 
2291 ///
2292 /// "DBG2" MS Debug Port 2 Spec
2293 ///
2294 #define EFI_ACPI_6_0_DEBUG_PORT_2_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', '2')
2295 
2296 ///
2297 /// "DBGP" MS Debug Port Spec
2298 ///
2299 #define EFI_ACPI_6_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
2300 
2301 ///
2302 /// "DMAR" DMA Remapping Table
2303 ///
2304 #define EFI_ACPI_6_0_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R')
2305 
2306 ///
2307 /// "DRTM" Dynamic Root of Trust for Measurement Table
2308 ///
2309 #define EFI_ACPI_6_0_DYNAMIC_ROOT_OF_TRUST_FOR_MEASUREMENT_TABLE_SIGNATURE SIGNATURE_32('D', 'R', 'T', 'M')
2310 
2311 ///
2312 /// "ETDT" Event Timer Description Table
2313 ///
2314 #define EFI_ACPI_6_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
2315 
2316 ///
2317 /// "HPET" IA-PC High Precision Event Timer Table
2318 ///
2319 #define EFI_ACPI_6_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')
2320 
2321 ///
2322 /// "iBFT" iSCSI Boot Firmware Table
2323 ///
2324 #define EFI_ACPI_6_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')
2325 
2326 ///
2327 /// "IORT" I/O Remapping Table
2328 ///
2329 #define EFI_ACPI_6_0_IO_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('I', 'O', 'R', 'T')
2330 
2331 ///
2332 /// "IVRS" I/O Virtualization Reporting Structure
2333 ///
2334 #define EFI_ACPI_6_0_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S')
2335 
2336 ///
2337 /// "LPIT" Low Power Idle Table
2338 ///
2339 #define EFI_ACPI_6_0_LOW_POWER_IDLE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('L', 'P', 'I', 'T')
2340 
2341 ///
2342 /// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
2343 ///
2344 #define EFI_ACPI_6_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
2345 
2346 ///
2347 /// "MCHI" Management Controller Host Interface Table
2348 ///
2349 #define EFI_ACPI_6_0_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I')
2350 
2351 ///
2352 /// "MSDM" MS Data Management Table
2353 ///
2354 #define EFI_ACPI_6_0_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M')
2355 
2356 ///
2357 /// "PCCT" Platform Communications Channel Table
2358 ///
2359 #define EFI_ACPI_6_0_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE SIGNATURE_32('P', 'C', 'C', 'T')
2360 
2361 ///
2362 /// "SLIC" MS Software Licensing Table Specification
2363 ///
2364 #define EFI_ACPI_6_0_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C')
2365 
2366 ///
2367 /// "SPCR" Serial Port Console Redirection Table
2368 ///
2369 #define EFI_ACPI_6_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
2370 
2371 ///
2372 /// "SPMI" Server Platform Management Interface Table
2373 ///
2374 #define EFI_ACPI_6_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
2375 
2376 ///
2377 /// "STAO" _STA Override Table
2378 ///
2379 #define EFI_ACPI_6_0_STA_OVERRIDE_TABLE_SIGNATURE SIGNATURE_32('S', 'T', 'A', 'O')
2380 
2381 ///
2382 /// "TCPA" Trusted Computing Platform Alliance Capabilities Table
2383 ///
2384 #define EFI_ACPI_6_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')
2385 
2386 ///
2387 /// "TPM2" Trusted Computing Platform 1 Table
2388 ///
2389 #define EFI_ACPI_6_0_TRUSTED_COMPUTING_PLATFORM_2_TABLE_SIGNATURE SIGNATURE_32('T', 'P', 'M', '2')
2390 
2391 ///
2392 /// "UEFI" UEFI ACPI Data Table
2393 ///
2394 #define EFI_ACPI_6_0_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I')
2395 
2396 ///
2397 /// "WAET" Windows ACPI Emulated Devices Table
2398 ///
2399 #define EFI_ACPI_6_0_WINDOWS_ACPI_EMULATED_DEVICES_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T')
2400 
2401 ///
2402 /// "WDAT" Watchdog Action Table
2403 ///
2404 #define EFI_ACPI_6_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')
2405 
2406 ///
2407 /// "WDRT" Watchdog Resource Table
2408 ///
2409 #define EFI_ACPI_6_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')
2410 
2411 ///
2412 /// "WPBT" MS Platform Binary Table
2413 ///
2414 #define EFI_ACPI_6_0_PLATFORM_BINARY_TABLE_SIGNATURE SIGNATURE_32('W', 'P', 'B', 'T')
2415 
2416 ///
2417 /// "XENV" Xen Project Table
2418 ///
2419 #define EFI_ACPI_6_0_XEN_PROJECT_TABLE_SIGNATURE SIGNATURE_32('X', 'E', 'N', 'V')
2420 
2421 #pragma pack()
2422 
2423 #endif
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk
Definition: Acpi60.h:186
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg
Definition: Acpi60.h:188
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1238
UINT64 SuspendEnd
Timer value recorded at the final firmware write to SLP_TYP (or other mechanism) used to trigger hard...
Definition: Acpi60.h:1271
Common Memory Aggregator Device Structure.
Definition: Acpi60.h:982
FPDT Firmware Basic Boot Performance Pointer Record Structure.
Definition: Acpi60.h:1147
Non-Maskable Interrupt Source Structure.
Definition: Acpi60.h:415
UINT8 Instruction
Definition: Acpi60.h:2009
IO APIC Structure.
Definition: Acpi60.h:367
Firmware Performance Record Table definition.
Definition: Acpi60.h:1277
UINT32 ImageOffsetX
A 4-byte (32-bit) unsigned long describing the display X-offset of the boot image.
Definition: Acpi60.h:1066
IA-32 Architecture NMI Error Structure Definition.
Definition: Acpi60.h:1745
Memory Power State Table definition.
Definition: Acpi60.h:874
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk
Definition: Acpi60.h:179
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1160
Memory Affinity Structure Definition.
Definition: Acpi60.h:689
EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header
Definition: Acpi60.h:1011
Generic Error Data Entry Definition.
Definition: Acpi60.h:1601
ACPI RASF Parameter Block structure for PATROL_SCRUB.
Definition: Acpi60.h:853
UINT8 Reserved0
Definition: Acpi60.h:2011
UINT8 ValidationBits
Definition: Acpi60.h:1605
FPDT Performance Record header.
Definition: Acpi60.h:1130
System Resource Affinity Table (SRAT).
Definition: Acpi60.h:646
EFI_ACPI_6_0_NFIT_DEVICE_HANDLE NFITDeviceHandle
Definition: Acpi60.h:1541
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk
Definition: Acpi60.h:181
UINT8 Reserved0
Definition: Acpi60.h:1931
UINT32_t Reserved[2]
Must be zero.
Definition: pxe_api.h:76
128 bit buffer containing a unique identifier value.
Definition: Base.h:216
Processor Local APIC Structure Definition.
Definition: Acpi60.h:351
UINT8 Instruction
Definition: Acpi60.h:1929
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk
Definition: Acpi60.h:180
ERST - Error Record Serialization Table.
Definition: Acpi60.h:1855
Root System Description Pointer Structure.
Definition: Acpi60.h:82
Firmware ACPI Control Structure.
Definition: Acpi60.h:259
UINT32 ImageOffsetY
A 4-byte (32-bit) unsigned long describing the display Y-offset of the boot image.
Definition: Acpi60.h:1072
Maximum Proximity Domain Information Structure Definition.
Definition: Acpi60.h:803
PCI Express Bridge AER Structure Definition.
Definition: Acpi60.h:1802
GICR Structure.
Definition: Acpi60.h:589
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1039
EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure
Definition: Acpi60.h:1737
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1551
UINT8 ProcessorPowerEfficiencyClass
Definition: Acpi60.h:534
DIMM Memory Aggregator Device Structure.
Definition: Acpi60.h:1027
unsigned int UINT32
Definition: ProcessorBind.h:99
Embedded Controller Boot Resources Table (ECDT) The table is followed by a null terminated ASCII stri...
Definition: Acpi60.h:629
Platform Interrupt Sources Structure.
Definition: Acpi60.h:473
UINT64 ExitBootServicesEntry
Timer value logged at the point when the OS loader calls the ExitBootServices function for UEFI compa...
Definition: Acpi60.h:1195
UINT16 Version
2-bytes (16 bit) version ID.
Definition: Acpi60.h:1043
UINT8 Flags
Definition: Acpi60.h:1930
UINT64 AverageResume
Average timer value of all resume cycles logged since the last full boot sequence,...
Definition: Acpi60.h:1253
GICC Affinity Structure Definition.
Definition: Acpi60.h:727
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister
Definition: Acpi60.h:2136
Fixed ACPI Description Table Structure (FADT)
Definition: Acpi60.h:133
Platform Communications Channel Table (PCCT)
Definition: Acpi60.h:2030
Processor Local x2APIC Structure Definition.
Definition: Acpi60.h:494
UINT64 Value
Definition: Acpi60.h:2013
Type 2 HW-Reduced Communications Subspace Structure.
Definition: Acpi60.h:2128
ACPI RAS Feature Table definition.
Definition: Acpi60.h:815
UINT8 ImageType
1-byte enumerated type field indicating format of the image.
Definition: Acpi60.h:1055
EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure
Definition: Acpi60.h:1837
unsigned char UINT8
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:970
Processor Local APIC/SAPIC Affinity Structure Definition.
Definition: Acpi60.h:670
EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus
Definition: Acpi60.h:1845
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1285
Interrupt Source Override Structure.
Definition: Acpi60.h:379
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion
Definition: Acpi60.h:2012
UINT32 PerformanceInterruptGsiv
Definition: Acpi60.h:526
System Locality Distance Information Table (SLIT).
Definition: Acpi60.h:745
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1148
Boot Error Region Block Status Definition.
Definition: Acpi60.h:1564
UINT8 InjectionAction
Definition: Acpi60.h:2008
GIC Interrupt Translation Service Structure.
Definition: Acpi60.h:600
HEST - Hardware Error Source Table.
Definition: Acpi60.h:1620
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk
Definition: Acpi60.h:185
Multiple APIC Description Table header definition.
Definition: Acpi60.h:305
Corrected Platform Error Polling Table (CPEP)
Definition: Acpi60.h:758
UINT64 ImageAddress
8-byte (64 bit) physical address pointing to the firmware's in-memory copy of the image bitmap.
Definition: Acpi60.h:1060
Boot Error Region Definition.
Definition: Acpi60.h:1576
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1382
IA-32 Architecture Machine Check Bank Structure Definition.
Definition: Acpi60.h:1667
Processor Local x2APIC Affinity Structure Definition.
Definition: Acpi60.h:713
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ResetReg
Definition: Acpi60.h:173
Generic Communications Channel Shared Memory Region.
Definition: Acpi60.h:2082
UINT32 VGICMaintenanceInterrupt
Definition: Acpi60.h:531
EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_COMMAND Command
Definition: Acpi60.h:2099
GIC Distributor Structure.
Definition: Acpi60.h:548
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcData
Definition: Acpi60.h:632
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister
Definition: Acpi60.h:2117
EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header
Definition: Acpi60.h:1213
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellAckRegister
Definition: Acpi60.h:2142
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk
Definition: Acpi60.h:184
MPST Memory Power State Characteristics Table.
Definition: Acpi60.h:948
Platform Interrupt Sources Structure Definition.
Definition: Acpi60.h:391
FPDT Performance Table header.
Definition: Acpi60.h:1139
Generic Timer Description Table definition.
Definition: Acpi60.h:1284
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg
Definition: Acpi60.h:187
GIC MSI Frame Structure.
Definition: Acpi60.h:570
UINT8 Status
1-byte status field indicating current status about the table.
Definition: Acpi60.h:1049
ACPI RASF Platform Communication Channel Shared Memory Region definition.
Definition: Acpi60.h:828
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE DoorbellRegister
Definition: Acpi60.h:2070
UINT64 FullResume
Timer recorded at the end of BIOS S3 resume, just prior to handoff to the OS waking vector.
Definition: Acpi60.h:1247
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:134
ERST Serialization Instruction Entry.
Definition: Acpi60.h:1927
Local APIC NMI Structure.
Definition: Acpi60.h:425
EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header
Definition: Acpi60.h:1028
MPST Memory Power Node Table.
Definition: Acpi60.h:918
FPDT Basic S3 Resume Performance Record.
Definition: Acpi60.h:1237
unsigned short UINT16
Hardware Error Notification Structure Definition.
Definition: Acpi60.h:1714
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk
Definition: Acpi60.h:182
EFI_ACPI_6_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable
Definition: Acpi60.h:1717
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress
Definition: Acpi60.h:1836
Common table header, this prefaces all ACPI tables, including FACS, but excluding the RSD PTR structu...
Definition: Acpi60.h:103
UINT64 Mask
Definition: Acpi60.h:2014
UINT64 S3PerformanceTablePointer
64-bit processor-relative physical address of the S3 Performance Table.
Definition: Acpi60.h:1165
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:875
Local x2APIC NMI Structure.
Definition: Acpi60.h:506
EFI_ACPI_6_0_FPDT_PERFORMANCE_TABLE_HEADER Header
Definition: Acpi60.h:1228
Maximum System Characteristics Table (MSCT)
Definition: Acpi60.h:787
Boot Graphics Resource Table definition.
Definition: Acpi60.h:1038
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1172
FPDT S3 Performance Table Pointer Record Structure.
Definition: Acpi60.h:1159
The common ACPI description table header.
Definition: Acpi10.h:30
MemoryController Memory Aggregator Device Structure.
Definition: Acpi60.h:1010
Smart Battery Description Table (SBST)
Definition: Acpi60.h:612
EFI_ACPI_6_0_PMMT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE Header
Definition: Acpi60.h:1001
UINT8 Flags
Definition: Acpi60.h:2010
UINT32 ResumeCount
A count of the number of S3 resume cycles since the last full boot sequence.
Definition: Acpi60.h:1242
EFI_ACPI_6_0_PCCT_GENERIC_SHARED_MEMORY_REGION_STATUS Status
Definition: Acpi60.h:2100
GIC Structure.
Definition: Acpi60.h:518
Local SAPIC Structure This struct followed by a null-terminated ASCII string - ACPI Processor UID Str...
Definition: Acpi60.h:459
UINT8 SerializationAction
Definition: Acpi60.h:1928
unsigned long long UINT64
Definition: ProcessorBind.h:97
EINJ - Error Injection Table.
Definition: Acpi60.h:1940
UINT32 ErrorSeverity
Definition: Acpi60.h:1603
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:613
UINT64 OsLoaderStartImageStart
Timer value logged just prior to launching the previously loaded OS boot loader image.
Definition: Acpi60.h:1189
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:1183
UINT64 DiscoveryRangeBaseAddress
Definition: Acpi60.h:593
EINJ Trigger Action Table.
Definition: Acpi60.h:2020
FILE_LICENCE(BSD2_PATENT)
IA-32 Architecture Machine Check Exception Structure Definition.
Definition: Acpi60.h:1650
Generic Error Status Definition.
Definition: Acpi60.h:1844
FPDT Basic S3 Suspend Performance Record.
Definition: Acpi60.h:1259
Type 1 HW-Reduced Communications Subspace Structure.
Definition: Acpi60.h:2109
PCI Express Device AER Structure Definition.
Definition: Acpi60.h:1780
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1278
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE EcControl
Definition: Acpi60.h:631
PCI Express Root Port AER Structure Definition.
Definition: Acpi60.h:1757
PCC Subspace Structure Header.
Definition: Acpi60.h:2056
EFI_ACPI_6_0_ERROR_BLOCK_STATUS BlockStatus
Definition: Acpi60.h:1577
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion
Definition: Acpi60.h:1932
Generic Communications Subspace Structure.
Definition: Acpi60.h:2064
IO SAPIC Structure.
Definition: Acpi60.h:446
UINT64 BootPerformanceTablePointer
64-bit processor-relative physical address of the Basic Boot Performance Table.
Definition: Acpi60.h:1153
UINT64 Mask
Definition: Acpi60.h:1934
IA-32 Architecture Corrected Machine Check Structure Definition.
Definition: Acpi60.h:1729
Generic Hardware Error Source Structure Definition.
Definition: Acpi60.h:1827
UINT64 ResetEnd
Timer value logged at the beginning of firmware image execution.
Definition: Acpi60.h:1178
EFI_ACPI_6_0_FPDT_PERFORMANCE_RECORD_HEADER Header
Definition: Acpi60.h:1260
MPST Platform Communication Channel Shared Memory Region definition.
Definition: Acpi60.h:890
UINT64 SuspendStart
Timer value recorded at the OS write to SLP_TYP upon entry to S3.
Definition: Acpi60.h:1265
Hardware Error Notification Configuration Write Enable Structure Definition.
Definition: Acpi60.h:1701
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:816
Local APIC Address Override Structure.
Definition: Acpi60.h:436
EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk
Definition: Acpi60.h:183
Memory Topology Table definition.
Definition: Acpi60.h:969
FPDT Firmware Basic Boot Performance Record Structure.
Definition: Acpi60.h:1171
Corrected Platform Error Polling Processor Structure Definition.
Definition: Acpi60.h:776
UINT64 ExitBootServicesExit
Timer value logged at the point just prior to when the OS loader gaining control back from calls the ...
Definition: Acpi60.h:1201
UINT64 Value
Definition: Acpi60.h:1933
FILE_SECBOOT(PERMITTED)
UINT16 Revision
Definition: Acpi60.h:1604
EINJ Injection Instruction Entry.
Definition: Acpi60.h:2007
ACPI 6.0 Generic Address Space definition.
Definition: Acpi60.h:47
GT Block Timer Structure.
Definition: Acpi60.h:1334
UINT32 ErrorDataLength
Definition: Acpi60.h:1607
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1621
Boot Error Record Table (BERT)
Definition: Acpi60.h:1550
Socket Memory Aggregator Device Structure.
Definition: Acpi60.h:1000
EFI_ACPI_DESCRIPTION_HEADER Header
Definition: Acpi60.h:1941
SBSA Generic Watchdog Structure.
Definition: Acpi60.h:1361
UINT8 Flags
Definition: Acpi60.h:1606