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