TianoCore EDK2 master
Acpi64.h
Go to the documentation of this file.
1
10#ifndef ACPI_6_4_H_
11#define ACPI_6_4_H_
12
14
15//
16// Ensure proper structure formats
17//
18#pragma pack(1)
19
23typedef struct {
24 UINT8 AddressSpaceId;
25 UINT8 RegisterBitWidth;
26 UINT8 RegisterBitOffset;
27 UINT8 AccessSize;
28 UINT64 Address;
30
31//
32// Generic Address Space Address IDs
33//
34#define EFI_ACPI_6_4_SYSTEM_MEMORY 0x00
35#define EFI_ACPI_6_4_SYSTEM_IO 0x01
36#define EFI_ACPI_6_4_PCI_CONFIGURATION_SPACE 0x02
37#define EFI_ACPI_6_4_EMBEDDED_CONTROLLER 0x03
38#define EFI_ACPI_6_4_SMBUS 0x04
39#define EFI_ACPI_6_4_SYSTEM_CMOS 0x05
40#define EFI_ACPI_6_4_PCI_BAR_TARGET 0x06
41#define EFI_ACPI_6_4_IPMI 0x07
42#define EFI_ACPI_6_4_GENERAL_PURPOSE_IO 0x08
43#define EFI_ACPI_6_4_GENERIC_SERIAL_BUS 0x09
44#define EFI_ACPI_6_4_PLATFORM_COMMUNICATION_CHANNEL 0x0A
45#define EFI_ACPI_6_4_FUNCTIONAL_FIXED_HARDWARE 0x7F
46
47//
48// Generic Address Space Access Sizes
49//
50#define EFI_ACPI_6_4_UNDEFINED 0
51#define EFI_ACPI_6_4_BYTE 1
52#define EFI_ACPI_6_4_WORD 2
53#define EFI_ACPI_6_4_DWORD 3
54#define EFI_ACPI_6_4_QWORD 4
55
56//
57// ACPI 6.4 table structures
58//
59
63typedef struct {
64 UINT64 Signature;
65 UINT8 Checksum;
66 UINT8 OemId[6];
67 UINT8 Revision;
68 UINT32 RsdtAddress;
69 UINT32 Length;
70 UINT64 XsdtAddress;
71 UINT8 ExtendedChecksum;
72 UINT8 Reserved[3];
74
78#define EFI_ACPI_6_4_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02
79
84typedef struct {
85 UINT32 Signature;
86 UINT32 Length;
88
89//
90// Root System Description Table
91// No definition needed as it is a common description table header, the same with
92// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
93//
94
98#define EFI_ACPI_6_4_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
99
100//
101// Extended System Description Table
102// No definition needed as it is a common description table header, the same with
103// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
104//
105
109#define EFI_ACPI_6_4_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
110
114typedef struct {
116 UINT32 FirmwareCtrl;
117 UINT32 Dsdt;
118 UINT8 Reserved0;
119 UINT8 PreferredPmProfile;
120 UINT16 SciInt;
121 UINT32 SmiCmd;
122 UINT8 AcpiEnable;
123 UINT8 AcpiDisable;
124 UINT8 S4BiosReq;
125 UINT8 PstateCnt;
126 UINT32 Pm1aEvtBlk;
127 UINT32 Pm1bEvtBlk;
128 UINT32 Pm1aCntBlk;
129 UINT32 Pm1bCntBlk;
130 UINT32 Pm2CntBlk;
131 UINT32 PmTmrBlk;
132 UINT32 Gpe0Blk;
133 UINT32 Gpe1Blk;
134 UINT8 Pm1EvtLen;
135 UINT8 Pm1CntLen;
136 UINT8 Pm2CntLen;
137 UINT8 PmTmrLen;
138 UINT8 Gpe0BlkLen;
139 UINT8 Gpe1BlkLen;
140 UINT8 Gpe1Base;
141 UINT8 CstCnt;
142 UINT16 PLvl2Lat;
143 UINT16 PLvl3Lat;
144 UINT16 FlushSize;
145 UINT16 FlushStride;
146 UINT8 DutyOffset;
147 UINT8 DutyWidth;
148 UINT8 DayAlrm;
149 UINT8 MonAlrm;
150 UINT8 Century;
151 UINT16 IaPcBootArch;
152 UINT8 Reserved1;
153 UINT32 Flags;
155 UINT8 ResetValue;
156 UINT16 ArmBootArch;
157 UINT8 MinorVersion;
158 UINT64 XFirmwareCtrl;
159 UINT64 XDsdt;
170 UINT64 HypervisorVendorIdentity;
172
176#define EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x06
177#define EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION 0x04
178
179//
180// Fixed ACPI Description Table Preferred Power Management Profile
181//
182#define EFI_ACPI_6_4_PM_PROFILE_UNSPECIFIED 0
183#define EFI_ACPI_6_4_PM_PROFILE_DESKTOP 1
184#define EFI_ACPI_6_4_PM_PROFILE_MOBILE 2
185#define EFI_ACPI_6_4_PM_PROFILE_WORKSTATION 3
186#define EFI_ACPI_6_4_PM_PROFILE_ENTERPRISE_SERVER 4
187#define EFI_ACPI_6_4_PM_PROFILE_SOHO_SERVER 5
188#define EFI_ACPI_6_4_PM_PROFILE_APPLIANCE_PC 6
189#define EFI_ACPI_6_4_PM_PROFILE_PERFORMANCE_SERVER 7
190#define EFI_ACPI_6_4_PM_PROFILE_TABLET 8
191
192//
193// Fixed ACPI Description Table Boot Architecture Flags
194// All other bits are reserved and must be set to 0.
195//
196#define EFI_ACPI_6_4_LEGACY_DEVICES BIT0
197#define EFI_ACPI_6_4_8042 BIT1
198#define EFI_ACPI_6_4_VGA_NOT_PRESENT BIT2
199#define EFI_ACPI_6_4_MSI_NOT_SUPPORTED BIT3
200#define EFI_ACPI_6_4_PCIE_ASPM_CONTROLS BIT4
201#define EFI_ACPI_6_4_CMOS_RTC_NOT_PRESENT BIT5
202
203//
204// Fixed ACPI Description Table Arm Boot Architecture Flags
205// All other bits are reserved and must be set to 0.
206//
207#define EFI_ACPI_6_4_ARM_PSCI_COMPLIANT BIT0
208#define EFI_ACPI_6_4_ARM_PSCI_USE_HVC BIT1
209
210//
211// Fixed ACPI Description Table Fixed Feature Flags
212// All other bits are reserved and must be set to 0.
213//
214#define EFI_ACPI_6_4_WBINVD BIT0
215#define EFI_ACPI_6_4_WBINVD_FLUSH BIT1
216#define EFI_ACPI_6_4_PROC_C1 BIT2
217#define EFI_ACPI_6_4_P_LVL2_UP BIT3
218#define EFI_ACPI_6_4_PWR_BUTTON BIT4
219#define EFI_ACPI_6_4_SLP_BUTTON BIT5
220#define EFI_ACPI_6_4_FIX_RTC BIT6
221#define EFI_ACPI_6_4_RTC_S4 BIT7
222#define EFI_ACPI_6_4_TMR_VAL_EXT BIT8
223#define EFI_ACPI_6_4_DCK_CAP BIT9
224#define EFI_ACPI_6_4_RESET_REG_SUP BIT10
225#define EFI_ACPI_6_4_SEALED_CASE BIT11
226#define EFI_ACPI_6_4_HEADLESS BIT12
227#define EFI_ACPI_6_4_CPU_SW_SLP BIT13
228#define EFI_ACPI_6_4_PCI_EXP_WAK BIT14
229#define EFI_ACPI_6_4_USE_PLATFORM_CLOCK BIT15
230#define EFI_ACPI_6_4_S4_RTC_STS_VALID BIT16
231#define EFI_ACPI_6_4_REMOTE_POWER_ON_CAPABLE BIT17
232#define EFI_ACPI_6_4_FORCE_APIC_CLUSTER_MODEL BIT18
233#define EFI_ACPI_6_4_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19
234#define EFI_ACPI_6_4_HW_REDUCED_ACPI BIT20
235#define EFI_ACPI_6_4_LOW_POWER_S0_IDLE_CAPABLE BIT21
236
240typedef struct {
241 UINT32 Signature;
242 UINT32 Length;
243 UINT32 HardwareSignature;
244 UINT32 FirmwareWakingVector;
245 UINT32 GlobalLock;
246 UINT32 Flags;
247 UINT64 XFirmwareWakingVector;
248 UINT8 Version;
249 UINT8 Reserved0[3];
250 UINT32 OspmFlags;
251 UINT8 Reserved1[24];
253
257#define EFI_ACPI_6_4_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02
258
263#define EFI_ACPI_6_4_S4BIOS_F BIT0
264#define EFI_ACPI_6_4_64BIT_WAKE_SUPPORTED_F BIT1
265
270#define EFI_ACPI_6_4_OSPM_64BIT_WAKE_F BIT0
271
272//
273// Differentiated System Description Table,
274// Secondary System Description Table
275// and Persistent System Description Table,
276// no definition needed as they are common description table header, the same with
277// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
278//
279#define EFI_ACPI_6_4_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
280#define EFI_ACPI_6_4_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
281
286typedef struct {
288 UINT32 LocalApicAddress;
289 UINT32 Flags;
291
295#define EFI_ACPI_6_4_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x05
296
301#define EFI_ACPI_6_4_PCAT_COMPAT BIT0
302
303//
304// Multiple APIC Description Table APIC structure types
305// All other values between 0x10 and 0x7F are reserved and
306// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
307//
308#define EFI_ACPI_6_4_PROCESSOR_LOCAL_APIC 0x00
309#define EFI_ACPI_6_4_IO_APIC 0x01
310#define EFI_ACPI_6_4_INTERRUPT_SOURCE_OVERRIDE 0x02
311#define EFI_ACPI_6_4_NON_MASKABLE_INTERRUPT_SOURCE 0x03
312#define EFI_ACPI_6_4_LOCAL_APIC_NMI 0x04
313#define EFI_ACPI_6_4_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
314#define EFI_ACPI_6_4_IO_SAPIC 0x06
315#define EFI_ACPI_6_4_LOCAL_SAPIC 0x07
316#define EFI_ACPI_6_4_PLATFORM_INTERRUPT_SOURCES 0x08
317#define EFI_ACPI_6_4_PROCESSOR_LOCAL_X2APIC 0x09
318#define EFI_ACPI_6_4_LOCAL_X2APIC_NMI 0x0A
319#define EFI_ACPI_6_4_GIC 0x0B
320#define EFI_ACPI_6_4_GICD 0x0C
321#define EFI_ACPI_6_4_GIC_MSI_FRAME 0x0D
322#define EFI_ACPI_6_4_GICR 0x0E
323#define EFI_ACPI_6_4_GIC_ITS 0x0F
324#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP 0x10
325
326//
327// APIC Structure Definitions
328//
329
333typedef struct {
334 UINT8 Type;
335 UINT8 Length;
336 UINT8 AcpiProcessorUid;
337 UINT8 ApicId;
338 UINT32 Flags;
340
344#define EFI_ACPI_6_4_LOCAL_APIC_ENABLED BIT0
345#define EFI_ACPI_6_4_LOCAL_APIC_ONLINE_CAPABLE BIT1
346
350typedef struct {
351 UINT8 Type;
352 UINT8 Length;
353 UINT8 IoApicId;
354 UINT8 Reserved;
355 UINT32 IoApicAddress;
356 UINT32 GlobalSystemInterruptBase;
358
362typedef struct {
363 UINT8 Type;
364 UINT8 Length;
365 UINT8 Bus;
366 UINT8 Source;
367 UINT32 GlobalSystemInterrupt;
368 UINT16 Flags;
370
374typedef struct {
375 UINT8 Type;
376 UINT8 Length;
377 UINT16 Flags;
378 UINT8 InterruptType;
379 UINT8 ProcessorId;
380 UINT8 ProcessorEid;
381 UINT8 IoSapicVector;
382 UINT32 GlobalSystemInterrupt;
383 UINT32 PlatformInterruptSourceFlags;
384 UINT8 CpeiProcessorOverride;
385 UINT8 Reserved[31];
387
388//
389// MPS INTI flags.
390// All other bits are reserved and must be set to 0.
391//
392#define EFI_ACPI_6_4_POLARITY (3 << 0)
393#define EFI_ACPI_6_4_TRIGGER_MODE (3 << 2)
394
398typedef struct {
399 UINT8 Type;
400 UINT8 Length;
401 UINT16 Flags;
402 UINT32 GlobalSystemInterrupt;
404
408typedef struct {
409 UINT8 Type;
410 UINT8 Length;
411 UINT8 AcpiProcessorUid;
412 UINT16 Flags;
413 UINT8 LocalApicLint;
415
419typedef struct {
420 UINT8 Type;
421 UINT8 Length;
422 UINT16 Reserved;
423 UINT64 LocalApicAddress;
425
429typedef struct {
430 UINT8 Type;
431 UINT8 Length;
432 UINT8 IoApicId;
433 UINT8 Reserved;
434 UINT32 GlobalSystemInterruptBase;
435 UINT64 IoSapicAddress;
437
442typedef struct {
443 UINT8 Type;
444 UINT8 Length;
445 UINT8 AcpiProcessorId;
446 UINT8 LocalSapicId;
447 UINT8 LocalSapicEid;
448 UINT8 Reserved[3];
449 UINT32 Flags;
450 UINT32 ACPIProcessorUIDValue;
452
456typedef struct {
457 UINT8 Type;
458 UINT8 Length;
459 UINT16 Flags;
460 UINT8 InterruptType;
461 UINT8 ProcessorId;
462 UINT8 ProcessorEid;
463 UINT8 IoSapicVector;
464 UINT32 GlobalSystemInterrupt;
465 UINT32 PlatformInterruptSourceFlags;
467
472#define EFI_ACPI_6_4_CPEI_PROCESSOR_OVERRIDE BIT0
473
477typedef struct {
478 UINT8 Type;
479 UINT8 Length;
480 UINT8 Reserved[2];
481 UINT32 X2ApicId;
482 UINT32 Flags;
483 UINT32 AcpiProcessorUid;
485
489typedef struct {
490 UINT8 Type;
491 UINT8 Length;
492 UINT16 Flags;
493 UINT32 AcpiProcessorUid;
494 UINT8 LocalX2ApicLint;
495 UINT8 Reserved[3];
497
501typedef struct {
502 UINT8 Type;
503 UINT8 Length;
504 UINT16 Reserved;
505 UINT32 CPUInterfaceNumber;
506 UINT32 AcpiProcessorUid;
507 UINT32 Flags;
508 UINT32 ParkingProtocolVersion;
509 UINT32 PerformanceInterruptGsiv;
510 UINT64 ParkedAddress;
511 UINT64 PhysicalBaseAddress;
512 UINT64 GICV;
513 UINT64 GICH;
514 UINT32 VGICMaintenanceInterrupt;
515 UINT64 GICRBaseAddress;
516 UINT64 MPIDR;
517 UINT8 ProcessorPowerEfficiencyClass;
518 UINT8 Reserved2;
519 UINT16 SpeOverflowInterrupt;
521
525#define EFI_ACPI_6_4_GIC_ENABLED BIT0
526#define EFI_ACPI_6_4_PERFORMANCE_INTERRUPT_MODEL BIT1
527#define EFI_ACPI_6_4_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS BIT2
528
532typedef struct {
533 UINT8 Type;
534 UINT8 Length;
535 UINT16 Reserved1;
536 UINT32 GicId;
537 UINT64 PhysicalBaseAddress;
538 UINT32 SystemVectorBase;
539 UINT8 GicVersion;
540 UINT8 Reserved2[3];
542
546#define EFI_ACPI_6_4_GIC_V1 0x01
547#define EFI_ACPI_6_4_GIC_V2 0x02
548#define EFI_ACPI_6_4_GIC_V3 0x03
549#define EFI_ACPI_6_4_GIC_V4 0x04
550
554typedef struct {
555 UINT8 Type;
556 UINT8 Length;
557 UINT16 Reserved1;
558 UINT32 GicMsiFrameId;
559 UINT64 PhysicalBaseAddress;
560 UINT32 Flags;
561 UINT16 SPICount;
562 UINT16 SPIBase;
564
568#define EFI_ACPI_6_4_SPI_COUNT_BASE_SELECT BIT0
569
573typedef struct {
574 UINT8 Type;
575 UINT8 Length;
576 UINT16 Reserved;
577 UINT64 DiscoveryRangeBaseAddress;
578 UINT32 DiscoveryRangeLength;
580
584typedef struct {
585 UINT8 Type;
586 UINT8 Length;
587 UINT16 Reserved;
588 UINT32 GicItsId;
589 UINT64 PhysicalBaseAddress;
590 UINT32 Reserved2;
592
596typedef struct {
597 UINT8 Type;
598 UINT8 Length;
599 UINT16 MailBoxVersion;
600 UINT32 Reserved;
601 UINT64 MailBoxAddress;
603
607typedef struct {
608 UINT16 Command;
609 UINT16 Reserved;
610 UINT32 AcpiId;
611 UINT64 WakeupVector;
612 UINT8 ReservedForOs[2032];
613 UINT8 ReservedForFirmware[2048];
615
616#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP_MAILBOX_COMMAND_NOOP 0x0000
617#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP_MAILBOX_COMMAND_WAKEUP 0x0001
618
622typedef struct {
624 UINT32 WarningEnergyLevel;
625 UINT32 LowEnergyLevel;
626 UINT32 CriticalEnergyLevel;
628
632#define EFI_ACPI_6_4_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
633
639typedef struct {
643 UINT32 Uid;
644 UINT8 GpeBit;
646
650#define EFI_ACPI_6_4_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
651
656typedef struct {
658 UINT32 Reserved1;
659 UINT64 Reserved2;
661
665#define EFI_ACPI_6_4_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03
666
667//
668// SRAT structure types.
669// All other values between 0x06 an 0xFF are reserved and
670// will be ignored by OSPM.
671//
672#define EFI_ACPI_6_4_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00
673#define EFI_ACPI_6_4_MEMORY_AFFINITY 0x01
674#define EFI_ACPI_6_4_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02
675#define EFI_ACPI_6_4_GICC_AFFINITY 0x03
676#define EFI_ACPI_6_4_GIC_ITS_AFFINITY 0x04
677#define EFI_ACPI_6_4_GENERIC_INITIATOR_AFFINITY 0x05
678
682typedef struct {
683 UINT8 Type;
684 UINT8 Length;
685 UINT8 ProximityDomain7To0;
686 UINT8 ApicId;
687 UINT32 Flags;
688 UINT8 LocalSapicEid;
689 UINT8 ProximityDomain31To8[3];
690 UINT32 ClockDomain;
692
696#define EFI_ACPI_6_4_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
697
701typedef struct {
702 UINT8 Type;
703 UINT8 Length;
704 UINT32 ProximityDomain;
705 UINT16 Reserved1;
706 UINT32 AddressBaseLow;
707 UINT32 AddressBaseHigh;
708 UINT32 LengthLow;
709 UINT32 LengthHigh;
710 UINT32 Reserved2;
711 UINT32 Flags;
712 UINT64 Reserved3;
714
715//
716// Memory Flags. All other bits are reserved and must be 0.
717//
718#define EFI_ACPI_6_4_MEMORY_ENABLED (1 << 0)
719#define EFI_ACPI_6_4_MEMORY_HOT_PLUGGABLE (1 << 1)
720#define EFI_ACPI_6_4_MEMORY_NONVOLATILE (1 << 2)
721
725typedef struct {
726 UINT8 Type;
727 UINT8 Length;
728 UINT8 Reserved1[2];
729 UINT32 ProximityDomain;
730 UINT32 X2ApicId;
731 UINT32 Flags;
732 UINT32 ClockDomain;
733 UINT8 Reserved2[4];
735
739typedef struct {
740 UINT8 Type;
741 UINT8 Length;
742 UINT32 ProximityDomain;
743 UINT32 AcpiProcessorUid;
744 UINT32 Flags;
745 UINT32 ClockDomain;
747
751#define EFI_ACPI_6_4_GICC_ENABLED (1 << 0)
752
756typedef struct {
757 UINT8 Type;
758 UINT8 Length;
759 UINT32 ProximityDomain;
760 UINT8 Reserved[2];
761 UINT32 ItsId;
763
764//
765// Generic Initiator Affinity Structure Device Handle Types
766// All other values between 0x02 an 0xFF are reserved and
767// will be ignored by OSPM.
768//
769#define EFI_ACPI_6_4_ACPI_DEVICE_HANDLE 0x00
770#define EFI_ACPI_6_4_PCI_DEVICE_HANDLE 0x01
771
775typedef struct {
776 UINT64 AcpiHid;
777 UINT32 AcpiUid;
778 UINT8 Reserved[4];
780
784typedef struct {
785 UINT16 PciSegment;
786 UINT16 PciBdfNumber;
787 UINT8 Reserved[12];
789
793typedef union {
797
801typedef struct {
802 UINT8 Type;
803 UINT8 Length;
804 UINT8 Reserved1;
805 UINT8 DeviceHandleType;
806 UINT32 ProximityDomain;
807 EFI_ACPI_6_4_DEVICE_HANDLE DeviceHandle;
808 UINT32 Flags;
809 UINT8 Reserved2[4];
811
816#define EFI_ACPI_6_4_GENERIC_INITIATOR_AFFINITY_STRUCTURE_ENABLED BIT0
817#define EFI_ACPI_6_4_GENERIC_INITIATOR_AFFINITY_STRUCTURE_ARCHITECTURAL_TRANSACTIONS BIT1
818
823typedef struct {
825 UINT64 NumberOfSystemLocalities;
827
831#define EFI_ACPI_6_4_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01
832
836typedef struct {
838 UINT8 Reserved[8];
840
844#define EFI_ACPI_6_4_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01
845
846//
847// CPEP processor structure types.
848//
849#define EFI_ACPI_6_4_CPEP_PROCESSOR_APIC_SAPIC 0x00
850
854typedef struct {
855 UINT8 Type;
856 UINT8 Length;
857 UINT8 ProcessorId;
858 UINT8 ProcessorEid;
859 UINT32 PollingInterval;
861
865typedef struct {
867 UINT32 OffsetProxDomInfo;
868 UINT32 MaximumNumberOfProximityDomains;
869 UINT32 MaximumNumberOfClockDomains;
870 UINT64 MaximumPhysicalAddress;
872
876#define EFI_ACPI_6_4_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01
877
881typedef struct {
882 UINT8 Revision;
883 UINT8 Length;
884 UINT32 ProximityDomainRangeLow;
885 UINT32 ProximityDomainRangeHigh;
886 UINT32 MaximumProcessorCapacity;
887 UINT64 MaximumMemoryCapacity;
889
893typedef struct {
895 UINT8 PlatformCommunicationChannelIdentifier[12];
897
901#define EFI_ACPI_6_4_RAS_FEATURE_TABLE_REVISION 0x01
902
906typedef struct {
907 UINT32 Signature;
908 UINT16 Command;
909 UINT16 Status;
910 UINT16 Version;
911 UINT8 RASCapabilities[16];
912 UINT8 SetRASCapabilities[16];
913 UINT16 NumberOfRASFParameterBlocks;
914 UINT32 SetRASCapabilitiesStatus;
916
920#define EFI_ACPI_6_4_RASF_PCC_COMMAND_CODE_EXECUTE_RASF_COMMAND 0x01
921
925#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPORTED BIT0
926#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPORTED_AND_EXPOSED_TO_SOFTWARE BIT1
927#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_CPU_CACHE_FLUSH_TO_NVDIMM_DURABILITY_ON_POWER_LOSS BIT2
928#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_MEMORY_CONTROLLER_FLUSH_TO_NVDIMM_DURABILITY_ON_POWER_LOSS BIT3
929#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_HARDWARE_MIRRORING BIT4
930
934typedef struct {
935 UINT16 Type;
936 UINT16 Version;
937 UINT16 Length;
938 UINT16 PatrolScrubCommand;
939 UINT64 RequestedAddressRange[2];
940 UINT64 ActualAddressRange[2];
941 UINT16 Flags;
942 UINT8 RequestedSpeed;
944
948#define EFI_ACPI_6_4_RASF_PATROL_SCRUB_COMMAND_GET_PATROL_PARAMETERS 0x01
949#define EFI_ACPI_6_4_RASF_PATROL_SCRUB_COMMAND_START_PATROL_SCRUBBER 0x02
950#define EFI_ACPI_6_4_RASF_PATROL_SCRUB_COMMAND_STOP_PATROL_SCRUBBER 0x03
951
955typedef struct {
957 UINT8 PlatformCommunicationChannelIdentifier;
958 UINT8 Reserved[3];
959 // Memory Power Node Structure
960 // Memory Power State Characteristics
962
966#define EFI_ACPI_6_4_MEMORY_POWER_STATE_TABLE_REVISION 0x01
967
971typedef struct {
972 UINT32 Signature;
973 UINT16 Command;
974 UINT16 Status;
975 UINT32 MemoryPowerCommandRegister;
976 UINT32 MemoryPowerStatusRegister;
977 UINT32 PowerStateId;
978 UINT32 MemoryPowerNodeId;
979 UINT64 MemoryEnergyConsumed;
980 UINT64 ExpectedAveragePowerComsuned;
982
986#define EFI_ACPI_6_4_MPST_PCC_COMMAND_CODE_EXECUTE_MPST_COMMAND 0x03
987
991#define EFI_ACPI_6_4_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_POWER_STATE 0x01
992#define EFI_ACPI_6_4_MPST_MEMORY_POWER_COMMAND_SET_MEMORY_POWER_STATE 0x02
993#define EFI_ACPI_6_4_MPST_MEMORY_POWER_COMMAND_GET_AVERAGE_POWER_CONSUMED 0x03
994#define EFI_ACPI_6_4_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_ENERGY_CONSUMED 0x04
995
999typedef struct {
1000 UINT8 PowerStateValue;
1001 UINT8 PowerStateInformationIndex;
1003
1004typedef struct {
1005 UINT8 Flag;
1006 UINT8 Reserved;
1007 UINT16 MemoryPowerNodeId;
1008 UINT32 Length;
1009 UINT64 AddressBase;
1010 UINT64 AddressLength;
1011 UINT32 NumberOfPowerStates;
1012 UINT32 NumberOfPhysicalComponents;
1013 // EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates];
1014 // UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents];
1016
1017#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STRUCTURE_FLAG_ENABLE 0x01
1018#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STRUCTURE_FLAG_POWER_MANAGED 0x02
1019#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STRUCTURE_FLAG_HOT_PLUGGABLE 0x04
1020
1021typedef struct {
1022 UINT16 MemoryPowerNodeCount;
1023 UINT8 Reserved[2];
1025
1029typedef struct {
1030 UINT8 PowerStateStructureID;
1031 UINT8 Flag;
1032 UINT16 Reserved;
1033 UINT32 AveragePowerConsumedInMPS0;
1034 UINT32 RelativePowerSavingToMPS0;
1035 UINT64 ExitLatencyToMPS0;
1037
1038#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_MEMORY_CONTENT_PRESERVED 0x01
1039#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_ENTRY 0x02
1040#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_EXIT 0x04
1041
1042typedef struct {
1043 UINT16 MemoryPowerStateCharacteristicsCount;
1044 UINT8 Reserved[2];
1046
1050typedef struct {
1052 UINT32 NumberOfMemoryDevices;
1053 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[NumberOfMemoryDevices];
1055
1059#define EFI_ACPI_6_4_MEMORY_TOPOLOGY_TABLE_REVISION 0x02
1060
1064typedef struct {
1065 UINT8 Type;
1066 UINT8 Reserved;
1067 UINT16 Length;
1068 UINT16 Flags;
1069 UINT16 Reserved1;
1070 UINT32 NumberOfMemoryDevices;
1071 // UINT8 TypeSpecificData[];
1072 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[NumberOfMemoryDevices];
1074
1078#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_SOCKET 0x0
1079#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_MEMORY_CONTROLLER 0x1
1080#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_DIMM 0x2
1081#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_VENDOR_SPECIFIC_TYPE 0xFF
1082
1086typedef struct {
1087 EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE CommonMemoryDeviceHeader;
1088 UINT16 SocketIdentifier;
1089 UINT16 Reserved;
1090 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[];
1092
1096typedef struct {
1097 EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE CommonMemoryDeviceHeader;
1098 UINT16 MemoryControllerIdentifier;
1099 UINT16 Reserved;
1100 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[];
1102
1106typedef struct {
1107 EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE CommonMemoryDeviceHeader;
1108 UINT32 SmbiosHandle;
1110
1114typedef struct {
1115 EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE CommonMemoryDeviceHeader;
1116 UINT8 TypeUuid[16];
1117 // EFI_ACPI_6_4_PMTT_VENDOR_SPECIFIC_TYPE_DATA VendorSpecificData[];
1118 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[];
1120
1124typedef struct {
1129 UINT16 Version;
1142 UINT8 Status;
1167
1171#define EFI_ACPI_6_4_BOOT_GRAPHICS_RESOURCE_TABLE_REVISION 1
1172
1176#define EFI_ACPI_6_4_BGRT_VERSION 0x01
1177
1181#define EFI_ACPI_6_4_BGRT_STATUS_NOT_DISPLAYED 0x00
1182#define EFI_ACPI_6_4_BGRT_STATUS_DISPLAYED 0x01
1183
1187#define EFI_ACPI_6_4_BGRT_IMAGE_TYPE_BMP 0x00
1188
1192#define EFI_ACPI_6_4_FIRMWARE_PERFORMANCE_DATA_TABLE_REVISION 0x01
1193
1197#define EFI_ACPI_6_4_FPDT_RECORD_TYPE_FIRMWARE_BASIC_BOOT_POINTER 0x0000
1198#define EFI_ACPI_6_4_FPDT_RECORD_TYPE_S3_PERFORMANCE_TABLE_POINTER 0x0001
1199
1203#define EFI_ACPI_6_4_FPDT_RECORD_REVISION_FIRMWARE_BASIC_BOOT_POINTER 0x01
1204#define EFI_ACPI_6_4_FPDT_RECORD_REVISION_S3_PERFORMANCE_TABLE_POINTER 0x01
1205
1209#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_TYPE_S3_RESUME 0x0000
1210#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_TYPE_S3_SUSPEND 0x0001
1211#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_TYPE_FIRMWARE_BASIC_BOOT 0x0002
1212
1216#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_REVISION_S3_RESUME 0x01
1217#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_REVISION_S3_SUSPEND 0x01
1218#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_REVISION_FIRMWARE_BASIC_BOOT 0x02
1219
1223typedef struct {
1224 UINT16 Type;
1225 UINT8 Length;
1226 UINT8 Revision;
1228
1232typedef struct {
1233 UINT32 Signature;
1234 UINT32 Length;
1236
1240typedef struct {
1242 UINT32 Reserved;
1248
1252typedef struct {
1254 UINT32 Reserved;
1260
1264typedef struct {
1266 UINT32 Reserved;
1271 UINT64 ResetEnd;
1296
1300#define EFI_ACPI_6_4_FPDT_BOOT_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('F', 'B', 'P', 'T')
1301
1302//
1303// FPDT Firmware Basic Boot Performance Table
1304//
1305typedef struct {
1307 //
1308 // one or more Performance Records.
1309 //
1311
1315#define EFI_ACPI_6_4_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('S', '3', 'P', 'T')
1316
1317//
1318// FPDT Firmware S3 Boot Performance Table
1319//
1320typedef struct {
1322 //
1323 // one or more Performance Records.
1324 //
1326
1330typedef struct {
1348
1352typedef struct {
1366
1370typedef struct {
1373
1377typedef struct {
1379 UINT64 CntControlBasePhysicalAddress;
1380 UINT32 Reserved;
1381 UINT32 SecurePL1TimerGSIV;
1382 UINT32 SecurePL1TimerFlags;
1383 UINT32 NonSecurePL1TimerGSIV;
1384 UINT32 NonSecurePL1TimerFlags;
1385 UINT32 VirtualTimerGSIV;
1386 UINT32 VirtualTimerFlags;
1387 UINT32 NonSecurePL2TimerGSIV;
1388 UINT32 NonSecurePL2TimerFlags;
1389 UINT64 CntReadBasePhysicalAddress;
1390 UINT32 PlatformTimerCount;
1391 UINT32 PlatformTimerOffset;
1392 UINT32 VirtualPL2TimerGSIV;
1393 UINT32 VirtualPL2TimerFlags;
1395
1399#define EFI_ACPI_6_4_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION 0x03
1400
1404#define EFI_ACPI_6_4_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0
1405#define EFI_ACPI_6_4_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1406#define EFI_ACPI_6_4_GTDT_TIMER_FLAG_ALWAYS_ON_CAPABILITY BIT2
1407
1411#define EFI_ACPI_6_4_GTDT_GT_BLOCK 0
1412#define EFI_ACPI_6_4_GTDT_ARM_GENERIC_WATCHDOG 1
1413
1417typedef struct {
1418 UINT8 Type;
1419 UINT16 Length;
1420 UINT8 Reserved;
1421 UINT64 CntCtlBase;
1422 UINT32 GTBlockTimerCount;
1423 UINT32 GTBlockTimerOffset;
1425
1429typedef struct {
1430 UINT8 GTFrameNumber;
1431 UINT8 Reserved[3];
1432 UINT64 CntBaseX;
1433 UINT64 CntEL0BaseX;
1434 UINT32 GTxPhysicalTimerGSIV;
1435 UINT32 GTxPhysicalTimerFlags;
1436 UINT32 GTxVirtualTimerGSIV;
1437 UINT32 GTxVirtualTimerFlags;
1438 UINT32 GTxCommonFlags;
1440
1444#define EFI_ACPI_6_4_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0
1445#define EFI_ACPI_6_4_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1446
1450#define EFI_ACPI_6_4_GTDT_GT_BLOCK_COMMON_FLAG_SECURE_TIMER BIT0
1451#define EFI_ACPI_6_4_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY BIT1
1452
1456typedef struct {
1457 UINT8 Type;
1458 UINT16 Length;
1459 UINT8 Reserved;
1460 UINT64 RefreshFramePhysicalAddress;
1461 UINT64 WatchdogControlFramePhysicalAddress;
1462 UINT32 WatchdogTimerGSIV;
1463 UINT32 WatchdogTimerFlags;
1465
1469#define EFI_ACPI_6_4_GTDT_ARM_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE BIT0
1470#define EFI_ACPI_6_4_GTDT_ARM_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1471#define EFI_ACPI_6_4_GTDT_ARM_GENERIC_WATCHDOG_FLAG_SECURE_TIMER BIT2
1472
1473//
1474// NVDIMM Firmware Interface Table definition.
1475//
1476typedef struct {
1478 UINT32 Reserved;
1480
1481//
1482// NFIT Version (as defined in ACPI 6.4 spec.)
1483//
1484#define EFI_ACPI_6_4_NVDIMM_FIRMWARE_INTERFACE_TABLE_REVISION 0x1
1485
1486//
1487// Definition for NFIT Table Structure Types
1488//
1489#define EFI_ACPI_6_4_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE 0
1490#define EFI_ACPI_6_4_NFIT_NVDIMM_REGION_MAPPING_STRUCTURE_TYPE 1
1491#define EFI_ACPI_6_4_NFIT_INTERLEAVE_STRUCTURE_TYPE 2
1492#define EFI_ACPI_6_4_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE_TYPE 3
1493#define EFI_ACPI_6_4_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE_TYPE 4
1494#define EFI_ACPI_6_4_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE_TYPE 5
1495#define EFI_ACPI_6_4_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE_TYPE 6
1496
1497//
1498// Definition for NFIT Structure Header
1499//
1500typedef struct {
1501 UINT16 Type;
1502 UINT16 Length;
1504
1505//
1506// Definition for System Physical Address Range Structure
1507//
1508#define EFI_ACPI_6_4_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_CONTROL_REGION_FOR_MANAGEMENT BIT0
1509#define EFI_ACPI_6_4_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_PROXIMITY_DOMAIN_VALID BIT1
1510#define EFI_ACPI_6_4_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_SPA_LOCATION_COOKIE_VALID BIT2
1511
1512#define EFI_ACPI_6_4_NFIT_GUID_VOLATILE_MEMORY_REGION { 0x7305944F, 0xFDDA, 0x44E3, { 0xB1, 0x6C, 0x3F, 0x22, 0xD2, 0x52, 0xE5, 0xD0 }}
1513#define EFI_ACPI_6_4_NFIT_GUID_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_REGION { 0x66F0D379, 0xB4F3, 0x4074, { 0xAC, 0x43, 0x0D, 0x33, 0x18, 0xB7, 0x8C, 0xDB }}
1514#define EFI_ACPI_6_4_NFIT_GUID_NVDIMM_CONTROL_REGION { 0x92F701F6, 0x13B4, 0x405D, { 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C }}
1515#define EFI_ACPI_6_4_NFIT_GUID_NVDIMM_BLOCK_DATA_WINDOW_REGION { 0x91AF0530, 0x5D86, 0x470E, { 0xA6, 0xB0, 0x0A, 0x2D, 0xB9, 0x40, 0x82, 0x49 }}
1516#define EFI_ACPI_6_4_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_VOLATILE { 0x77AB535A, 0x45FC, 0x624B, { 0x55, 0x60, 0xF7, 0xB2, 0x81, 0xD1, 0xF9, 0x6E }}
1517#define EFI_ACPI_6_4_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_VOLATILE { 0x3D5ABD30, 0x4175, 0x87CE, { 0x6D, 0x64, 0xD2, 0xAD, 0xE5, 0x23, 0xC4, 0xBB }}
1518#define EFI_ACPI_6_4_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_DISK_REGION_PERSISTENT { 0x5CEA02C9, 0x4D07, 0x69D3, { 0x26, 0x9F ,0x44, 0x96, 0xFB, 0xE0, 0x96, 0xF9 }}
1519#define EFI_ACPI_6_4_NFIT_GUID_RAM_DISK_SUPPORTING_VIRTUAL_CD_REGION_PERSISTENT { 0x08018188, 0x42CD, 0xBB48, { 0x10, 0x0F, 0x53, 0x87, 0xD5, 0x3D, 0xED, 0x3D }}
1520
1521typedef struct {
1522 UINT16 Type;
1523 UINT16 Length;
1524 UINT16 SPARangeStructureIndex;
1525 UINT16 Flags;
1526 UINT32 Reserved_8;
1527 UINT32 ProximityDomain;
1528 GUID AddressRangeTypeGUID;
1529 UINT64 SystemPhysicalAddressRangeBase;
1530 UINT64 SystemPhysicalAddressRangeLength;
1531 UINT64 AddressRangeMemoryMappingAttribute;
1532 UINT64 SPALocationCookie;
1534
1535//
1536// Definition for Memory Device to System Physical Address Range Mapping Structure
1537//
1538typedef struct {
1539 UINT32 DIMMNumber : 4;
1540 UINT32 MemoryChannelNumber : 4;
1541 UINT32 MemoryControllerID : 4;
1542 UINT32 SocketID : 4;
1543 UINT32 NodeControllerID : 12;
1544 UINT32 Reserved_28 : 4;
1546
1547#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_PREVIOUS_SAVE_FAIL BIT0
1548#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_LAST_RESTORE_FAIL BIT1
1549#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_PLATFORM_FLUSH_FAIL BIT2
1550#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_NOT_ARMED_PRIOR_TO_OSPM_HAND_OFF BIT3
1551#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_SMART_HEALTH_EVENTS_PRIOR_OSPM_HAND_OFF BIT4
1552#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_FIRMWARE_ENABLED_TO_NOTIFY_OSPM_ON_SMART_HEALTH_EVENTS BIT5
1553#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_FIRMWARE_NOT_MAP_NVDIMM_TO_SPA BIT6
1554
1555typedef struct {
1556 UINT16 Type;
1557 UINT16 Length;
1558 EFI_ACPI_6_4_NFIT_DEVICE_HANDLE NFITDeviceHandle;
1559 UINT16 NVDIMMPhysicalID;
1560 UINT16 NVDIMMRegionID;
1561 UINT16 SPARangeStructureIndex;
1562 UINT16 NVDIMMControlRegionStructureIndex;
1563 UINT64 NVDIMMRegionSize;
1564 UINT64 RegionOffset;
1565 UINT64 NVDIMMPhysicalAddressRegionBase;
1566 UINT16 InterleaveStructureIndex;
1567 UINT16 InterleaveWays;
1568 UINT16 NVDIMMStateFlags;
1569 UINT16 Reserved_46;
1571
1572//
1573// Definition for Interleave Structure
1574//
1575typedef struct {
1576 UINT16 Type;
1577 UINT16 Length;
1578 UINT16 InterleaveStructureIndex;
1579 UINT16 Reserved_6;
1580 UINT32 NumberOfLines;
1581 UINT32 LineSize;
1582 // UINT32 LineOffset[NumberOfLines];
1584
1585//
1586// Definition for SMBIOS Management Information Structure
1587//
1588typedef struct {
1589 UINT16 Type;
1590 UINT16 Length;
1591 UINT32 Reserved_4;
1592 // UINT8 Data[];
1594
1595//
1596// Definition for NVDIMM Control Region Structure
1597//
1598#define EFI_ACPI_6_4_NFIT_NVDIMM_CONTROL_REGION_VALID_FIELDS_MANUFACTURING BIT0
1599
1600#define EFI_ACPI_6_4_NFIT_NVDIMM_CONTROL_REGION_FLAGS_BLOCK_DATA_WINDOWS_BUFFERED BIT0
1601
1602typedef struct {
1603 UINT16 Type;
1604 UINT16 Length;
1605 UINT16 NVDIMMControlRegionStructureIndex;
1606 UINT16 VendorID;
1607 UINT16 DeviceID;
1608 UINT16 RevisionID;
1609 UINT16 SubsystemVendorID;
1610 UINT16 SubsystemDeviceID;
1611 UINT16 SubsystemRevisionID;
1612 UINT8 ValidFields;
1613 UINT8 ManufacturingLocation;
1614 UINT16 ManufacturingDate;
1615 UINT8 Reserved_22[2];
1616 UINT32 SerialNumber;
1617 UINT16 RegionFormatInterfaceCode;
1618 UINT16 NumberOfBlockControlWindows;
1619 UINT64 SizeOfBlockControlWindow;
1620 UINT64 CommandRegisterOffsetInBlockControlWindow;
1621 UINT64 SizeOfCommandRegisterInBlockControlWindows;
1622 UINT64 StatusRegisterOffsetInBlockControlWindow;
1623 UINT64 SizeOfStatusRegisterInBlockControlWindows;
1624 UINT16 NVDIMMControlRegionFlag;
1625 UINT8 Reserved_74[6];
1627
1628//
1629// Definition for NVDIMM Block Data Window Region Structure
1630//
1631typedef struct {
1632 UINT16 Type;
1633 UINT16 Length;
1634 UINT16 NVDIMMControlRegionStructureIndex;
1635 UINT16 NumberOfBlockDataWindows;
1636 UINT64 BlockDataWindowStartOffset;
1637 UINT64 SizeOfBlockDataWindow;
1638 UINT64 BlockAccessibleMemoryCapacity;
1639 UINT64 BeginningAddressOfFirstBlockInBlockAccessibleMemory;
1641
1642//
1643// Definition for Flush Hint Address Structure
1644//
1645typedef struct {
1646 UINT16 Type;
1647 UINT16 Length;
1648 EFI_ACPI_6_4_NFIT_DEVICE_HANDLE NFITDeviceHandle;
1649 UINT16 NumberOfFlushHintAddresses;
1650 UINT8 Reserved_10[6];
1651 // UINT64 FlushHintAddress[NumberOfFlushHintAddresses];
1653
1657typedef struct {
1660
1664#define EFI_ACPI_6_4_SECURE_DEVICES_TABLE_REVISION 0x01
1665
1669#define EFI_ACPI_6_4_SDEV_TYPE_ACPI_NAMESPACE_DEVICE 0x00
1670#define EFI_ACPI_6_4_SDEV_TYPE_PCIE_ENDPOINT_DEVICE 0x01
1671
1675#define EFI_ACPI_6_4_SDEV_FLAG_ALLOW_HANDOFF BIT0
1676#define EFI_ACPI_6_4_SDEV_FLAG_SECURE_ACCESS_COMPONENTS_PRESENT BIT1
1677
1681typedef struct {
1682 UINT8 Type;
1683 UINT8 Flags;
1684 UINT16 Length;
1686
1690typedef struct {
1692 UINT16 DeviceIdentifierOffset;
1693 UINT16 DeviceIdentifierLength;
1694 UINT16 VendorSpecificDataOffset;
1695 UINT16 VendorSpecificDataLength;
1696 UINT16 SecureAccessComponentsOffset;
1697 UINT16 SecureAccessComponentsLength;
1699
1703#define EFI_ACPI_6_4_SDEV_SECURE_ACCESS_COMPONENT_TYPE_IDENTIFICATION 0x00
1704#define EFI_ACPI_6_4_SDEV_SECURE_ACCESS_COMPONENT_TYPE_MEMORY 0x01
1705
1709typedef struct {
1711 UINT16 HardwareIdentifierOffset;
1712 UINT16 HardwareIdentifierLength;
1713 UINT16 SubsystemIdentifierOffset;
1714 UINT16 SubsystemIdentifierLength;
1715 UINT16 HardwareRevision;
1716 UINT8 HardwareRevisionPresent;
1717 UINT8 ClassCodePresent;
1718 UINT8 PciCompatibleBaseClass;
1719 UINT8 PciCompatibleSubClass;
1720 UINT8 PciCompatibleProgrammingInterface;
1722
1726typedef struct {
1728 UINT32 Reserved;
1729 UINT64 MemoryAddressBase;
1730 UINT64 MemoryLength;
1732
1736typedef struct {
1738 UINT16 PciSegmentNumber;
1739 UINT16 StartBusNumber;
1740 UINT16 PciPathOffset;
1741 UINT16 PciPathLength;
1742 UINT16 VendorSpecificDataOffset;
1743 UINT16 VendorSpecificDataLength;
1745
1749typedef struct {
1751 UINT32 BootErrorRegionLength;
1752 UINT64 BootErrorRegion;
1754
1758#define EFI_ACPI_6_4_BOOT_ERROR_RECORD_TABLE_REVISION 0x01
1759
1763typedef struct {
1764 UINT32 UncorrectableErrorValid : 1;
1765 UINT32 CorrectableErrorValid : 1;
1766 UINT32 MultipleUncorrectableErrors : 1;
1767 UINT32 MultipleCorrectableErrors : 1;
1768 UINT32 ErrorDataEntryCount : 10;
1769 UINT32 Reserved : 18;
1771
1775typedef struct {
1777 UINT32 RawDataOffset;
1778 UINT32 RawDataLength;
1779 UINT32 DataLength;
1780 UINT32 ErrorSeverity;
1782
1783//
1784// Boot Error Severity types
1785//
1786#define EFI_ACPI_6_4_ERROR_SEVERITY_RECOVERABLE 0x00
1787#define EFI_ACPI_6_4_ERROR_SEVERITY_FATAL 0x01
1788#define EFI_ACPI_6_4_ERROR_SEVERITY_CORRECTED 0x02
1789#define EFI_ACPI_6_4_ERROR_SEVERITY_NONE 0x03
1790//
1791// The term 'Correctable' is no longer being used as an error severity of the
1792// reported error since ACPI Specification Version 5.1 Errata B.
1793// The below macro is considered as deprecated and should no longer be used.
1794//
1795#define EFI_ACPI_6_4_ERROR_SEVERITY_CORRECTABLE 0x00
1796
1800typedef struct {
1801 UINT8 SectionType[16];
1802 UINT32 ErrorSeverity;
1803 UINT16 Revision;
1804 UINT8 ValidationBits;
1805 UINT8 Flags;
1806 UINT32 ErrorDataLength;
1807 UINT8 FruId[16];
1808 UINT8 FruText[20];
1809 UINT8 Timestamp[8];
1811
1815#define EFI_ACPI_6_4_GENERIC_ERROR_DATA_ENTRY_REVISION 0x0300
1816
1820typedef struct {
1822 UINT32 ErrorSourceCount;
1824
1828#define EFI_ACPI_6_4_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x01
1829
1830//
1831// Error Source structure types.
1832//
1833#define EFI_ACPI_6_4_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x00
1834#define EFI_ACPI_6_4_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x01
1835#define EFI_ACPI_6_4_IA32_ARCHITECTURE_NMI_ERROR 0x02
1836#define EFI_ACPI_6_4_PCI_EXPRESS_ROOT_PORT_AER 0x06
1837#define EFI_ACPI_6_4_PCI_EXPRESS_DEVICE_AER 0x07
1838#define EFI_ACPI_6_4_PCI_EXPRESS_BRIDGE_AER 0x08
1839#define EFI_ACPI_6_4_GENERIC_HARDWARE_ERROR 0x09
1840#define EFI_ACPI_6_4_GENERIC_HARDWARE_ERROR_VERSION_2 0x0A
1841#define EFI_ACPI_6_4_IA32_ARCHITECTURE_DEFERRED_MACHINE_CHECK 0x0B
1842
1843//
1844// Error Source structure flags.
1845//
1846#define EFI_ACPI_6_4_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0)
1847#define EFI_ACPI_6_4_ERROR_SOURCE_FLAG_GLOBAL (1 << 1)
1848#define EFI_ACPI_6_4_ERROR_SOURCE_FLAG_GHES_ASSIST (1 << 2)
1849
1853typedef struct {
1854 UINT16 Type;
1855 UINT16 SourceId;
1856 UINT8 Reserved0[2];
1857 UINT8 Flags;
1858 UINT8 Enabled;
1859 UINT32 NumberOfRecordsToPreAllocate;
1860 UINT32 MaxSectionsPerRecord;
1861 UINT64 GlobalCapabilityInitData;
1862 UINT64 GlobalControlInitData;
1863 UINT8 NumberOfHardwareBanks;
1864 UINT8 Reserved1[7];
1866
1870typedef struct {
1871 UINT8 BankNumber;
1872 UINT8 ClearStatusOnInitialization;
1873 UINT8 StatusDataFormat;
1874 UINT8 Reserved0;
1875 UINT32 ControlRegisterMsrAddress;
1876 UINT64 ControlInitData;
1877 UINT32 StatusRegisterMsrAddress;
1878 UINT32 AddressRegisterMsrAddress;
1879 UINT32 MiscRegisterMsrAddress;
1881
1885#define EFI_ACPI_6_4_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x00
1886#define EFI_ACPI_6_4_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x01
1887#define EFI_ACPI_6_4_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x02
1888
1889//
1890// Hardware Error Notification types. All other values are reserved
1891//
1892#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_POLLED 0x00
1893#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x01
1894#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x02
1895#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_SCI 0x03
1896#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_NMI 0x04
1897#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_CMCI 0x05
1898#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_MCE 0x06
1899#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_GPIO_SIGNAL 0x07
1900#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_ARMV8_SEA 0x08
1901#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_ARMV8_SEI 0x09
1902#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_GSIV 0x0A
1903#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_SOFTWARE_DELEGATED_EXCEPTION 0x0B
1904
1908typedef struct {
1909 UINT16 Type : 1;
1910 UINT16 PollInterval : 1;
1911 UINT16 SwitchToPollingThresholdValue : 1;
1912 UINT16 SwitchToPollingThresholdWindow : 1;
1913 UINT16 ErrorThresholdValue : 1;
1914 UINT16 ErrorThresholdWindow : 1;
1915 UINT16 Reserved : 10;
1917
1921typedef struct {
1922 UINT8 Type;
1923 UINT8 Length;
1925 UINT32 PollInterval;
1926 UINT32 Vector;
1927 UINT32 SwitchToPollingThresholdValue;
1928 UINT32 SwitchToPollingThresholdWindow;
1929 UINT32 ErrorThresholdValue;
1930 UINT32 ErrorThresholdWindow;
1932
1936typedef struct {
1937 UINT16 Type;
1938 UINT16 SourceId;
1939 UINT8 Reserved0[2];
1940 UINT8 Flags;
1941 UINT8 Enabled;
1942 UINT32 NumberOfRecordsToPreAllocate;
1943 UINT32 MaxSectionsPerRecord;
1945 UINT8 NumberOfHardwareBanks;
1946 UINT8 Reserved1[3];
1948
1952typedef struct {
1953 UINT16 Type;
1954 UINT16 SourceId;
1955 UINT8 Reserved0[2];
1956 UINT32 NumberOfRecordsToPreAllocate;
1957 UINT32 MaxSectionsPerRecord;
1958 UINT32 MaxRawDataLength;
1960
1964typedef struct {
1965 UINT16 Type;
1966 UINT16 SourceId;
1967 UINT8 Reserved0[2];
1968 UINT8 Flags;
1969 UINT8 Enabled;
1970 UINT32 NumberOfRecordsToPreAllocate;
1971 UINT32 MaxSectionsPerRecord;
1972 UINT32 Bus;
1973 UINT16 Device;
1974 UINT16 Function;
1975 UINT16 DeviceControl;
1976 UINT8 Reserved1[2];
1977 UINT32 UncorrectableErrorMask;
1978 UINT32 UncorrectableErrorSeverity;
1979 UINT32 CorrectableErrorMask;
1980 UINT32 AdvancedErrorCapabilitiesAndControl;
1981 UINT32 RootErrorCommand;
1983
1987typedef struct {
1988 UINT16 Type;
1989 UINT16 SourceId;
1990 UINT8 Reserved0[2];
1991 UINT8 Flags;
1992 UINT8 Enabled;
1993 UINT32 NumberOfRecordsToPreAllocate;
1994 UINT32 MaxSectionsPerRecord;
1995 UINT32 Bus;
1996 UINT16 Device;
1997 UINT16 Function;
1998 UINT16 DeviceControl;
1999 UINT8 Reserved1[2];
2000 UINT32 UncorrectableErrorMask;
2001 UINT32 UncorrectableErrorSeverity;
2002 UINT32 CorrectableErrorMask;
2003 UINT32 AdvancedErrorCapabilitiesAndControl;
2005
2009typedef struct {
2010 UINT16 Type;
2011 UINT16 SourceId;
2012 UINT8 Reserved0[2];
2013 UINT8 Flags;
2014 UINT8 Enabled;
2015 UINT32 NumberOfRecordsToPreAllocate;
2016 UINT32 MaxSectionsPerRecord;
2017 UINT32 Bus;
2018 UINT16 Device;
2019 UINT16 Function;
2020 UINT16 DeviceControl;
2021 UINT8 Reserved1[2];
2022 UINT32 UncorrectableErrorMask;
2023 UINT32 UncorrectableErrorSeverity;
2024 UINT32 CorrectableErrorMask;
2025 UINT32 AdvancedErrorCapabilitiesAndControl;
2026 UINT32 SecondaryUncorrectableErrorMask;
2027 UINT32 SecondaryUncorrectableErrorSeverity;
2028 UINT32 SecondaryAdvancedErrorCapabilitiesAndControl;
2030
2034typedef struct {
2035 UINT16 Type;
2036 UINT16 SourceId;
2037 UINT16 RelatedSourceId;
2038 UINT8 Flags;
2039 UINT8 Enabled;
2040 UINT32 NumberOfRecordsToPreAllocate;
2041 UINT32 MaxSectionsPerRecord;
2042 UINT32 MaxRawDataLength;
2043 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;
2045 UINT32 ErrorStatusBlockLength;
2047
2051typedef struct {
2052 UINT16 Type;
2053 UINT16 SourceId;
2054 UINT16 RelatedSourceId;
2055 UINT8 Flags;
2056 UINT8 Enabled;
2057 UINT32 NumberOfRecordsToPreAllocate;
2058 UINT32 MaxSectionsPerRecord;
2059 UINT32 MaxRawDataLength;
2060 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;
2062 UINT32 ErrorStatusBlockLength;
2064 UINT64 ReadAckPreserve;
2065 UINT64 ReadAckWrite;
2067
2071typedef struct {
2073 UINT32 RawDataOffset;
2074 UINT32 RawDataLength;
2075 UINT32 DataLength;
2076 UINT32 ErrorSeverity;
2078
2082typedef struct {
2083 UINT16 Type;
2084 UINT16 SourceId;
2085 UINT8 Reserved0[2];
2086 UINT8 Flags;
2087 UINT8 Enabled;
2088 UINT32 NumberOfRecordsToPreAllocate;
2089 UINT32 MaxSectionsPerRecord;
2091 UINT8 NumberOfHardwareBanks;
2092 UINT8 Reserved1[3];
2094
2098typedef struct {
2100 UINT8 Reserved[4];
2102
2106#define EFI_ACPI_6_4_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_REVISION 0x02
2107
2111#define EFI_ACPI_6_4_HMAT_TYPE_MEMORY_PROXIMITY_DOMAIN_ATTRIBUTES 0x00
2112#define EFI_ACPI_6_4_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO 0x01
2113#define EFI_ACPI_6_4_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO 0x02
2114
2118typedef struct {
2119 UINT16 Type;
2120 UINT8 Reserved[2];
2121 UINT32 Length;
2123
2127typedef struct {
2128 UINT16 InitiatorProximityDomainValid : 1;
2129 UINT16 Reserved : 15;
2131
2135typedef struct {
2136 UINT16 Type;
2137 UINT8 Reserved[2];
2138 UINT32 Length;
2140 UINT8 Reserved1[2];
2141 UINT32 InitiatorProximityDomain;
2142 UINT32 MemoryProximityDomain;
2143 UINT8 Reserved2[20];
2145
2149typedef struct {
2150 UINT8 MemoryHierarchy : 4;
2151 UINT8 AccessAttributes : 2;
2152 UINT8 Reserved : 2;
2154
2158typedef struct {
2159 UINT16 Type;
2160 UINT8 Reserved[2];
2161 UINT32 Length;
2163 UINT8 DataType;
2164 UINT8 MinTransferSize;
2165 UINT8 Reserved1;
2166 UINT32 NumberOfInitiatorProximityDomains;
2167 UINT32 NumberOfTargetProximityDomains;
2168 UINT8 Reserved2[4];
2169 UINT64 EntryBaseUnit;
2171
2175typedef struct {
2176 UINT32 TotalCacheLevels : 4;
2177 UINT32 CacheLevel : 4;
2178 UINT32 CacheAssociativity : 4;
2179 UINT32 WritePolicy : 4;
2180 UINT32 CacheLineSize : 16;
2182
2186typedef struct {
2187 UINT16 Type;
2188 UINT8 Reserved[2];
2189 UINT32 Length;
2190 UINT32 MemoryProximityDomain;
2191 UINT8 Reserved1[4];
2192 UINT64 MemorySideCacheSize;
2194 UINT8 Reserved2[2];
2195 UINT16 NumberOfSmbiosHandles;
2197
2201typedef struct {
2203 UINT32 SerializationHeaderSize;
2204 UINT8 Reserved0[4];
2205 UINT32 InstructionEntryCount;
2207
2211#define EFI_ACPI_6_4_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x01
2212
2216#define EFI_ACPI_6_4_ERST_BEGIN_WRITE_OPERATION 0x00
2217#define EFI_ACPI_6_4_ERST_BEGIN_READ_OPERATION 0x01
2218#define EFI_ACPI_6_4_ERST_BEGIN_CLEAR_OPERATION 0x02
2219#define EFI_ACPI_6_4_ERST_END_OPERATION 0x03
2220#define EFI_ACPI_6_4_ERST_SET_RECORD_OFFSET 0x04
2221#define EFI_ACPI_6_4_ERST_EXECUTE_OPERATION 0x05
2222#define EFI_ACPI_6_4_ERST_CHECK_BUSY_STATUS 0x06
2223#define EFI_ACPI_6_4_ERST_GET_COMMAND_STATUS 0x07
2224#define EFI_ACPI_6_4_ERST_GET_RECORD_IDENTIFIER 0x08
2225#define EFI_ACPI_6_4_ERST_SET_RECORD_IDENTIFIER 0x09
2226#define EFI_ACPI_6_4_ERST_GET_RECORD_COUNT 0x0A
2227#define EFI_ACPI_6_4_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B
2228#define EFI_ACPI_6_4_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D
2229#define EFI_ACPI_6_4_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E
2230#define EFI_ACPI_6_4_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F
2231#define EFI_ACPI_6_4_ERST_GET_EXECUTE_OPERATION_TIMINGS 0x10
2232
2236#define EFI_ACPI_6_4_ERST_STATUS_SUCCESS 0x00
2237#define EFI_ACPI_6_4_ERST_STATUS_NOT_ENOUGH_SPACE 0x01
2238#define EFI_ACPI_6_4_ERST_STATUS_HARDWARE_NOT_AVAILABLE 0x02
2239#define EFI_ACPI_6_4_ERST_STATUS_FAILED 0x03
2240#define EFI_ACPI_6_4_ERST_STATUS_RECORD_STORE_EMPTY 0x04
2241#define EFI_ACPI_6_4_ERST_STATUS_RECORD_NOT_FOUND 0x05
2242
2246#define EFI_ACPI_6_4_ERST_READ_REGISTER 0x00
2247#define EFI_ACPI_6_4_ERST_READ_REGISTER_VALUE 0x01
2248#define EFI_ACPI_6_4_ERST_WRITE_REGISTER 0x02
2249#define EFI_ACPI_6_4_ERST_WRITE_REGISTER_VALUE 0x03
2250#define EFI_ACPI_6_4_ERST_NOOP 0x04
2251#define EFI_ACPI_6_4_ERST_LOAD_VAR1 0x05
2252#define EFI_ACPI_6_4_ERST_LOAD_VAR2 0x06
2253#define EFI_ACPI_6_4_ERST_STORE_VAR1 0x07
2254#define EFI_ACPI_6_4_ERST_ADD 0x08
2255#define EFI_ACPI_6_4_ERST_SUBTRACT 0x09
2256#define EFI_ACPI_6_4_ERST_ADD_VALUE 0x0A
2257#define EFI_ACPI_6_4_ERST_SUBTRACT_VALUE 0x0B
2258#define EFI_ACPI_6_4_ERST_STALL 0x0C
2259#define EFI_ACPI_6_4_ERST_STALL_WHILE_TRUE 0x0D
2260#define EFI_ACPI_6_4_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E
2261#define EFI_ACPI_6_4_ERST_GOTO 0x0F
2262#define EFI_ACPI_6_4_ERST_SET_SRC_ADDRESS_BASE 0x10
2263#define EFI_ACPI_6_4_ERST_SET_DST_ADDRESS_BASE 0x11
2264#define EFI_ACPI_6_4_ERST_MOVE_DATA 0x12
2265
2269#define EFI_ACPI_6_4_ERST_PRESERVE_REGISTER 0x01
2270
2274typedef struct {
2275 UINT8 SerializationAction;
2276 UINT8 Instruction;
2277 UINT8 Flags;
2278 UINT8 Reserved0;
2280 UINT64 Value;
2281 UINT64 Mask;
2283
2287typedef struct {
2289 UINT32 InjectionHeaderSize;
2290 UINT8 InjectionFlags;
2291 UINT8 Reserved0[3];
2292 UINT32 InjectionEntryCount;
2294
2298#define EFI_ACPI_6_4_ERROR_INJECTION_TABLE_REVISION 0x01
2299
2303#define EFI_ACPI_6_4_EINJ_BEGIN_INJECTION_OPERATION 0x00
2304#define EFI_ACPI_6_4_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x01
2305#define EFI_ACPI_6_4_EINJ_SET_ERROR_TYPE 0x02
2306#define EFI_ACPI_6_4_EINJ_GET_ERROR_TYPE 0x03
2307#define EFI_ACPI_6_4_EINJ_END_OPERATION 0x04
2308#define EFI_ACPI_6_4_EINJ_EXECUTE_OPERATION 0x05
2309#define EFI_ACPI_6_4_EINJ_CHECK_BUSY_STATUS 0x06
2310#define EFI_ACPI_6_4_EINJ_GET_COMMAND_STATUS 0x07
2311#define EFI_ACPI_6_4_EINJ_TRIGGER_ERROR 0xFF
2312
2316#define EFI_ACPI_6_4_EINJ_STATUS_SUCCESS 0x00
2317#define EFI_ACPI_6_4_EINJ_STATUS_UNKNOWN_FAILURE 0x01
2318#define EFI_ACPI_6_4_EINJ_STATUS_INVALID_ACCESS 0x02
2319
2323#define EFI_ACPI_6_4_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0)
2324#define EFI_ACPI_6_4_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1)
2325#define EFI_ACPI_6_4_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2)
2326#define EFI_ACPI_6_4_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3)
2327#define EFI_ACPI_6_4_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4)
2328#define EFI_ACPI_6_4_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5)
2329#define EFI_ACPI_6_4_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6)
2330#define EFI_ACPI_6_4_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7)
2331#define EFI_ACPI_6_4_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8)
2332#define EFI_ACPI_6_4_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9)
2333#define EFI_ACPI_6_4_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10)
2334#define EFI_ACPI_6_4_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11)
2335
2339#define EFI_ACPI_6_4_EINJ_READ_REGISTER 0x00
2340#define EFI_ACPI_6_4_EINJ_READ_REGISTER_VALUE 0x01
2341#define EFI_ACPI_6_4_EINJ_WRITE_REGISTER 0x02
2342#define EFI_ACPI_6_4_EINJ_WRITE_REGISTER_VALUE 0x03
2343#define EFI_ACPI_6_4_EINJ_NOOP 0x04
2344
2348#define EFI_ACPI_6_4_EINJ_PRESERVE_REGISTER 0x01
2349
2353typedef struct {
2354 UINT8 InjectionAction;
2355 UINT8 Instruction;
2356 UINT8 Flags;
2357 UINT8 Reserved0;
2359 UINT64 Value;
2360 UINT64 Mask;
2362
2366typedef struct {
2367 UINT32 HeaderSize;
2368 UINT32 Revision;
2369 UINT32 TableSize;
2370 UINT32 EntryCount;
2372
2376typedef struct {
2378 UINT32 Flags;
2379 UINT64 Reserved;
2381
2385#define EFI_ACPI_6_4_PLATFORM_COMMUNICATION_CHANNEL_TABLE_REVISION 0x02
2386
2390#define EFI_ACPI_6_4_PCCT_FLAGS_PLATFORM_INTERRUPT BIT0
2391
2392//
2393// PCCT Subspace type
2394//
2395#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_GENERIC 0x00
2396#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS 0x01
2397#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS 0x02
2398#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_3_EXTENDED_PCC 0x03
2399#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC 0x04
2400#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_5_HW_REGISTERS_COMMUNICATIONS 0x05
2401
2405typedef struct {
2406 UINT8 Type;
2407 UINT8 Length;
2409
2413typedef struct {
2414 UINT8 Type;
2415 UINT8 Length;
2416 UINT8 Reserved[6];
2417 UINT64 BaseAddress;
2418 UINT64 AddressLength;
2420 UINT64 DoorbellPreserve;
2421 UINT64 DoorbellWrite;
2422 UINT32 NominalLatency;
2423 UINT32 MaximumPeriodicAccessRate;
2424 UINT16 MinimumRequestTurnaroundTime;
2426
2430
2431typedef struct {
2432 UINT8 Command;
2433 UINT8 Reserved : 7;
2434 UINT8 NotifyOnCompletion : 1;
2436
2437typedef struct {
2438 UINT8 CommandComplete : 1;
2439 UINT8 PlatformInterrupt : 1;
2440 UINT8 Error : 1;
2441 UINT8 PlatformNotification : 1;
2442 UINT8 Reserved : 4;
2443 UINT8 Reserved1;
2445
2446typedef struct {
2447 UINT32 Signature;
2451
2452#define EFI_ACPI_6_4_PCCT_SUBSPACE_PLATFORM_INTERRUPT_FLAGS_POLARITY BIT0
2453#define EFI_ACPI_6_4_PCCT_SUBSPACE_PLATFORM_INTERRUPT_FLAGS_MODE BIT1
2454
2458typedef struct {
2459 UINT8 Type;
2460 UINT8 Length;
2461 UINT32 PlatformInterrupt;
2462 UINT8 PlatformInterruptFlags;
2463 UINT8 Reserved;
2464 UINT64 BaseAddress;
2465 UINT64 AddressLength;
2467 UINT64 DoorbellPreserve;
2468 UINT64 DoorbellWrite;
2469 UINT32 NominalLatency;
2470 UINT32 MaximumPeriodicAccessRate;
2471 UINT16 MinimumRequestTurnaroundTime;
2473
2477typedef struct {
2478 UINT8 Type;
2479 UINT8 Length;
2480 UINT32 PlatformInterrupt;
2481 UINT8 PlatformInterruptFlags;
2482 UINT8 Reserved;
2483 UINT64 BaseAddress;
2484 UINT64 AddressLength;
2486 UINT64 DoorbellPreserve;
2487 UINT64 DoorbellWrite;
2488 UINT32 NominalLatency;
2489 UINT32 MaximumPeriodicAccessRate;
2490 UINT16 MinimumRequestTurnaroundTime;
2491 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PlatformInterruptAckRegister;
2492 UINT64 PlatformInterruptAckPreserve;
2493 UINT64 PlatformInterruptAckWrite;
2495
2499typedef struct {
2500 UINT8 Type;
2501 UINT8 Length;
2502 UINT32 PlatformInterrupt;
2503 UINT8 PlatformInterruptFlags;
2504 UINT8 Reserved;
2505 UINT64 BaseAddress;
2506 UINT32 AddressLength;
2508 UINT64 DoorbellPreserve;
2509 UINT64 DoorbellWrite;
2510 UINT32 NominalLatency;
2511 UINT32 MaximumPeriodicAccessRate;
2512 UINT32 MinimumRequestTurnaroundTime;
2513 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PlatformInterruptAckRegister;
2514 UINT64 PlatformInterruptAckPreserve;
2515 UINT64 PlatformInterruptAckSet;
2516 UINT8 Reserved1[8];
2517 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CommandCompleteCheckRegister;
2518 UINT64 CommandCompleteCheckMask;
2519 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CommandCompleteUpdateRegister;
2520 UINT64 CommandCompleteUpdatePreserve;
2521 UINT64 CommandCompleteUpdateSet;
2522 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ErrorStatusRegister;
2523 UINT64 ErrorStatusMask;
2525
2530
2531#define EFI_ACPI_6_4_PCCT_MASTER_SLAVE_COMMUNICATIONS_CHANNEL_FLAGS_NOTIFY_ON_COMPLETION BIT0
2532
2533typedef struct {
2534 UINT32 Signature;
2535 UINT32 Flags;
2536 UINT32 Length;
2537 UINT32 Command;
2539
2543typedef struct {
2544 UINT8 Type;
2545 UINT8 Length;
2546 UINT16 Version;
2547 UINT64 BaseAddress;
2548 UINT64 SharedMemoryRangeLength;
2550 UINT64 DoorbellPreserve;
2551 UINT64 DoorbellWrite;
2552 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CommandCompleteCheckRegister;
2553 UINT64 CommandCompleteCheckMask;
2554 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ErrorStatusRegister;
2555 UINT64 ErrorStatusMask;
2556 UINT32 NominalLatency;
2557 UINT32 MinimumRequestTurnaroundTime;
2559
2563typedef struct {
2564 UINT32 Signature;
2565 // UINT8 CommunicationSubspace[];
2567
2571typedef struct {
2573 UINT8 TriggerCount;
2574 UINT8 Reserved[3];
2575 UINT32 TriggerIdentifierArrayOffset;
2577
2581#define EFI_ACPI_6_4_PLATFORM_DEBUG_TRIGGER_TABLE_REVISION 0x00
2582
2586typedef struct {
2587 UINT16 SubChannelIdentifer : 8;
2588 UINT16 Runtime : 1;
2589 UINT16 WaitForCompletion : 1;
2590 UINT16 TriggerOrder : 1;
2591 UINT16 Reserved : 5;
2593
2597#define EFI_ACPI_6_4_PDTT_PCC_COMMAND_DOORBELL_ONLY 0x00
2598#define EFI_ACPI_6_4_PDTT_PCC_COMMAND_VENDOR_SPECIFIC 0x01
2599
2604
2608typedef struct {
2611
2615#define EFI_ACPI_6_4_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_REVISION 0x03
2616
2620#define EFI_ACPI_6_4_PPTT_TYPE_PROCESSOR 0x00
2621#define EFI_ACPI_6_4_PPTT_TYPE_CACHE 0x01
2622
2626typedef struct {
2627 UINT8 Type;
2628 UINT8 Length;
2629 UINT8 Reserved[2];
2631
2635#define EFI_ACPI_6_4_PPTT_PACKAGE_NOT_PHYSICAL 0x0
2636#define EFI_ACPI_6_4_PPTT_PACKAGE_PHYSICAL 0x1
2637#define EFI_ACPI_6_4_PPTT_PROCESSOR_ID_INVALID 0x0
2638#define EFI_ACPI_6_4_PPTT_PROCESSOR_ID_VALID 0x1
2639#define EFI_ACPI_6_4_PPTT_PROCESSOR_IS_NOT_THREAD 0x0
2640#define EFI_ACPI_6_4_PPTT_PROCESSOR_IS_THREAD 0x1
2641#define EFI_ACPI_6_4_PPTT_NODE_IS_NOT_LEAF 0x0
2642#define EFI_ACPI_6_4_PPTT_NODE_IS_LEAF 0x1
2643#define EFI_ACPI_6_4_PPTT_IMPLEMENTATION_NOT_IDENTICAL 0x0
2644#define EFI_ACPI_6_4_PPTT_IMPLEMENTATION_IDENTICAL 0x1
2645
2649typedef struct {
2650 UINT32 PhysicalPackage : 1;
2651 UINT32 AcpiProcessorIdValid : 1;
2652 UINT32 ProcessorIsAThread : 1;
2653 UINT32 NodeIsALeaf : 1;
2654 UINT32 IdenticalImplementation : 1;
2655 UINT32 Reserved : 27;
2657
2661typedef struct {
2662 UINT8 Type;
2663 UINT8 Length;
2664 UINT8 Reserved[2];
2666 UINT32 Parent;
2667 UINT32 AcpiProcessorId;
2668 UINT32 NumberOfPrivateResources;
2670
2674#define EFI_ACPI_6_4_PPTT_CACHE_SIZE_INVALID 0x0
2675#define EFI_ACPI_6_4_PPTT_CACHE_SIZE_VALID 0x1
2676#define EFI_ACPI_6_4_PPTT_NUMBER_OF_SETS_INVALID 0x0
2677#define EFI_ACPI_6_4_PPTT_NUMBER_OF_SETS_VALID 0x1
2678#define EFI_ACPI_6_4_PPTT_ASSOCIATIVITY_INVALID 0x0
2679#define EFI_ACPI_6_4_PPTT_ASSOCIATIVITY_VALID 0x1
2680#define EFI_ACPI_6_4_PPTT_ALLOCATION_TYPE_INVALID 0x0
2681#define EFI_ACPI_6_4_PPTT_ALLOCATION_TYPE_VALID 0x1
2682#define EFI_ACPI_6_4_PPTT_CACHE_TYPE_INVALID 0x0
2683#define EFI_ACPI_6_4_PPTT_CACHE_TYPE_VALID 0x1
2684#define EFI_ACPI_6_4_PPTT_WRITE_POLICY_INVALID 0x0
2685#define EFI_ACPI_6_4_PPTT_WRITE_POLICY_VALID 0x1
2686#define EFI_ACPI_6_4_PPTT_LINE_SIZE_INVALID 0x0
2687#define EFI_ACPI_6_4_PPTT_LINE_SIZE_VALID 0x1
2688#define EFI_ACPI_6_4_PPTT_CACHE_ID_INVALID 0x0
2689#define EFI_ACPI_6_4_PPTT_CACHE_ID_VALID 0x1
2690
2694typedef struct {
2695 UINT32 SizePropertyValid : 1;
2696 UINT32 NumberOfSetsValid : 1;
2697 UINT32 AssociativityValid : 1;
2698 UINT32 AllocationTypeValid : 1;
2699 UINT32 CacheTypeValid : 1;
2700 UINT32 WritePolicyValid : 1;
2701 UINT32 LineSizeValid : 1;
2702 UINT32 CacheIdValid : 1;
2703 UINT32 Reserved : 24;
2705
2709#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_ALLOCATION_READ 0x0
2710#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_ALLOCATION_WRITE 0x1
2711#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_ALLOCATION_READ_WRITE 0x2
2712#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_CACHE_TYPE_DATA 0x0
2713#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_CACHE_TYPE_INSTRUCTION 0x1
2714#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_CACHE_TYPE_UNIFIED 0x2
2715#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK 0x0
2716#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_THROUGH 0x1
2717
2721typedef struct {
2722 UINT8 AllocationType : 2;
2723 UINT8 CacheType : 2;
2724 UINT8 WritePolicy : 1;
2725 UINT8 Reserved : 3;
2727
2731typedef struct {
2732 UINT8 Type;
2733 UINT8 Length;
2734 UINT8 Reserved[2];
2736 UINT32 NextLevelOfCache;
2737 UINT32 Size;
2738 UINT32 NumberOfSets;
2739 UINT8 Associativity;
2741 UINT16 LineSize;
2742 UINT32 CacheId;
2744
2748typedef struct {
2750 // UINT8 PlatformTelemetryRecords[];
2752
2753#define EFI_ACPI_6_4_PLATFORM_HEALTH_ASSESSMENT_TABLE_REVISION 0x01
2754
2758typedef struct {
2759 UINT16 PlatformHealthAssessmentRecordType;
2760 UINT16 RecordLength;
2761 UINT8 Revision;
2762 // UINT8 Data[];
2764
2768#define EFI_ACPI_6_4_PHAT_RECORD_TYPE_FIRMWARE_VERSION_DATA_RECORD 0x0000
2769#define EFI_ACPI_6_4_PHAT_RECORD_TYPE_FIRMWARE_HEALTH_DATA_RECORD 0x0001
2770
2774typedef struct {
2775 GUID ComponentId;
2776 UINT64 VersionValue;
2777 UINT32 ProducerId;
2779
2783typedef struct {
2784 UINT16 PlatformRecordType;
2785 UINT16 RecordLength;
2786 UINT8 Revision;
2787 UINT8 Reserved[3];
2788 UINT32 RecordCount;
2789 // UINT8 PhatVersionElement[];
2791
2792#define EFI_ACPI_6_4_PHAT_FIRMWARE_VERSION_DATA_RECORD_REVISION 0x01
2793
2797typedef struct {
2798 UINT16 PlatformRecordType;
2799 UINT16 RecordLength;
2800 UINT8 Revision;
2801 UINT16 Reserved;
2802 UINT8 AmHealthy;
2803 GUID DeviceSignature;
2804 UINT32 DeviceSpecificDataOffset;
2805 // UINT8 DevicePath[];
2806 // UINT8 DeviceSpecificData[];
2808
2809#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_REVISION 0x01
2810
2814#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_ERRORS_FOUND 0x00
2815#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_NO_ERRORS_FOUND 0x01
2816#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_UNKNOWN 0x02
2817#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_ADVISORY 0x03
2818
2819//
2820// Known table signatures
2821//
2822
2826#define EFI_ACPI_6_4_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
2827
2831#define EFI_ACPI_6_4_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
2832
2836#define EFI_ACPI_6_4_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T')
2837
2841#define EFI_ACPI_6_4_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('B', 'G', 'R', 'T')
2842
2846#define EFI_ACPI_6_4_COMPONENT_DISTANCE_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('C', 'D', 'I', 'T')
2847
2851#define EFI_ACPI_6_4_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')
2852
2856#define EFI_ACPI_6_4_COMPONENT_RESOURCE_ATTRIBUTE_TABLE_SIGNATURE SIGNATURE_32('C', 'R', 'A', 'T')
2857
2861#define EFI_ACPI_6_4_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
2862
2866#define EFI_ACPI_6_4_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
2867
2871#define EFI_ACPI_6_4_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J')
2872
2876#define EFI_ACPI_6_4_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T')
2877
2881#define EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
2882
2886#define EFI_ACPI_6_4_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
2887
2891#define EFI_ACPI_6_4_FIRMWARE_PERFORMANCE_DATA_TABLE_SIGNATURE SIGNATURE_32('F', 'P', 'D', 'T')
2892
2896#define EFI_ACPI_6_4_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('G', 'T', 'D', 'T')
2897
2901#define EFI_ACPI_6_4_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T')
2902
2906#define EFI_ACPI_6_4_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE SIGNATURE_32('H', 'M', 'A', 'T')
2907
2911#define EFI_ACPI_6_4_MEMORY_POWER_STATE_TABLE_SIGNATURE SIGNATURE_32('M', 'P', 'S', 'T')
2912
2916#define EFI_ACPI_6_4_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T')
2917
2921#define EFI_ACPI_6_4_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('N', 'F', 'I', 'T')
2922
2926#define EFI_ACPI_6_4_PLATFORM_DEBUG_TRIGGER_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('P', 'D', 'T', 'T')
2927
2931#define EFI_ACPI_6_4_PLATFORM_MEMORY_TOPOLOGY_TABLE_SIGNATURE SIGNATURE_32('P', 'M', 'T', 'T')
2932
2936#define EFI_ACPI_6_4_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('P', 'P', 'T', 'T')
2937
2941#define EFI_ACPI_6_4_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
2942
2946#define EFI_ACPI_6_4_ACPI_RAS_FEATURE_TABLE_SIGNATURE SIGNATURE_32('R', 'A', 'S', 'F')
2947
2951#define EFI_ACPI_6_4_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
2952
2956#define EFI_ACPI_6_4_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
2957
2961#define EFI_ACPI_6_4_SECURE_DEVICES_TABLE_SIGNATURE SIGNATURE_32('S', 'D', 'E', 'V')
2962
2966#define EFI_ACPI_6_4_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
2967
2971#define EFI_ACPI_6_4_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
2972
2976#define EFI_ACPI_6_4_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
2977
2981#define EFI_ACPI_6_4_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
2982
2986#define EFI_ACPI_6_4_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
2987
2991#define EFI_ACPI_6_4_CORE_SYSTEM_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('C', 'S', 'R', 'T')
2992
2996#define EFI_ACPI_6_4_DEBUG_PORT_2_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', '2')
2997
3001#define EFI_ACPI_6_4_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
3002
3006#define EFI_ACPI_6_4_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R')
3007
3011#define EFI_ACPI_6_4_DYNAMIC_ROOT_OF_TRUST_FOR_MEASUREMENT_TABLE_SIGNATURE SIGNATURE_32('D', 'R', 'T', 'M')
3012
3016#define EFI_ACPI_6_4_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
3017
3021#define EFI_ACPI_6_4_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')
3022
3026#define EFI_ACPI_6_4_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')
3027
3031#define EFI_ACPI_6_4_IO_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('I', 'O', 'R', 'T')
3032
3036#define EFI_ACPI_6_4_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S')
3037
3041#define EFI_ACPI_6_4_LOW_POWER_IDLE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('L', 'P', 'I', 'T')
3042
3046#define EFI_ACPI_6_4_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
3047
3051#define EFI_ACPI_6_4_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I')
3052
3056#define EFI_ACPI_6_4_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M')
3057
3061#define EFI_ACPI_6_4_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE SIGNATURE_32('P', 'C', 'C', 'T')
3062
3066#define EFI_ACPI_6_4_PLATFORM_HEALTH_ASSESSMENT_TABLE_SIGNATURE SIGNATURE_32('P', 'H', 'A', 'T')
3067
3071#define EFI_ACPI_6_4_SOFTWARE_DELEGATED_EXCEPTIONS_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'D', 'E', 'I')
3072
3076#define EFI_ACPI_6_4_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C')
3077
3081#define EFI_ACPI_6_4_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
3082
3086#define EFI_ACPI_6_4_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
3087
3091#define EFI_ACPI_6_4_STA_OVERRIDE_TABLE_SIGNATURE SIGNATURE_32('S', 'T', 'A', 'O')
3092
3096#define EFI_ACPI_6_4_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')
3097
3101#define EFI_ACPI_6_4_TRUSTED_COMPUTING_PLATFORM_2_TABLE_SIGNATURE SIGNATURE_32('T', 'P', 'M', '2')
3102
3106#define EFI_ACPI_6_4_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I')
3107
3111#define EFI_ACPI_6_4_WINDOWS_ACPI_EMULATED_DEVICES_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T')
3112
3116#define EFI_ACPI_6_4_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')
3117
3121#define EFI_ACPI_6_4_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')
3122
3126#define EFI_ACPI_6_4_PLATFORM_BINARY_TABLE_SIGNATURE SIGNATURE_32('W', 'P', 'B', 'T')
3127
3131#define EFI_ACPI_6_4_WINDOWS_SMM_SECURITY_MITIGATION_TABLE_SIGNATURE SIGNATURE_32('W', 'S', 'M', 'T')
3132
3136#define EFI_ACPI_6_4_XEN_PROJECT_TABLE_SIGNATURE SIGNATURE_32('X', 'E', 'N', 'V')
3137
3138#pragma pack()
3139
3140#endif
EFI_ACPI_6_4_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER EFI_ACPI_6_4_PDTT_PCC
Definition: Acpi64.h:2603
EFI_ACPI_6_4_PCCT_SUBSPACE_3_EXTENDED_PCC EFI_ACPI_6_4_PCCT_SUBSPACE_4_EXTENDED_PCC
Definition: Acpi64.h:2529
STATIC EFI_STATUS WaitForCompletion(IN HTTP_DOWNLOAD_CONTEXT *Context, IN OUT BOOLEAN *CallBackComplete)
Definition: Http.c:989
Definition: Base.h:213