TianoCore EDK2 master
Loading...
Searching...
No Matches
Acpi64.h
Go to the documentation of this file.
1
10#ifndef ACPI_6_4_H_
11#define ACPI_6_4_H_
12
14
18#define EFI_ACPI_6_4_AML_PSD_REVISION 0
19
23#define EFI_ACPI_6_4_AML_CPC_REVISION 3
24
25//
26// Ensure proper structure formats
27//
28#pragma pack(1)
29
33typedef struct {
34 UINT8 AddressSpaceId;
35 UINT8 RegisterBitWidth;
36 UINT8 RegisterBitOffset;
37 UINT8 AccessSize;
38 UINT64 Address;
40
41//
42// Generic Address Space Address IDs
43//
44#define EFI_ACPI_6_4_SYSTEM_MEMORY 0x00
45#define EFI_ACPI_6_4_SYSTEM_IO 0x01
46#define EFI_ACPI_6_4_PCI_CONFIGURATION_SPACE 0x02
47#define EFI_ACPI_6_4_EMBEDDED_CONTROLLER 0x03
48#define EFI_ACPI_6_4_SMBUS 0x04
49#define EFI_ACPI_6_4_SYSTEM_CMOS 0x05
50#define EFI_ACPI_6_4_PCI_BAR_TARGET 0x06
51#define EFI_ACPI_6_4_IPMI 0x07
52#define EFI_ACPI_6_4_GENERAL_PURPOSE_IO 0x08
53#define EFI_ACPI_6_4_GENERIC_SERIAL_BUS 0x09
54#define EFI_ACPI_6_4_PLATFORM_COMMUNICATION_CHANNEL 0x0A
55#define EFI_ACPI_6_4_FUNCTIONAL_FIXED_HARDWARE 0x7F
56
57//
58// Generic Address Space Access Sizes
59//
60#define EFI_ACPI_6_4_UNDEFINED 0
61#define EFI_ACPI_6_4_BYTE 1
62#define EFI_ACPI_6_4_WORD 2
63#define EFI_ACPI_6_4_DWORD 3
64#define EFI_ACPI_6_4_QWORD 4
65
66//
67// ACPI 6.4 table structures
68//
69
73typedef struct {
74 UINT64 Signature;
75 UINT8 Checksum;
76 UINT8 OemId[6];
77 UINT8 Revision;
78 UINT32 RsdtAddress;
79 UINT32 Length;
80 UINT64 XsdtAddress;
81 UINT8 ExtendedChecksum;
82 UINT8 Reserved[3];
84
88#define EFI_ACPI_6_4_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02
89
94typedef struct {
95 UINT32 Signature;
96 UINT32 Length;
98
99//
100// Root System Description Table
101// No definition needed as it is a common description table header, the same with
102// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT32 table pointers.
103//
104
108#define EFI_ACPI_6_4_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
109
110//
111// Extended System Description Table
112// No definition needed as it is a common description table header, the same with
113// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
114//
115
119#define EFI_ACPI_6_4_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
120
124typedef struct {
126 UINT32 FirmwareCtrl;
127 UINT32 Dsdt;
128 UINT8 Reserved0;
129 UINT8 PreferredPmProfile;
130 UINT16 SciInt;
131 UINT32 SmiCmd;
132 UINT8 AcpiEnable;
133 UINT8 AcpiDisable;
134 UINT8 S4BiosReq;
135 UINT8 PstateCnt;
136 UINT32 Pm1aEvtBlk;
137 UINT32 Pm1bEvtBlk;
138 UINT32 Pm1aCntBlk;
139 UINT32 Pm1bCntBlk;
140 UINT32 Pm2CntBlk;
141 UINT32 PmTmrBlk;
142 UINT32 Gpe0Blk;
143 UINT32 Gpe1Blk;
144 UINT8 Pm1EvtLen;
145 UINT8 Pm1CntLen;
146 UINT8 Pm2CntLen;
147 UINT8 PmTmrLen;
148 UINT8 Gpe0BlkLen;
149 UINT8 Gpe1BlkLen;
150 UINT8 Gpe1Base;
151 UINT8 CstCnt;
152 UINT16 PLvl2Lat;
153 UINT16 PLvl3Lat;
154 UINT16 FlushSize;
155 UINT16 FlushStride;
156 UINT8 DutyOffset;
157 UINT8 DutyWidth;
158 UINT8 DayAlrm;
159 UINT8 MonAlrm;
160 UINT8 Century;
161 UINT16 IaPcBootArch;
162 UINT8 Reserved1;
163 UINT32 Flags;
165 UINT8 ResetValue;
166 UINT16 ArmBootArch;
167 UINT8 MinorVersion;
168 UINT64 XFirmwareCtrl;
169 UINT64 XDsdt;
180 UINT64 HypervisorVendorIdentity;
182
186#define EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x06
187#define EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION 0x04
188
189//
190// Fixed ACPI Description Table Preferred Power Management Profile
191//
192#define EFI_ACPI_6_4_PM_PROFILE_UNSPECIFIED 0
193#define EFI_ACPI_6_4_PM_PROFILE_DESKTOP 1
194#define EFI_ACPI_6_4_PM_PROFILE_MOBILE 2
195#define EFI_ACPI_6_4_PM_PROFILE_WORKSTATION 3
196#define EFI_ACPI_6_4_PM_PROFILE_ENTERPRISE_SERVER 4
197#define EFI_ACPI_6_4_PM_PROFILE_SOHO_SERVER 5
198#define EFI_ACPI_6_4_PM_PROFILE_APPLIANCE_PC 6
199#define EFI_ACPI_6_4_PM_PROFILE_PERFORMANCE_SERVER 7
200#define EFI_ACPI_6_4_PM_PROFILE_TABLET 8
201
202//
203// Fixed ACPI Description Table Boot Architecture Flags
204// All other bits are reserved and must be set to 0.
205//
206#define EFI_ACPI_6_4_LEGACY_DEVICES BIT0
207#define EFI_ACPI_6_4_8042 BIT1
208#define EFI_ACPI_6_4_VGA_NOT_PRESENT BIT2
209#define EFI_ACPI_6_4_MSI_NOT_SUPPORTED BIT3
210#define EFI_ACPI_6_4_PCIE_ASPM_CONTROLS BIT4
211#define EFI_ACPI_6_4_CMOS_RTC_NOT_PRESENT BIT5
212
213//
214// Fixed ACPI Description Table Arm Boot Architecture Flags
215// All other bits are reserved and must be set to 0.
216//
217#define EFI_ACPI_6_4_ARM_PSCI_COMPLIANT BIT0
218#define EFI_ACPI_6_4_ARM_PSCI_USE_HVC BIT1
219
220//
221// Fixed ACPI Description Table Fixed Feature Flags
222// All other bits are reserved and must be set to 0.
223//
224#define EFI_ACPI_6_4_WBINVD BIT0
225#define EFI_ACPI_6_4_WBINVD_FLUSH BIT1
226#define EFI_ACPI_6_4_PROC_C1 BIT2
227#define EFI_ACPI_6_4_P_LVL2_UP BIT3
228#define EFI_ACPI_6_4_PWR_BUTTON BIT4
229#define EFI_ACPI_6_4_SLP_BUTTON BIT5
230#define EFI_ACPI_6_4_FIX_RTC BIT6
231#define EFI_ACPI_6_4_RTC_S4 BIT7
232#define EFI_ACPI_6_4_TMR_VAL_EXT BIT8
233#define EFI_ACPI_6_4_DCK_CAP BIT9
234#define EFI_ACPI_6_4_RESET_REG_SUP BIT10
235#define EFI_ACPI_6_4_SEALED_CASE BIT11
236#define EFI_ACPI_6_4_HEADLESS BIT12
237#define EFI_ACPI_6_4_CPU_SW_SLP BIT13
238#define EFI_ACPI_6_4_PCI_EXP_WAK BIT14
239#define EFI_ACPI_6_4_USE_PLATFORM_CLOCK BIT15
240#define EFI_ACPI_6_4_S4_RTC_STS_VALID BIT16
241#define EFI_ACPI_6_4_REMOTE_POWER_ON_CAPABLE BIT17
242#define EFI_ACPI_6_4_FORCE_APIC_CLUSTER_MODEL BIT18
243#define EFI_ACPI_6_4_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19
244#define EFI_ACPI_6_4_HW_REDUCED_ACPI BIT20
245#define EFI_ACPI_6_4_LOW_POWER_S0_IDLE_CAPABLE BIT21
246
250typedef struct {
251 UINT32 Signature;
252 UINT32 Length;
253 UINT32 HardwareSignature;
254 UINT32 FirmwareWakingVector;
255 UINT32 GlobalLock;
256 UINT32 Flags;
257 UINT64 XFirmwareWakingVector;
258 UINT8 Version;
259 UINT8 Reserved0[3];
260 UINT32 OspmFlags;
261 UINT8 Reserved1[24];
263
267#define EFI_ACPI_6_4_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02
268
273#define EFI_ACPI_6_4_S4BIOS_F BIT0
274#define EFI_ACPI_6_4_64BIT_WAKE_SUPPORTED_F BIT1
275
280#define EFI_ACPI_6_4_OSPM_64BIT_WAKE_F BIT0
281
282//
283// Differentiated System Description Table,
284// Secondary System Description Table
285// and Persistent System Description Table,
286// no definition needed as they are common description table header, the same with
287// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
288//
289#define EFI_ACPI_6_4_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
290#define EFI_ACPI_6_4_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
291
296typedef struct {
298 UINT32 LocalApicAddress;
299 UINT32 Flags;
301
305#define EFI_ACPI_6_4_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x05
306
311#define EFI_ACPI_6_4_PCAT_COMPAT BIT0
312
313//
314// Multiple APIC Description Table APIC structure types
315// All other values between 0x10 and 0x7F are reserved and
316// will be ignored by OSPM. 0x80 ~ 0xFF are reserved for OEM.
317//
318#define EFI_ACPI_6_4_PROCESSOR_LOCAL_APIC 0x00
319#define EFI_ACPI_6_4_IO_APIC 0x01
320#define EFI_ACPI_6_4_INTERRUPT_SOURCE_OVERRIDE 0x02
321#define EFI_ACPI_6_4_NON_MASKABLE_INTERRUPT_SOURCE 0x03
322#define EFI_ACPI_6_4_LOCAL_APIC_NMI 0x04
323#define EFI_ACPI_6_4_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
324#define EFI_ACPI_6_4_IO_SAPIC 0x06
325#define EFI_ACPI_6_4_LOCAL_SAPIC 0x07
326#define EFI_ACPI_6_4_PLATFORM_INTERRUPT_SOURCES 0x08
327#define EFI_ACPI_6_4_PROCESSOR_LOCAL_X2APIC 0x09
328#define EFI_ACPI_6_4_LOCAL_X2APIC_NMI 0x0A
329#define EFI_ACPI_6_4_GIC 0x0B
330#define EFI_ACPI_6_4_GICD 0x0C
331#define EFI_ACPI_6_4_GIC_MSI_FRAME 0x0D
332#define EFI_ACPI_6_4_GICR 0x0E
333#define EFI_ACPI_6_4_GIC_ITS 0x0F
334#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP 0x10
335
336//
337// APIC Structure Definitions
338//
339
343typedef struct {
344 UINT8 Type;
345 UINT8 Length;
346 UINT8 AcpiProcessorUid;
347 UINT8 ApicId;
348 UINT32 Flags;
350
354#define EFI_ACPI_6_4_LOCAL_APIC_ENABLED BIT0
355#define EFI_ACPI_6_4_LOCAL_APIC_ONLINE_CAPABLE BIT1
356
360typedef struct {
361 UINT8 Type;
362 UINT8 Length;
363 UINT8 IoApicId;
364 UINT8 Reserved;
365 UINT32 IoApicAddress;
366 UINT32 GlobalSystemInterruptBase;
368
372typedef struct {
373 UINT8 Type;
374 UINT8 Length;
375 UINT8 Bus;
376 UINT8 Source;
377 UINT32 GlobalSystemInterrupt;
378 UINT16 Flags;
380
384typedef struct {
385 UINT8 Type;
386 UINT8 Length;
387 UINT16 Flags;
388 UINT8 InterruptType;
389 UINT8 ProcessorId;
390 UINT8 ProcessorEid;
391 UINT8 IoSapicVector;
392 UINT32 GlobalSystemInterrupt;
393 UINT32 PlatformInterruptSourceFlags;
394 UINT8 CpeiProcessorOverride;
395 UINT8 Reserved[31];
397
398//
399// MPS INTI flags.
400// All other bits are reserved and must be set to 0.
401//
402#define EFI_ACPI_6_4_POLARITY (3 << 0)
403#define EFI_ACPI_6_4_TRIGGER_MODE (3 << 2)
404
408typedef struct {
409 UINT8 Type;
410 UINT8 Length;
411 UINT16 Flags;
412 UINT32 GlobalSystemInterrupt;
414
418typedef struct {
419 UINT8 Type;
420 UINT8 Length;
421 UINT8 AcpiProcessorUid;
422 UINT16 Flags;
423 UINT8 LocalApicLint;
425
429typedef struct {
430 UINT8 Type;
431 UINT8 Length;
432 UINT16 Reserved;
433 UINT64 LocalApicAddress;
435
439typedef struct {
440 UINT8 Type;
441 UINT8 Length;
442 UINT8 IoApicId;
443 UINT8 Reserved;
444 UINT32 GlobalSystemInterruptBase;
445 UINT64 IoSapicAddress;
447
452typedef struct {
453 UINT8 Type;
454 UINT8 Length;
455 UINT8 AcpiProcessorId;
456 UINT8 LocalSapicId;
457 UINT8 LocalSapicEid;
458 UINT8 Reserved[3];
459 UINT32 Flags;
460 UINT32 ACPIProcessorUIDValue;
462
466typedef struct {
467 UINT8 Type;
468 UINT8 Length;
469 UINT16 Flags;
470 UINT8 InterruptType;
471 UINT8 ProcessorId;
472 UINT8 ProcessorEid;
473 UINT8 IoSapicVector;
474 UINT32 GlobalSystemInterrupt;
475 UINT32 PlatformInterruptSourceFlags;
477
482#define EFI_ACPI_6_4_CPEI_PROCESSOR_OVERRIDE BIT0
483
487typedef struct {
488 UINT8 Type;
489 UINT8 Length;
490 UINT8 Reserved[2];
491 UINT32 X2ApicId;
492 UINT32 Flags;
493 UINT32 AcpiProcessorUid;
495
499typedef struct {
500 UINT8 Type;
501 UINT8 Length;
502 UINT16 Flags;
503 UINT32 AcpiProcessorUid;
504 UINT8 LocalX2ApicLint;
505 UINT8 Reserved[3];
507
511typedef struct {
512 UINT8 Type;
513 UINT8 Length;
514 UINT16 Reserved;
515 UINT32 CPUInterfaceNumber;
516 UINT32 AcpiProcessorUid;
517 UINT32 Flags;
518 UINT32 ParkingProtocolVersion;
519 UINT32 PerformanceInterruptGsiv;
520 UINT64 ParkedAddress;
521 UINT64 PhysicalBaseAddress;
522 UINT64 GICV;
523 UINT64 GICH;
524 UINT32 VGICMaintenanceInterrupt;
525 UINT64 GICRBaseAddress;
526 UINT64 MPIDR;
527 UINT8 ProcessorPowerEfficiencyClass;
528 UINT8 Reserved2;
529 UINT16 SpeOverflowInterrupt;
531
535#define EFI_ACPI_6_4_GIC_ENABLED BIT0
536#define EFI_ACPI_6_4_PERFORMANCE_INTERRUPT_MODEL BIT1
537#define EFI_ACPI_6_4_VGIC_MAINTENANCE_INTERRUPT_MODE_FLAGS BIT2
538
542typedef struct {
543 UINT8 Type;
544 UINT8 Length;
545 UINT16 Reserved1;
546 UINT32 GicId;
547 UINT64 PhysicalBaseAddress;
548 UINT32 SystemVectorBase;
549 UINT8 GicVersion;
550 UINT8 Reserved2[3];
552
556#define EFI_ACPI_6_4_GIC_V1 0x01
557#define EFI_ACPI_6_4_GIC_V2 0x02
558#define EFI_ACPI_6_4_GIC_V3 0x03
559#define EFI_ACPI_6_4_GIC_V4 0x04
560
564typedef struct {
565 UINT8 Type;
566 UINT8 Length;
567 UINT16 Reserved1;
568 UINT32 GicMsiFrameId;
569 UINT64 PhysicalBaseAddress;
570 UINT32 Flags;
571 UINT16 SPICount;
572 UINT16 SPIBase;
574
578#define EFI_ACPI_6_4_SPI_COUNT_BASE_SELECT BIT0
579
583typedef struct {
584 UINT8 Type;
585 UINT8 Length;
586 UINT16 Reserved;
587 UINT64 DiscoveryRangeBaseAddress;
588 UINT32 DiscoveryRangeLength;
590
594typedef struct {
595 UINT8 Type;
596 UINT8 Length;
597 UINT16 Reserved;
598 UINT32 GicItsId;
599 UINT64 PhysicalBaseAddress;
600 UINT32 Reserved2;
602
606typedef struct {
607 UINT8 Type;
608 UINT8 Length;
609 UINT16 MailBoxVersion;
610 UINT32 Reserved;
611 UINT64 MailBoxAddress;
613
617typedef struct {
618 UINT16 Command;
619 UINT16 Reserved;
620 UINT32 AcpiId;
621 UINT64 WakeupVector;
622 UINT8 ReservedForOs[2032];
623 UINT8 ReservedForFirmware[2048];
625
626#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP_MAILBOX_COMMAND_NOOP 0x0000
627#define EFI_ACPI_6_4_MULTIPROCESSOR_WAKEUP_MAILBOX_COMMAND_WAKEUP 0x0001
628
632typedef struct {
634 UINT32 WarningEnergyLevel;
635 UINT32 LowEnergyLevel;
636 UINT32 CriticalEnergyLevel;
638
642#define EFI_ACPI_6_4_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
643
649typedef struct {
653 UINT32 Uid;
654 UINT8 GpeBit;
656
660#define EFI_ACPI_6_4_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
661
666typedef struct {
668 UINT32 Reserved1;
669 UINT64 Reserved2;
671
675#define EFI_ACPI_6_4_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03
676
677//
678// SRAT structure types.
679// All other values between 0x06 an 0xFF are reserved and
680// will be ignored by OSPM.
681//
682#define EFI_ACPI_6_4_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00
683#define EFI_ACPI_6_4_MEMORY_AFFINITY 0x01
684#define EFI_ACPI_6_4_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02
685#define EFI_ACPI_6_4_GICC_AFFINITY 0x03
686#define EFI_ACPI_6_4_GIC_ITS_AFFINITY 0x04
687#define EFI_ACPI_6_4_GENERIC_INITIATOR_AFFINITY 0x05
688
692typedef struct {
693 UINT8 Type;
694 UINT8 Length;
695 UINT8 ProximityDomain7To0;
696 UINT8 ApicId;
697 UINT32 Flags;
698 UINT8 LocalSapicEid;
699 UINT8 ProximityDomain31To8[3];
700 UINT32 ClockDomain;
702
706#define EFI_ACPI_6_4_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
707
711typedef struct {
712 UINT8 Type;
713 UINT8 Length;
714 UINT32 ProximityDomain;
715 UINT16 Reserved1;
716 UINT32 AddressBaseLow;
717 UINT32 AddressBaseHigh;
718 UINT32 LengthLow;
719 UINT32 LengthHigh;
720 UINT32 Reserved2;
721 UINT32 Flags;
722 UINT64 Reserved3;
724
725//
726// Memory Flags. All other bits are reserved and must be 0.
727//
728#define EFI_ACPI_6_4_MEMORY_ENABLED (1 << 0)
729#define EFI_ACPI_6_4_MEMORY_HOT_PLUGGABLE (1 << 1)
730#define EFI_ACPI_6_4_MEMORY_NONVOLATILE (1 << 2)
731
735typedef struct {
736 UINT8 Type;
737 UINT8 Length;
738 UINT8 Reserved1[2];
739 UINT32 ProximityDomain;
740 UINT32 X2ApicId;
741 UINT32 Flags;
742 UINT32 ClockDomain;
743 UINT8 Reserved2[4];
745
749typedef struct {
750 UINT8 Type;
751 UINT8 Length;
752 UINT32 ProximityDomain;
753 UINT32 AcpiProcessorUid;
754 UINT32 Flags;
755 UINT32 ClockDomain;
757
761#define EFI_ACPI_6_4_GICC_ENABLED (1 << 0)
762
766typedef struct {
767 UINT8 Type;
768 UINT8 Length;
769 UINT32 ProximityDomain;
770 UINT8 Reserved[2];
771 UINT32 ItsId;
773
774//
775// Generic Initiator Affinity Structure Device Handle Types
776// All other values between 0x02 an 0xFF are reserved and
777// will be ignored by OSPM.
778//
779#define EFI_ACPI_6_4_ACPI_DEVICE_HANDLE 0x00
780#define EFI_ACPI_6_4_PCI_DEVICE_HANDLE 0x01
781
785typedef struct {
786 UINT64 AcpiHid;
787 UINT32 AcpiUid;
788 UINT8 Reserved[4];
790
794typedef struct {
795 UINT16 PciSegment;
796 UINT16 PciBdfNumber;
797 UINT8 Reserved[12];
799
803typedef union {
807
811typedef struct {
812 UINT8 Type;
813 UINT8 Length;
814 UINT8 Reserved1;
815 UINT8 DeviceHandleType;
816 UINT32 ProximityDomain;
817 EFI_ACPI_6_4_DEVICE_HANDLE DeviceHandle;
818 UINT32 Flags;
819 UINT8 Reserved2[4];
821
826#define EFI_ACPI_6_4_GENERIC_INITIATOR_AFFINITY_STRUCTURE_ENABLED BIT0
827#define EFI_ACPI_6_4_GENERIC_INITIATOR_AFFINITY_STRUCTURE_ARCHITECTURAL_TRANSACTIONS BIT1
828
833typedef struct {
835 UINT64 NumberOfSystemLocalities;
837
841#define EFI_ACPI_6_4_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01
842
846typedef struct {
848 UINT8 Reserved[8];
850
854#define EFI_ACPI_6_4_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01
855
856//
857// CPEP processor structure types.
858//
859#define EFI_ACPI_6_4_CPEP_PROCESSOR_APIC_SAPIC 0x00
860
864typedef struct {
865 UINT8 Type;
866 UINT8 Length;
867 UINT8 ProcessorId;
868 UINT8 ProcessorEid;
869 UINT32 PollingInterval;
871
875typedef struct {
877 UINT32 OffsetProxDomInfo;
878 UINT32 MaximumNumberOfProximityDomains;
879 UINT32 MaximumNumberOfClockDomains;
880 UINT64 MaximumPhysicalAddress;
882
886#define EFI_ACPI_6_4_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01
887
891typedef struct {
892 UINT8 Revision;
893 UINT8 Length;
894 UINT32 ProximityDomainRangeLow;
895 UINT32 ProximityDomainRangeHigh;
896 UINT32 MaximumProcessorCapacity;
897 UINT64 MaximumMemoryCapacity;
899
903typedef struct {
905 UINT8 PlatformCommunicationChannelIdentifier[12];
907
911#define EFI_ACPI_6_4_RAS_FEATURE_TABLE_REVISION 0x01
912
916typedef struct {
917 UINT32 Signature;
918 UINT16 Command;
919 UINT16 Status;
920 UINT16 Version;
921 UINT8 RASCapabilities[16];
922 UINT8 SetRASCapabilities[16];
923 UINT16 NumberOfRASFParameterBlocks;
924 UINT32 SetRASCapabilitiesStatus;
926
930#define EFI_ACPI_6_4_RASF_PCC_COMMAND_CODE_EXECUTE_RASF_COMMAND 0x01
931
935#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPORTED BIT0
936#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_HARDWARE_BASED_PATROL_SCRUB_SUPPORTED_AND_EXPOSED_TO_SOFTWARE BIT1
937#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_CPU_CACHE_FLUSH_TO_NVDIMM_DURABILITY_ON_POWER_LOSS BIT2
938#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_MEMORY_CONTROLLER_FLUSH_TO_NVDIMM_DURABILITY_ON_POWER_LOSS BIT3
939#define EFI_ACPI_6_4_RASF_PLATFORM_RAS_CAPABILITY_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_HARDWARE_MIRRORING BIT4
940
944typedef struct {
945 UINT16 Type;
946 UINT16 Version;
947 UINT16 Length;
948 UINT16 PatrolScrubCommand;
949 UINT64 RequestedAddressRange[2];
950 UINT64 ActualAddressRange[2];
951 UINT16 Flags;
952 UINT8 RequestedSpeed;
954
958#define EFI_ACPI_6_4_RASF_PATROL_SCRUB_COMMAND_GET_PATROL_PARAMETERS 0x01
959#define EFI_ACPI_6_4_RASF_PATROL_SCRUB_COMMAND_START_PATROL_SCRUBBER 0x02
960#define EFI_ACPI_6_4_RASF_PATROL_SCRUB_COMMAND_STOP_PATROL_SCRUBBER 0x03
961
965typedef struct {
967 UINT8 PlatformCommunicationChannelIdentifier;
968 UINT8 Reserved[3];
969 // Memory Power Node Structure
970 // Memory Power State Characteristics
972
976#define EFI_ACPI_6_4_MEMORY_POWER_STATE_TABLE_REVISION 0x01
977
981typedef struct {
982 UINT32 Signature;
983 UINT16 Command;
984 UINT16 Status;
985 UINT32 MemoryPowerCommandRegister;
986 UINT32 MemoryPowerStatusRegister;
987 UINT32 PowerStateId;
988 UINT32 MemoryPowerNodeId;
989 UINT64 MemoryEnergyConsumed;
990 UINT64 ExpectedAveragePowerComsuned;
992
996#define EFI_ACPI_6_4_MPST_PCC_COMMAND_CODE_EXECUTE_MPST_COMMAND 0x03
997
1001#define EFI_ACPI_6_4_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_POWER_STATE 0x01
1002#define EFI_ACPI_6_4_MPST_MEMORY_POWER_COMMAND_SET_MEMORY_POWER_STATE 0x02
1003#define EFI_ACPI_6_4_MPST_MEMORY_POWER_COMMAND_GET_AVERAGE_POWER_CONSUMED 0x03
1004#define EFI_ACPI_6_4_MPST_MEMORY_POWER_COMMAND_GET_MEMORY_ENERGY_CONSUMED 0x04
1005
1009typedef struct {
1010 UINT8 PowerStateValue;
1011 UINT8 PowerStateInformationIndex;
1013
1014typedef struct {
1015 UINT8 Flag;
1016 UINT8 Reserved;
1017 UINT16 MemoryPowerNodeId;
1018 UINT32 Length;
1019 UINT64 AddressBase;
1020 UINT64 AddressLength;
1021 UINT32 NumberOfPowerStates;
1022 UINT32 NumberOfPhysicalComponents;
1023 // EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE MemoryPowerState[NumberOfPowerStates];
1024 // UINT16 PhysicalComponentIdentifier[NumberOfPhysicalComponents];
1026
1027#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STRUCTURE_FLAG_ENABLE 0x01
1028#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STRUCTURE_FLAG_POWER_MANAGED 0x02
1029#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STRUCTURE_FLAG_HOT_PLUGGABLE 0x04
1030
1031typedef struct {
1032 UINT16 MemoryPowerNodeCount;
1033 UINT8 Reserved[2];
1035
1039typedef struct {
1040 UINT8 PowerStateStructureID;
1041 UINT8 Flag;
1042 UINT16 Reserved;
1043 UINT32 AveragePowerConsumedInMPS0;
1044 UINT32 RelativePowerSavingToMPS0;
1045 UINT64 ExitLatencyToMPS0;
1047
1048#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_MEMORY_CONTENT_PRESERVED 0x01
1049#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_ENTRY 0x02
1050#define EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_STRUCTURE_FLAG_AUTONOMOUS_MEMORY_POWER_STATE_EXIT 0x04
1051
1052typedef struct {
1053 UINT16 MemoryPowerStateCharacteristicsCount;
1054 UINT8 Reserved[2];
1056
1060typedef struct {
1062 UINT32 NumberOfMemoryDevices;
1063 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[NumberOfMemoryDevices];
1065
1069#define EFI_ACPI_6_4_MEMORY_TOPOLOGY_TABLE_REVISION 0x02
1070
1074typedef struct {
1075 UINT8 Type;
1076 UINT8 Reserved;
1077 UINT16 Length;
1078 UINT16 Flags;
1079 UINT16 Reserved1;
1080 UINT32 NumberOfMemoryDevices;
1081 // UINT8 TypeSpecificData[];
1082 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[NumberOfMemoryDevices];
1084
1088#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_SOCKET 0x0
1089#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_MEMORY_CONTROLLER 0x1
1090#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_DIMM 0x2
1091#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_VENDOR_SPECIFIC_TYPE 0xFF
1092
1096typedef struct {
1097 EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE CommonMemoryDeviceHeader;
1098 UINT16 SocketIdentifier;
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 UINT16 MemoryControllerIdentifier;
1109 UINT16 Reserved;
1110 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[];
1112
1116typedef struct {
1117 EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE CommonMemoryDeviceHeader;
1118 UINT32 SmbiosHandle;
1120
1124typedef struct {
1125 EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE CommonMemoryDeviceHeader;
1126 UINT8 TypeUuid[16];
1127 // EFI_ACPI_6_4_PMTT_VENDOR_SPECIFIC_TYPE_DATA VendorSpecificData[];
1128 // EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE MemoryDeviceStructure[];
1130
1134typedef struct {
1139 UINT16 Version;
1152 UINT8 Status;
1177
1181#define EFI_ACPI_6_4_BOOT_GRAPHICS_RESOURCE_TABLE_REVISION 1
1182
1186#define EFI_ACPI_6_4_BGRT_VERSION 0x01
1187
1191#define EFI_ACPI_6_4_BGRT_STATUS_NOT_DISPLAYED 0x00
1192#define EFI_ACPI_6_4_BGRT_STATUS_DISPLAYED 0x01
1193
1197#define EFI_ACPI_6_4_BGRT_IMAGE_TYPE_BMP 0x00
1198
1202#define EFI_ACPI_6_4_FIRMWARE_PERFORMANCE_DATA_TABLE_REVISION 0x01
1203
1207#define EFI_ACPI_6_4_FPDT_RECORD_TYPE_FIRMWARE_BASIC_BOOT_POINTER 0x0000
1208#define EFI_ACPI_6_4_FPDT_RECORD_TYPE_S3_PERFORMANCE_TABLE_POINTER 0x0001
1209
1213#define EFI_ACPI_6_4_FPDT_RECORD_REVISION_FIRMWARE_BASIC_BOOT_POINTER 0x01
1214#define EFI_ACPI_6_4_FPDT_RECORD_REVISION_S3_PERFORMANCE_TABLE_POINTER 0x01
1215
1219#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_TYPE_S3_RESUME 0x0000
1220#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_TYPE_S3_SUSPEND 0x0001
1221#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_TYPE_FIRMWARE_BASIC_BOOT 0x0002
1222
1226#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_REVISION_S3_RESUME 0x01
1227#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_REVISION_S3_SUSPEND 0x01
1228#define EFI_ACPI_6_4_FPDT_RUNTIME_RECORD_REVISION_FIRMWARE_BASIC_BOOT 0x02
1229
1233typedef struct {
1234 UINT16 Type;
1235 UINT8 Length;
1236 UINT8 Revision;
1238
1242typedef struct {
1243 UINT32 Signature;
1244 UINT32 Length;
1246
1250typedef struct {
1252 UINT32 Reserved;
1258
1262typedef struct {
1264 UINT32 Reserved;
1270
1274typedef struct {
1276 UINT32 Reserved;
1281 UINT64 ResetEnd;
1306
1310#define EFI_ACPI_6_4_FPDT_BOOT_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('F', 'B', 'P', 'T')
1311
1312//
1313// FPDT Firmware Basic Boot Performance Table
1314//
1315typedef struct {
1317 //
1318 // one or more Performance Records.
1319 //
1321
1325#define EFI_ACPI_6_4_FPDT_S3_PERFORMANCE_TABLE_SIGNATURE SIGNATURE_32('S', '3', 'P', 'T')
1326
1327//
1328// FPDT Firmware S3 Boot Performance Table
1329//
1330typedef struct {
1332 //
1333 // one or more Performance Records.
1334 //
1336
1340typedef struct {
1358
1362typedef struct {
1376
1380typedef struct {
1383
1387typedef struct {
1389 UINT64 CntControlBasePhysicalAddress;
1390 UINT32 Reserved;
1391 UINT32 SecurePL1TimerGSIV;
1392 UINT32 SecurePL1TimerFlags;
1393 UINT32 NonSecurePL1TimerGSIV;
1394 UINT32 NonSecurePL1TimerFlags;
1395 UINT32 VirtualTimerGSIV;
1396 UINT32 VirtualTimerFlags;
1397 UINT32 NonSecurePL2TimerGSIV;
1398 UINT32 NonSecurePL2TimerFlags;
1399 UINT64 CntReadBasePhysicalAddress;
1400 UINT32 PlatformTimerCount;
1401 UINT32 PlatformTimerOffset;
1402 UINT32 VirtualPL2TimerGSIV;
1403 UINT32 VirtualPL2TimerFlags;
1405
1409#define EFI_ACPI_6_4_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION 0x03
1410
1414#define EFI_ACPI_6_4_GTDT_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0
1415#define EFI_ACPI_6_4_GTDT_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1416#define EFI_ACPI_6_4_GTDT_TIMER_FLAG_ALWAYS_ON_CAPABILITY BIT2
1417
1421#define EFI_ACPI_6_4_GTDT_GT_BLOCK 0
1422#define EFI_ACPI_6_4_GTDT_ARM_GENERIC_WATCHDOG 1
1423
1427typedef struct {
1428 UINT8 Type;
1429 UINT16 Length;
1430 UINT8 Reserved;
1431 UINT64 CntCtlBase;
1432 UINT32 GTBlockTimerCount;
1433 UINT32 GTBlockTimerOffset;
1435
1439typedef struct {
1440 UINT8 GTFrameNumber;
1441 UINT8 Reserved[3];
1442 UINT64 CntBaseX;
1443 UINT64 CntEL0BaseX;
1444 UINT32 GTxPhysicalTimerGSIV;
1445 UINT32 GTxPhysicalTimerFlags;
1446 UINT32 GTxVirtualTimerGSIV;
1447 UINT32 GTxVirtualTimerFlags;
1448 UINT32 GTxCommonFlags;
1450
1454#define EFI_ACPI_6_4_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_MODE BIT0
1455#define EFI_ACPI_6_4_GTDT_GT_BLOCK_TIMER_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1456
1460#define EFI_ACPI_6_4_GTDT_GT_BLOCK_COMMON_FLAG_SECURE_TIMER BIT0
1461#define EFI_ACPI_6_4_GTDT_GT_BLOCK_COMMON_FLAG_ALWAYS_ON_CAPABILITY BIT1
1462
1466typedef struct {
1467 UINT8 Type;
1468 UINT16 Length;
1469 UINT8 Reserved;
1470 UINT64 RefreshFramePhysicalAddress;
1471 UINT64 WatchdogControlFramePhysicalAddress;
1472 UINT32 WatchdogTimerGSIV;
1473 UINT32 WatchdogTimerFlags;
1475
1479#define EFI_ACPI_6_4_GTDT_ARM_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_MODE BIT0
1480#define EFI_ACPI_6_4_GTDT_ARM_GENERIC_WATCHDOG_FLAG_TIMER_INTERRUPT_POLARITY BIT1
1481#define EFI_ACPI_6_4_GTDT_ARM_GENERIC_WATCHDOG_FLAG_SECURE_TIMER BIT2
1482
1483//
1484// NVDIMM Firmware Interface Table definition.
1485//
1486typedef struct {
1488 UINT32 Reserved;
1490
1491//
1492// NFIT Version (as defined in ACPI 6.4 spec.)
1493//
1494#define EFI_ACPI_6_4_NVDIMM_FIRMWARE_INTERFACE_TABLE_REVISION 0x1
1495
1496//
1497// Definition for NFIT Table Structure Types
1498//
1499#define EFI_ACPI_6_4_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE 0
1500#define EFI_ACPI_6_4_NFIT_NVDIMM_REGION_MAPPING_STRUCTURE_TYPE 1
1501#define EFI_ACPI_6_4_NFIT_INTERLEAVE_STRUCTURE_TYPE 2
1502#define EFI_ACPI_6_4_NFIT_SMBIOS_MANAGEMENT_INFORMATION_STRUCTURE_TYPE 3
1503#define EFI_ACPI_6_4_NFIT_NVDIMM_CONTROL_REGION_STRUCTURE_TYPE 4
1504#define EFI_ACPI_6_4_NFIT_NVDIMM_BLOCK_DATA_WINDOW_REGION_STRUCTURE_TYPE 5
1505#define EFI_ACPI_6_4_NFIT_FLUSH_HINT_ADDRESS_STRUCTURE_TYPE 6
1506#define EFI_ACPI_6_4_NFIT_PLATFORM_CAPABILITIES_STRUCTURE_TYPE 7
1507
1508//
1509// Definition for NFIT Structure Header
1510//
1511typedef struct {
1512 UINT16 Type;
1513 UINT16 Length;
1515
1516//
1517// Definition for System Physical Address Range Structure
1518//
1519#define EFI_ACPI_6_4_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_CONTROL_REGION_FOR_MANAGEMENT BIT0
1520#define EFI_ACPI_6_4_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_PROXIMITY_DOMAIN_VALID BIT1
1521#define EFI_ACPI_6_4_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_FLAGS_SPA_LOCATION_COOKIE_VALID BIT2
1522
1523#define EFI_ACPI_6_4_NFIT_GUID_VOLATILE_MEMORY_REGION { 0x7305944F, 0xFDDA, 0x44E3, { 0xB1, 0x6C, 0x3F, 0x22, 0xD2, 0x52, 0xE5, 0xD0 }}
1524#define EFI_ACPI_6_4_NFIT_GUID_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_REGION { 0x66F0D379, 0xB4F3, 0x4074, { 0xAC, 0x43, 0x0D, 0x33, 0x18, 0xB7, 0x8C, 0xDB }}
1525#define EFI_ACPI_6_4_NFIT_GUID_NVDIMM_CONTROL_REGION { 0x92F701F6, 0x13B4, 0x405D, { 0x91, 0x0B, 0x29, 0x93, 0x67, 0xE8, 0x23, 0x4C }}
1526#define EFI_ACPI_6_4_NFIT_GUID_NVDIMM_BLOCK_DATA_WINDOW_REGION { 0x91AF0530, 0x5D86, 0x470E, { 0xA6, 0xB0, 0x0A, 0x2D, 0xB9, 0x40, 0x82, 0x49 }}
1527#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 }}
1528#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 }}
1529#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 }}
1530#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 }}
1531
1532typedef struct {
1533 UINT16 Type;
1534 UINT16 Length;
1535 UINT16 SPARangeStructureIndex;
1536 UINT16 Flags;
1537 UINT32 Reserved_8;
1538 UINT32 ProximityDomain;
1539 GUID AddressRangeTypeGUID;
1540 UINT64 SystemPhysicalAddressRangeBase;
1541 UINT64 SystemPhysicalAddressRangeLength;
1542 UINT64 AddressRangeMemoryMappingAttribute;
1543 UINT64 SPALocationCookie;
1545
1546//
1547// Definition for Memory Device to System Physical Address Range Mapping Structure
1548//
1549typedef struct {
1550 UINT32 DIMMNumber : 4;
1551 UINT32 MemoryChannelNumber : 4;
1552 UINT32 MemoryControllerID : 4;
1553 UINT32 SocketID : 4;
1554 UINT32 NodeControllerID : 12;
1555 UINT32 Reserved_28 : 4;
1557
1558#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_PREVIOUS_SAVE_FAIL BIT0
1559#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_LAST_RESTORE_FAIL BIT1
1560#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_PLATFORM_FLUSH_FAIL BIT2
1561#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_NOT_ARMED_PRIOR_TO_OSPM_HAND_OFF BIT3
1562#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_SMART_HEALTH_EVENTS_PRIOR_OSPM_HAND_OFF BIT4
1563#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_FIRMWARE_ENABLED_TO_NOTIFY_OSPM_ON_SMART_HEALTH_EVENTS BIT5
1564#define EFI_ACPI_6_4_NFIT_MEMORY_DEVICE_STATE_FLAGS_FIRMWARE_NOT_MAP_NVDIMM_TO_SPA BIT6
1565
1566typedef struct {
1567 UINT16 Type;
1568 UINT16 Length;
1569 EFI_ACPI_6_4_NFIT_DEVICE_HANDLE NFITDeviceHandle;
1570 UINT16 NVDIMMPhysicalID;
1571 UINT16 NVDIMMRegionID;
1572 UINT16 SPARangeStructureIndex;
1573 UINT16 NVDIMMControlRegionStructureIndex;
1574 UINT64 NVDIMMRegionSize;
1575 UINT64 RegionOffset;
1576 UINT64 NVDIMMPhysicalAddressRegionBase;
1577 UINT16 InterleaveStructureIndex;
1578 UINT16 InterleaveWays;
1579 UINT16 NVDIMMStateFlags;
1580 UINT16 Reserved_46;
1582
1583//
1584// Definition for Interleave Structure
1585//
1586typedef struct {
1587 UINT16 Type;
1588 UINT16 Length;
1589 UINT16 InterleaveStructureIndex;
1590 UINT16 Reserved_6;
1591 UINT32 NumberOfLines;
1592 UINT32 LineSize;
1593 // UINT32 LineOffset[NumberOfLines];
1595
1596//
1597// Definition for SMBIOS Management Information Structure
1598//
1599typedef struct {
1600 UINT16 Type;
1601 UINT16 Length;
1602 UINT32 Reserved_4;
1603 // UINT8 Data[];
1605
1606//
1607// Definition for NVDIMM Control Region Structure
1608//
1609#define EFI_ACPI_6_4_NFIT_NVDIMM_CONTROL_REGION_VALID_FIELDS_MANUFACTURING BIT0
1610
1611#define EFI_ACPI_6_4_NFIT_NVDIMM_CONTROL_REGION_FLAGS_BLOCK_DATA_WINDOWS_BUFFERED BIT0
1612
1613typedef struct {
1614 UINT16 Type;
1615 UINT16 Length;
1616 UINT16 NVDIMMControlRegionStructureIndex;
1617 UINT16 VendorID;
1618 UINT16 DeviceID;
1619 UINT16 RevisionID;
1620 UINT16 SubsystemVendorID;
1621 UINT16 SubsystemDeviceID;
1622 UINT16 SubsystemRevisionID;
1623 UINT8 ValidFields;
1624 UINT8 ManufacturingLocation;
1625 UINT16 ManufacturingDate;
1626 UINT8 Reserved_22[2];
1627 UINT32 SerialNumber;
1628 UINT16 RegionFormatInterfaceCode;
1629 UINT16 NumberOfBlockControlWindows;
1630 UINT64 SizeOfBlockControlWindow;
1631 UINT64 CommandRegisterOffsetInBlockControlWindow;
1632 UINT64 SizeOfCommandRegisterInBlockControlWindows;
1633 UINT64 StatusRegisterOffsetInBlockControlWindow;
1634 UINT64 SizeOfStatusRegisterInBlockControlWindows;
1635 UINT16 NVDIMMControlRegionFlag;
1636 UINT8 Reserved_74[6];
1638
1639//
1640// Definition for NVDIMM Block Data Window Region Structure
1641//
1642typedef struct {
1643 UINT16 Type;
1644 UINT16 Length;
1645 UINT16 NVDIMMControlRegionStructureIndex;
1646 UINT16 NumberOfBlockDataWindows;
1647 UINT64 BlockDataWindowStartOffset;
1648 UINT64 SizeOfBlockDataWindow;
1649 UINT64 BlockAccessibleMemoryCapacity;
1650 UINT64 BeginningAddressOfFirstBlockInBlockAccessibleMemory;
1652
1653//
1654// Definition for Flush Hint Address Structure
1655//
1656typedef struct {
1657 UINT16 Type;
1658 UINT16 Length;
1659 EFI_ACPI_6_4_NFIT_DEVICE_HANDLE NFITDeviceHandle;
1660 UINT16 NumberOfFlushHintAddresses;
1661 UINT8 Reserved_10[6];
1662 // UINT64 FlushHintAddress[NumberOfFlushHintAddresses];
1664
1665//
1666// Definition for Platform Capabilities Structure
1667//
1668typedef struct {
1669 UINT16 Type;
1670 UINT16 Length;
1671 UINT8 HighestValidCapability;
1672 UINT8 Reserved_5[3];
1673 UINT32 Capabilities;
1674 UINT8 Reserved_12[4];
1676
1677#define EFI_ACPI_6_4_NFIT_PLATFORM_CAPABILITY_CPU_CACHE_FLUSH_TO_NVDIMM_DURABILITY_ON_POWER_LOSS BIT0
1678#define EFI_ACPI_6_4_NFIT_PLATFORM_CAPABILITY_MEMORY_CONTROLLER_FLUSH_TO_NVDIMM_DURABILITY_ON_POWER_LOSS BIT1
1679#define EFI_ACPI_6_4_NFIT_PLATFORM_CAPABILITY_BYTE_ADDRESSABLE_PERSISTENT_MEMORY_HARDWARE_MIRRORING BIT2
1680
1684typedef struct {
1687
1691#define EFI_ACPI_6_4_SECURE_DEVICES_TABLE_REVISION 0x01
1692
1696#define EFI_ACPI_6_4_SDEV_TYPE_ACPI_NAMESPACE_DEVICE 0x00
1697#define EFI_ACPI_6_4_SDEV_TYPE_PCIE_ENDPOINT_DEVICE 0x01
1698
1702#define EFI_ACPI_6_4_SDEV_FLAG_ALLOW_HANDOFF BIT0
1703#define EFI_ACPI_6_4_SDEV_FLAG_SECURE_ACCESS_COMPONENTS_PRESENT BIT1
1704
1708typedef struct {
1709 UINT8 Type;
1710 UINT8 Flags;
1711 UINT16 Length;
1713
1717typedef struct {
1719 UINT16 DeviceIdentifierOffset;
1720 UINT16 DeviceIdentifierLength;
1721 UINT16 VendorSpecificDataOffset;
1722 UINT16 VendorSpecificDataLength;
1723 UINT16 SecureAccessComponentsOffset;
1724 UINT16 SecureAccessComponentsLength;
1726
1730#define EFI_ACPI_6_4_SDEV_SECURE_ACCESS_COMPONENT_TYPE_IDENTIFICATION 0x00
1731#define EFI_ACPI_6_4_SDEV_SECURE_ACCESS_COMPONENT_TYPE_MEMORY 0x01
1732
1736typedef struct {
1738 UINT16 HardwareIdentifierOffset;
1739 UINT16 HardwareIdentifierLength;
1740 UINT16 SubsystemIdentifierOffset;
1741 UINT16 SubsystemIdentifierLength;
1742 UINT16 HardwareRevision;
1743 UINT8 HardwareRevisionPresent;
1744 UINT8 ClassCodePresent;
1745 UINT8 PciCompatibleBaseClass;
1746 UINT8 PciCompatibleSubClass;
1747 UINT8 PciCompatibleProgrammingInterface;
1749
1753typedef struct {
1755 UINT32 Reserved;
1756 UINT64 MemoryAddressBase;
1757 UINT64 MemoryLength;
1759
1763typedef struct {
1765 UINT16 PciSegmentNumber;
1766 UINT16 StartBusNumber;
1767 UINT16 PciPathOffset;
1768 UINT16 PciPathLength;
1769 UINT16 VendorSpecificDataOffset;
1770 UINT16 VendorSpecificDataLength;
1772
1776typedef struct {
1778 UINT32 BootErrorRegionLength;
1779 UINT64 BootErrorRegion;
1781
1785#define EFI_ACPI_6_4_BOOT_ERROR_RECORD_TABLE_REVISION 0x01
1786
1790typedef struct {
1791 UINT32 UncorrectableErrorValid : 1;
1792 UINT32 CorrectableErrorValid : 1;
1793 UINT32 MultipleUncorrectableErrors : 1;
1794 UINT32 MultipleCorrectableErrors : 1;
1795 UINT32 ErrorDataEntryCount : 10;
1796 UINT32 Reserved : 18;
1798
1802typedef struct {
1804 UINT32 RawDataOffset;
1805 UINT32 RawDataLength;
1806 UINT32 DataLength;
1807 UINT32 ErrorSeverity;
1809
1810//
1811// Boot Error Severity types
1812//
1813#define EFI_ACPI_6_4_ERROR_SEVERITY_RECOVERABLE 0x00
1814#define EFI_ACPI_6_4_ERROR_SEVERITY_FATAL 0x01
1815#define EFI_ACPI_6_4_ERROR_SEVERITY_CORRECTED 0x02
1816#define EFI_ACPI_6_4_ERROR_SEVERITY_NONE 0x03
1817//
1818// The term 'Correctable' is no longer being used as an error severity of the
1819// reported error since ACPI Specification Version 5.1 Errata B.
1820// The below macro is considered as deprecated and should no longer be used.
1821//
1822#define EFI_ACPI_6_4_ERROR_SEVERITY_CORRECTABLE 0x00
1823
1827typedef struct {
1828 UINT8 SectionType[16];
1829 UINT32 ErrorSeverity;
1830 UINT16 Revision;
1831 UINT8 ValidationBits;
1832 UINT8 Flags;
1833 UINT32 ErrorDataLength;
1834 UINT8 FruId[16];
1835 UINT8 FruText[20];
1836 UINT8 Timestamp[8];
1838
1842#define EFI_ACPI_6_4_GENERIC_ERROR_DATA_ENTRY_REVISION 0x0300
1843
1847typedef struct {
1849 UINT32 ErrorSourceCount;
1851
1855#define EFI_ACPI_6_4_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x01
1856
1857//
1858// Error Source structure types.
1859//
1860#define EFI_ACPI_6_4_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x00
1861#define EFI_ACPI_6_4_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x01
1862#define EFI_ACPI_6_4_IA32_ARCHITECTURE_NMI_ERROR 0x02
1863#define EFI_ACPI_6_4_PCI_EXPRESS_ROOT_PORT_AER 0x06
1864#define EFI_ACPI_6_4_PCI_EXPRESS_DEVICE_AER 0x07
1865#define EFI_ACPI_6_4_PCI_EXPRESS_BRIDGE_AER 0x08
1866#define EFI_ACPI_6_4_GENERIC_HARDWARE_ERROR 0x09
1867#define EFI_ACPI_6_4_GENERIC_HARDWARE_ERROR_VERSION_2 0x0A
1868#define EFI_ACPI_6_4_IA32_ARCHITECTURE_DEFERRED_MACHINE_CHECK 0x0B
1869
1870//
1871// Error Source structure flags.
1872//
1873#define EFI_ACPI_6_4_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0)
1874#define EFI_ACPI_6_4_ERROR_SOURCE_FLAG_GLOBAL (1 << 1)
1875#define EFI_ACPI_6_4_ERROR_SOURCE_FLAG_GHES_ASSIST (1 << 2)
1876
1880typedef struct {
1881 UINT16 Type;
1882 UINT16 SourceId;
1883 UINT8 Reserved0[2];
1884 UINT8 Flags;
1885 UINT8 Enabled;
1886 UINT32 NumberOfRecordsToPreAllocate;
1887 UINT32 MaxSectionsPerRecord;
1888 UINT64 GlobalCapabilityInitData;
1889 UINT64 GlobalControlInitData;
1890 UINT8 NumberOfHardwareBanks;
1891 UINT8 Reserved1[7];
1893
1897typedef struct {
1898 UINT8 BankNumber;
1899 UINT8 ClearStatusOnInitialization;
1900 UINT8 StatusDataFormat;
1901 UINT8 Reserved0;
1902 UINT32 ControlRegisterMsrAddress;
1903 UINT64 ControlInitData;
1904 UINT32 StatusRegisterMsrAddress;
1905 UINT32 AddressRegisterMsrAddress;
1906 UINT32 MiscRegisterMsrAddress;
1908
1912#define EFI_ACPI_6_4_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x00
1913#define EFI_ACPI_6_4_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x01
1914#define EFI_ACPI_6_4_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x02
1915
1916//
1917// Hardware Error Notification types. All other values are reserved
1918//
1919#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_POLLED 0x00
1920#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x01
1921#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x02
1922#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_SCI 0x03
1923#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_NMI 0x04
1924#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_CMCI 0x05
1925#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_MCE 0x06
1926#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_GPIO_SIGNAL 0x07
1927#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_ARMV8_SEA 0x08
1928#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_ARMV8_SEI 0x09
1929#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_GSIV 0x0A
1930#define EFI_ACPI_6_4_HARDWARE_ERROR_NOTIFICATION_SOFTWARE_DELEGATED_EXCEPTION 0x0B
1931
1935typedef struct {
1936 UINT16 Type : 1;
1937 UINT16 PollInterval : 1;
1938 UINT16 SwitchToPollingThresholdValue : 1;
1939 UINT16 SwitchToPollingThresholdWindow : 1;
1940 UINT16 ErrorThresholdValue : 1;
1941 UINT16 ErrorThresholdWindow : 1;
1942 UINT16 Reserved : 10;
1944
1948typedef struct {
1949 UINT8 Type;
1950 UINT8 Length;
1952 UINT32 PollInterval;
1953 UINT32 Vector;
1954 UINT32 SwitchToPollingThresholdValue;
1955 UINT32 SwitchToPollingThresholdWindow;
1956 UINT32 ErrorThresholdValue;
1957 UINT32 ErrorThresholdWindow;
1959
1963typedef struct {
1964 UINT16 Type;
1965 UINT16 SourceId;
1966 UINT8 Reserved0[2];
1967 UINT8 Flags;
1968 UINT8 Enabled;
1969 UINT32 NumberOfRecordsToPreAllocate;
1970 UINT32 MaxSectionsPerRecord;
1972 UINT8 NumberOfHardwareBanks;
1973 UINT8 Reserved1[3];
1975
1979typedef struct {
1980 UINT16 Type;
1981 UINT16 SourceId;
1982 UINT8 Reserved0[2];
1983 UINT32 NumberOfRecordsToPreAllocate;
1984 UINT32 MaxSectionsPerRecord;
1985 UINT32 MaxRawDataLength;
1987
1991typedef struct {
1992 UINT16 Type;
1993 UINT16 SourceId;
1994 UINT8 Reserved0[2];
1995 UINT8 Flags;
1996 UINT8 Enabled;
1997 UINT32 NumberOfRecordsToPreAllocate;
1998 UINT32 MaxSectionsPerRecord;
1999 UINT32 Bus;
2000 UINT16 Device;
2001 UINT16 Function;
2002 UINT16 DeviceControl;
2003 UINT8 Reserved1[2];
2004 UINT32 UncorrectableErrorMask;
2005 UINT32 UncorrectableErrorSeverity;
2006 UINT32 CorrectableErrorMask;
2007 UINT32 AdvancedErrorCapabilitiesAndControl;
2008 UINT32 RootErrorCommand;
2010
2014typedef struct {
2015 UINT16 Type;
2016 UINT16 SourceId;
2017 UINT8 Reserved0[2];
2018 UINT8 Flags;
2019 UINT8 Enabled;
2020 UINT32 NumberOfRecordsToPreAllocate;
2021 UINT32 MaxSectionsPerRecord;
2022 UINT32 Bus;
2023 UINT16 Device;
2024 UINT16 Function;
2025 UINT16 DeviceControl;
2026 UINT8 Reserved1[2];
2027 UINT32 UncorrectableErrorMask;
2028 UINT32 UncorrectableErrorSeverity;
2029 UINT32 CorrectableErrorMask;
2030 UINT32 AdvancedErrorCapabilitiesAndControl;
2032
2036typedef struct {
2037 UINT16 Type;
2038 UINT16 SourceId;
2039 UINT8 Reserved0[2];
2040 UINT8 Flags;
2041 UINT8 Enabled;
2042 UINT32 NumberOfRecordsToPreAllocate;
2043 UINT32 MaxSectionsPerRecord;
2044 UINT32 Bus;
2045 UINT16 Device;
2046 UINT16 Function;
2047 UINT16 DeviceControl;
2048 UINT8 Reserved1[2];
2049 UINT32 UncorrectableErrorMask;
2050 UINT32 UncorrectableErrorSeverity;
2051 UINT32 CorrectableErrorMask;
2052 UINT32 AdvancedErrorCapabilitiesAndControl;
2053 UINT32 SecondaryUncorrectableErrorMask;
2054 UINT32 SecondaryUncorrectableErrorSeverity;
2055 UINT32 SecondaryAdvancedErrorCapabilitiesAndControl;
2057
2061typedef struct {
2062 UINT16 Type;
2063 UINT16 SourceId;
2064 UINT16 RelatedSourceId;
2065 UINT8 Flags;
2066 UINT8 Enabled;
2067 UINT32 NumberOfRecordsToPreAllocate;
2068 UINT32 MaxSectionsPerRecord;
2069 UINT32 MaxRawDataLength;
2070 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;
2072 UINT32 ErrorStatusBlockLength;
2074
2078typedef struct {
2079 UINT16 Type;
2080 UINT16 SourceId;
2081 UINT16 RelatedSourceId;
2082 UINT8 Flags;
2083 UINT8 Enabled;
2084 UINT32 NumberOfRecordsToPreAllocate;
2085 UINT32 MaxSectionsPerRecord;
2086 UINT32 MaxRawDataLength;
2087 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress;
2089 UINT32 ErrorStatusBlockLength;
2091 UINT64 ReadAckPreserve;
2092 UINT64 ReadAckWrite;
2094
2098typedef struct {
2100 UINT32 RawDataOffset;
2101 UINT32 RawDataLength;
2102 UINT32 DataLength;
2103 UINT32 ErrorSeverity;
2105
2109typedef struct {
2110 UINT16 Type;
2111 UINT16 SourceId;
2112 UINT8 Reserved0[2];
2113 UINT8 Flags;
2114 UINT8 Enabled;
2115 UINT32 NumberOfRecordsToPreAllocate;
2116 UINT32 MaxSectionsPerRecord;
2118 UINT8 NumberOfHardwareBanks;
2119 UINT8 Reserved1[3];
2121
2125typedef struct {
2127 UINT8 Reserved[4];
2129
2133#define EFI_ACPI_6_4_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_REVISION 0x02
2134
2138#define EFI_ACPI_6_4_HMAT_TYPE_MEMORY_PROXIMITY_DOMAIN_ATTRIBUTES 0x00
2139#define EFI_ACPI_6_4_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO 0x01
2140#define EFI_ACPI_6_4_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO 0x02
2141
2145typedef struct {
2146 UINT16 Type;
2147 UINT8 Reserved[2];
2148 UINT32 Length;
2150
2154typedef struct {
2155 UINT16 InitiatorProximityDomainValid : 1;
2156 UINT16 Reserved : 15;
2158
2162typedef struct {
2163 UINT16 Type;
2164 UINT8 Reserved[2];
2165 UINT32 Length;
2167 UINT8 Reserved1[2];
2168 UINT32 InitiatorProximityDomain;
2169 UINT32 MemoryProximityDomain;
2170 UINT8 Reserved2[20];
2172
2176typedef struct {
2177 UINT8 MemoryHierarchy : 4;
2178 UINT8 AccessAttributes : 2;
2179 UINT8 Reserved : 2;
2181
2185typedef struct {
2186 UINT16 Type;
2187 UINT8 Reserved[2];
2188 UINT32 Length;
2190 UINT8 DataType;
2191 UINT8 MinTransferSize;
2192 UINT8 Reserved1;
2193 UINT32 NumberOfInitiatorProximityDomains;
2194 UINT32 NumberOfTargetProximityDomains;
2195 UINT8 Reserved2[4];
2196 UINT64 EntryBaseUnit;
2198
2202typedef struct {
2203 UINT32 TotalCacheLevels : 4;
2204 UINT32 CacheLevel : 4;
2205 UINT32 CacheAssociativity : 4;
2206 UINT32 WritePolicy : 4;
2207 UINT32 CacheLineSize : 16;
2209
2213typedef struct {
2214 UINT16 Type;
2215 UINT8 Reserved[2];
2216 UINT32 Length;
2217 UINT32 MemoryProximityDomain;
2218 UINT8 Reserved1[4];
2219 UINT64 MemorySideCacheSize;
2221 UINT8 Reserved2[2];
2222 UINT16 NumberOfSmbiosHandles;
2224
2228typedef struct {
2230 UINT32 SerializationHeaderSize;
2231 UINT8 Reserved0[4];
2232 UINT32 InstructionEntryCount;
2234
2238#define EFI_ACPI_6_4_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x01
2239
2243#define EFI_ACPI_6_4_ERST_BEGIN_WRITE_OPERATION 0x00
2244#define EFI_ACPI_6_4_ERST_BEGIN_READ_OPERATION 0x01
2245#define EFI_ACPI_6_4_ERST_BEGIN_CLEAR_OPERATION 0x02
2246#define EFI_ACPI_6_4_ERST_END_OPERATION 0x03
2247#define EFI_ACPI_6_4_ERST_SET_RECORD_OFFSET 0x04
2248#define EFI_ACPI_6_4_ERST_EXECUTE_OPERATION 0x05
2249#define EFI_ACPI_6_4_ERST_CHECK_BUSY_STATUS 0x06
2250#define EFI_ACPI_6_4_ERST_GET_COMMAND_STATUS 0x07
2251#define EFI_ACPI_6_4_ERST_GET_RECORD_IDENTIFIER 0x08
2252#define EFI_ACPI_6_4_ERST_SET_RECORD_IDENTIFIER 0x09
2253#define EFI_ACPI_6_4_ERST_GET_RECORD_COUNT 0x0A
2254#define EFI_ACPI_6_4_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B
2255#define EFI_ACPI_6_4_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D
2256#define EFI_ACPI_6_4_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E
2257#define EFI_ACPI_6_4_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F
2258#define EFI_ACPI_6_4_ERST_GET_EXECUTE_OPERATION_TIMINGS 0x10
2259
2263#define EFI_ACPI_6_4_ERST_STATUS_SUCCESS 0x00
2264#define EFI_ACPI_6_4_ERST_STATUS_NOT_ENOUGH_SPACE 0x01
2265#define EFI_ACPI_6_4_ERST_STATUS_HARDWARE_NOT_AVAILABLE 0x02
2266#define EFI_ACPI_6_4_ERST_STATUS_FAILED 0x03
2267#define EFI_ACPI_6_4_ERST_STATUS_RECORD_STORE_EMPTY 0x04
2268#define EFI_ACPI_6_4_ERST_STATUS_RECORD_NOT_FOUND 0x05
2269
2273#define EFI_ACPI_6_4_ERST_READ_REGISTER 0x00
2274#define EFI_ACPI_6_4_ERST_READ_REGISTER_VALUE 0x01
2275#define EFI_ACPI_6_4_ERST_WRITE_REGISTER 0x02
2276#define EFI_ACPI_6_4_ERST_WRITE_REGISTER_VALUE 0x03
2277#define EFI_ACPI_6_4_ERST_NOOP 0x04
2278#define EFI_ACPI_6_4_ERST_LOAD_VAR1 0x05
2279#define EFI_ACPI_6_4_ERST_LOAD_VAR2 0x06
2280#define EFI_ACPI_6_4_ERST_STORE_VAR1 0x07
2281#define EFI_ACPI_6_4_ERST_ADD 0x08
2282#define EFI_ACPI_6_4_ERST_SUBTRACT 0x09
2283#define EFI_ACPI_6_4_ERST_ADD_VALUE 0x0A
2284#define EFI_ACPI_6_4_ERST_SUBTRACT_VALUE 0x0B
2285#define EFI_ACPI_6_4_ERST_STALL 0x0C
2286#define EFI_ACPI_6_4_ERST_STALL_WHILE_TRUE 0x0D
2287#define EFI_ACPI_6_4_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E
2288#define EFI_ACPI_6_4_ERST_GOTO 0x0F
2289#define EFI_ACPI_6_4_ERST_SET_SRC_ADDRESS_BASE 0x10
2290#define EFI_ACPI_6_4_ERST_SET_DST_ADDRESS_BASE 0x11
2291#define EFI_ACPI_6_4_ERST_MOVE_DATA 0x12
2292
2296#define EFI_ACPI_6_4_ERST_PRESERVE_REGISTER 0x01
2297
2301typedef struct {
2302 UINT8 SerializationAction;
2303 UINT8 Instruction;
2304 UINT8 Flags;
2305 UINT8 Reserved0;
2307 UINT64 Value;
2308 UINT64 Mask;
2310
2314typedef struct {
2316 UINT32 InjectionHeaderSize;
2317 UINT8 InjectionFlags;
2318 UINT8 Reserved0[3];
2319 UINT32 InjectionEntryCount;
2321
2325#define EFI_ACPI_6_4_ERROR_INJECTION_TABLE_REVISION 0x01
2326
2330#define EFI_ACPI_6_4_EINJ_BEGIN_INJECTION_OPERATION 0x00
2331#define EFI_ACPI_6_4_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x01
2332#define EFI_ACPI_6_4_EINJ_SET_ERROR_TYPE 0x02
2333#define EFI_ACPI_6_4_EINJ_GET_ERROR_TYPE 0x03
2334#define EFI_ACPI_6_4_EINJ_END_OPERATION 0x04
2335#define EFI_ACPI_6_4_EINJ_EXECUTE_OPERATION 0x05
2336#define EFI_ACPI_6_4_EINJ_CHECK_BUSY_STATUS 0x06
2337#define EFI_ACPI_6_4_EINJ_GET_COMMAND_STATUS 0x07
2338#define EFI_ACPI_6_4_EINJ_SET_ERROR_TYPE_WITH_ADDRESS 0x08
2339#define EFI_ACPI_6_4_EINJ_GET_EXECUTE_OPERATION_TIMINGS 0x09
2340#define EFI_ACPI_6_4_EINJ_TRIGGER_ERROR 0xFF
2341
2345#define EFI_ACPI_6_4_EINJ_STATUS_SUCCESS 0x00
2346#define EFI_ACPI_6_4_EINJ_STATUS_UNKNOWN_FAILURE 0x01
2347#define EFI_ACPI_6_4_EINJ_STATUS_INVALID_ACCESS 0x02
2348
2352#define EFI_ACPI_6_4_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0)
2353#define EFI_ACPI_6_4_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1)
2354#define EFI_ACPI_6_4_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2)
2355#define EFI_ACPI_6_4_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3)
2356#define EFI_ACPI_6_4_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4)
2357#define EFI_ACPI_6_4_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5)
2358#define EFI_ACPI_6_4_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6)
2359#define EFI_ACPI_6_4_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7)
2360#define EFI_ACPI_6_4_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8)
2361#define EFI_ACPI_6_4_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9)
2362#define EFI_ACPI_6_4_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10)
2363#define EFI_ACPI_6_4_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11)
2364
2368#define EFI_ACPI_6_4_EINJ_READ_REGISTER 0x00
2369#define EFI_ACPI_6_4_EINJ_READ_REGISTER_VALUE 0x01
2370#define EFI_ACPI_6_4_EINJ_WRITE_REGISTER 0x02
2371#define EFI_ACPI_6_4_EINJ_WRITE_REGISTER_VALUE 0x03
2372#define EFI_ACPI_6_4_EINJ_NOOP 0x04
2373
2377#define EFI_ACPI_6_4_EINJ_PRESERVE_REGISTER 0x01
2378
2382typedef struct {
2383 UINT8 InjectionAction;
2384 UINT8 Instruction;
2385 UINT8 Flags;
2386 UINT8 Reserved0;
2388 UINT64 Value;
2389 UINT64 Mask;
2391
2395typedef struct {
2396 UINT32 HeaderSize;
2397 UINT32 Revision;
2398 UINT32 TableSize;
2399 UINT32 EntryCount;
2401
2405typedef struct {
2407 UINT32 Flags;
2408 UINT64 Reserved;
2410
2414#define EFI_ACPI_6_4_PLATFORM_COMMUNICATION_CHANNEL_TABLE_REVISION 0x02
2415
2419#define EFI_ACPI_6_4_PCCT_FLAGS_PLATFORM_INTERRUPT BIT0
2420
2421//
2422// PCCT Subspace type
2423//
2424#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_GENERIC 0x00
2425#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS 0x01
2426#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS 0x02
2427#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_3_EXTENDED_PCC 0x03
2428#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC 0x04
2429#define EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_5_HW_REGISTERS_COMMUNICATIONS 0x05
2430
2434typedef struct {
2435 UINT8 Type;
2436 UINT8 Length;
2438
2442typedef struct {
2443 UINT8 Type;
2444 UINT8 Length;
2445 UINT8 Reserved[6];
2446 UINT64 BaseAddress;
2447 UINT64 AddressLength;
2449 UINT64 DoorbellPreserve;
2450 UINT64 DoorbellWrite;
2451 UINT32 NominalLatency;
2452 UINT32 MaximumPeriodicAccessRate;
2453 UINT16 MinimumRequestTurnaroundTime;
2455
2459
2460typedef struct {
2461 UINT8 Command;
2462 UINT8 Reserved : 7;
2463 UINT8 NotifyOnCompletion : 1;
2465
2466typedef struct {
2467 UINT8 CommandComplete : 1;
2468 UINT8 PlatformInterrupt : 1;
2469 UINT8 Error : 1;
2470 UINT8 PlatformNotification : 1;
2471 UINT8 Reserved : 4;
2472 UINT8 Reserved1;
2474
2475typedef struct {
2476 UINT32 Signature;
2480
2481#define EFI_ACPI_6_4_PCCT_SUBSPACE_PLATFORM_INTERRUPT_FLAGS_POLARITY BIT0
2482#define EFI_ACPI_6_4_PCCT_SUBSPACE_PLATFORM_INTERRUPT_FLAGS_MODE BIT1
2483
2487typedef struct {
2488 UINT8 Type;
2489 UINT8 Length;
2490 UINT32 PlatformInterrupt;
2491 UINT8 PlatformInterruptFlags;
2492 UINT8 Reserved;
2493 UINT64 BaseAddress;
2494 UINT64 AddressLength;
2496 UINT64 DoorbellPreserve;
2497 UINT64 DoorbellWrite;
2498 UINT32 NominalLatency;
2499 UINT32 MaximumPeriodicAccessRate;
2500 UINT16 MinimumRequestTurnaroundTime;
2502
2506typedef struct {
2507 UINT8 Type;
2508 UINT8 Length;
2509 UINT32 PlatformInterrupt;
2510 UINT8 PlatformInterruptFlags;
2511 UINT8 Reserved;
2512 UINT64 BaseAddress;
2513 UINT64 AddressLength;
2515 UINT64 DoorbellPreserve;
2516 UINT64 DoorbellWrite;
2517 UINT32 NominalLatency;
2518 UINT32 MaximumPeriodicAccessRate;
2519 UINT16 MinimumRequestTurnaroundTime;
2520 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PlatformInterruptAckRegister;
2521 UINT64 PlatformInterruptAckPreserve;
2522 UINT64 PlatformInterruptAckWrite;
2524
2528typedef struct {
2529 UINT8 Type;
2530 UINT8 Length;
2531 UINT32 PlatformInterrupt;
2532 UINT8 PlatformInterruptFlags;
2533 UINT8 Reserved;
2534 UINT64 BaseAddress;
2535 UINT32 AddressLength;
2537 UINT64 DoorbellPreserve;
2538 UINT64 DoorbellWrite;
2539 UINT32 NominalLatency;
2540 UINT32 MaximumPeriodicAccessRate;
2541 UINT32 MinimumRequestTurnaroundTime;
2542 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PlatformInterruptAckRegister;
2543 UINT64 PlatformInterruptAckPreserve;
2544 UINT64 PlatformInterruptAckSet;
2545 UINT8 Reserved1[8];
2546 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CommandCompleteCheckRegister;
2547 UINT64 CommandCompleteCheckMask;
2548 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CommandCompleteUpdateRegister;
2549 UINT64 CommandCompleteUpdatePreserve;
2550 UINT64 CommandCompleteUpdateSet;
2551 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ErrorStatusRegister;
2552 UINT64 ErrorStatusMask;
2554
2559
2560#define EFI_ACPI_6_4_PCCT_MASTER_SLAVE_COMMUNICATIONS_CHANNEL_FLAGS_NOTIFY_ON_COMPLETION BIT0
2561
2562typedef struct {
2563 UINT32 Signature;
2564 UINT32 Flags;
2565 UINT32 Length;
2566 UINT32 Command;
2568
2572typedef struct {
2573 UINT8 Type;
2574 UINT8 Length;
2575 UINT16 Version;
2576 UINT64 BaseAddress;
2577 UINT64 SharedMemoryRangeLength;
2579 UINT64 DoorbellPreserve;
2580 UINT64 DoorbellWrite;
2581 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CommandCompleteCheckRegister;
2582 UINT64 CommandCompleteCheckMask;
2583 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ErrorStatusRegister;
2584 UINT64 ErrorStatusMask;
2585 UINT32 NominalLatency;
2586 UINT32 MinimumRequestTurnaroundTime;
2588
2592typedef struct {
2593 UINT32 Signature;
2594 // UINT8 CommunicationSubspace[];
2596
2600typedef struct {
2602 UINT8 TriggerCount;
2603 UINT8 Reserved[3];
2604 UINT32 TriggerIdentifierArrayOffset;
2606
2610#define EFI_ACPI_6_4_PLATFORM_DEBUG_TRIGGER_TABLE_REVISION 0x00
2611
2615typedef struct {
2616 UINT16 SubChannelIdentifer : 8;
2617 UINT16 Runtime : 1;
2618 UINT16 WaitForCompletion : 1;
2619 UINT16 TriggerOrder : 1;
2620 UINT16 Reserved : 5;
2622
2626#define EFI_ACPI_6_4_PDTT_PCC_COMMAND_DOORBELL_ONLY 0x00
2627#define EFI_ACPI_6_4_PDTT_PCC_COMMAND_VENDOR_SPECIFIC 0x01
2628
2633
2637typedef struct {
2640
2644#define EFI_ACPI_6_4_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_REVISION 0x03
2645
2649#define EFI_ACPI_6_4_PPTT_TYPE_PROCESSOR 0x00
2650#define EFI_ACPI_6_4_PPTT_TYPE_CACHE 0x01
2651
2655typedef struct {
2656 UINT8 Type;
2657 UINT8 Length;
2658 UINT8 Reserved[2];
2660
2664#define EFI_ACPI_6_4_PPTT_PACKAGE_NOT_PHYSICAL 0x0
2665#define EFI_ACPI_6_4_PPTT_PACKAGE_PHYSICAL 0x1
2666#define EFI_ACPI_6_4_PPTT_PROCESSOR_ID_INVALID 0x0
2667#define EFI_ACPI_6_4_PPTT_PROCESSOR_ID_VALID 0x1
2668#define EFI_ACPI_6_4_PPTT_PROCESSOR_IS_NOT_THREAD 0x0
2669#define EFI_ACPI_6_4_PPTT_PROCESSOR_IS_THREAD 0x1
2670#define EFI_ACPI_6_4_PPTT_NODE_IS_NOT_LEAF 0x0
2671#define EFI_ACPI_6_4_PPTT_NODE_IS_LEAF 0x1
2672#define EFI_ACPI_6_4_PPTT_IMPLEMENTATION_NOT_IDENTICAL 0x0
2673#define EFI_ACPI_6_4_PPTT_IMPLEMENTATION_IDENTICAL 0x1
2674
2678typedef struct {
2679 UINT32 PhysicalPackage : 1;
2680 UINT32 AcpiProcessorIdValid : 1;
2681 UINT32 ProcessorIsAThread : 1;
2682 UINT32 NodeIsALeaf : 1;
2683 UINT32 IdenticalImplementation : 1;
2684 UINT32 Reserved : 27;
2686
2690typedef struct {
2691 UINT8 Type;
2692 UINT8 Length;
2693 UINT8 Reserved[2];
2695 UINT32 Parent;
2696 UINT32 AcpiProcessorId;
2697 UINT32 NumberOfPrivateResources;
2699
2703#define EFI_ACPI_6_4_PPTT_CACHE_SIZE_INVALID 0x0
2704#define EFI_ACPI_6_4_PPTT_CACHE_SIZE_VALID 0x1
2705#define EFI_ACPI_6_4_PPTT_NUMBER_OF_SETS_INVALID 0x0
2706#define EFI_ACPI_6_4_PPTT_NUMBER_OF_SETS_VALID 0x1
2707#define EFI_ACPI_6_4_PPTT_ASSOCIATIVITY_INVALID 0x0
2708#define EFI_ACPI_6_4_PPTT_ASSOCIATIVITY_VALID 0x1
2709#define EFI_ACPI_6_4_PPTT_ALLOCATION_TYPE_INVALID 0x0
2710#define EFI_ACPI_6_4_PPTT_ALLOCATION_TYPE_VALID 0x1
2711#define EFI_ACPI_6_4_PPTT_CACHE_TYPE_INVALID 0x0
2712#define EFI_ACPI_6_4_PPTT_CACHE_TYPE_VALID 0x1
2713#define EFI_ACPI_6_4_PPTT_WRITE_POLICY_INVALID 0x0
2714#define EFI_ACPI_6_4_PPTT_WRITE_POLICY_VALID 0x1
2715#define EFI_ACPI_6_4_PPTT_LINE_SIZE_INVALID 0x0
2716#define EFI_ACPI_6_4_PPTT_LINE_SIZE_VALID 0x1
2717#define EFI_ACPI_6_4_PPTT_CACHE_ID_INVALID 0x0
2718#define EFI_ACPI_6_4_PPTT_CACHE_ID_VALID 0x1
2719
2723typedef struct {
2724 UINT32 SizePropertyValid : 1;
2725 UINT32 NumberOfSetsValid : 1;
2726 UINT32 AssociativityValid : 1;
2727 UINT32 AllocationTypeValid : 1;
2728 UINT32 CacheTypeValid : 1;
2729 UINT32 WritePolicyValid : 1;
2730 UINT32 LineSizeValid : 1;
2731 UINT32 CacheIdValid : 1;
2732 UINT32 Reserved : 24;
2734
2738#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_ALLOCATION_READ 0x0
2739#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_ALLOCATION_WRITE 0x1
2740#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_ALLOCATION_READ_WRITE 0x2
2741#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_CACHE_TYPE_DATA 0x0
2742#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_CACHE_TYPE_INSTRUCTION 0x1
2743#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_CACHE_TYPE_UNIFIED 0x2
2744#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK 0x0
2745#define EFI_ACPI_6_4_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_THROUGH 0x1
2746
2750typedef struct {
2751 UINT8 AllocationType : 2;
2752 UINT8 CacheType : 2;
2753 UINT8 WritePolicy : 1;
2754 UINT8 Reserved : 3;
2756
2760typedef struct {
2761 UINT8 Type;
2762 UINT8 Length;
2763 UINT8 Reserved[2];
2765 UINT32 NextLevelOfCache;
2766 UINT32 Size;
2767 UINT32 NumberOfSets;
2768 UINT8 Associativity;
2770 UINT16 LineSize;
2771 UINT32 CacheId;
2773
2777typedef struct {
2779 // UINT8 PlatformTelemetryRecords[];
2781
2782#define EFI_ACPI_6_4_PLATFORM_HEALTH_ASSESSMENT_TABLE_REVISION 0x01
2783
2787typedef struct {
2788 UINT16 PlatformHealthAssessmentRecordType;
2789 UINT16 RecordLength;
2790 UINT8 Revision;
2791 // UINT8 Data[];
2793
2797#define EFI_ACPI_6_4_PHAT_RECORD_TYPE_FIRMWARE_VERSION_DATA_RECORD 0x0000
2798#define EFI_ACPI_6_4_PHAT_RECORD_TYPE_FIRMWARE_HEALTH_DATA_RECORD 0x0001
2799
2803typedef struct {
2804 GUID ComponentId;
2805 UINT64 VersionValue;
2806 UINT32 ProducerId;
2808
2812typedef struct {
2813 UINT16 PlatformRecordType;
2814 UINT16 RecordLength;
2815 UINT8 Revision;
2816 UINT8 Reserved[3];
2817 UINT32 RecordCount;
2818 // UINT8 PhatVersionElement[];
2820
2821#define EFI_ACPI_6_4_PHAT_FIRMWARE_VERSION_DATA_RECORD_REVISION 0x01
2822
2826typedef struct {
2827 UINT16 PlatformRecordType;
2828 UINT16 RecordLength;
2829 UINT8 Revision;
2830 UINT16 Reserved;
2831 UINT8 AmHealthy;
2832 GUID DeviceSignature;
2833 UINT32 DeviceSpecificDataOffset;
2834 // UINT8 DevicePath[];
2835 // UINT8 DeviceSpecificData[];
2837
2838#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_REVISION 0x01
2839
2843#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_ERRORS_FOUND 0x00
2844#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_NO_ERRORS_FOUND 0x01
2845#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_UNKNOWN 0x02
2846#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_ADVISORY 0x03
2847
2848//
2849// Known table signatures
2850//
2851
2855#define EFI_ACPI_6_4_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
2856
2860#define EFI_ACPI_6_4_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
2861
2865#define EFI_ACPI_6_4_ARM_PERFORMANCE_MONITORING_UNIT_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'M', 'T')
2866
2870#define EFI_ACPI_6_4_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T')
2871
2875#define EFI_ACPI_6_4_BOOT_GRAPHICS_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('B', 'G', 'R', 'T')
2876
2880#define EFI_ACPI_6_4_COMPONENT_DISTANCE_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('C', 'D', 'I', 'T')
2881
2885#define EFI_ACPI_6_4_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')
2886
2890#define EFI_ACPI_6_4_COMPONENT_RESOURCE_ATTRIBUTE_TABLE_SIGNATURE SIGNATURE_32('C', 'R', 'A', 'T')
2891
2895#define EFI_ACPI_6_4_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
2896
2900#define EFI_ACPI_6_4_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
2901
2905#define EFI_ACPI_6_4_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J')
2906
2910#define EFI_ACPI_6_4_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T')
2911
2915#define EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
2916
2920#define EFI_ACPI_6_4_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
2921
2925#define EFI_ACPI_6_4_FIRMWARE_PERFORMANCE_DATA_TABLE_SIGNATURE SIGNATURE_32('F', 'P', 'D', 'T')
2926
2930#define EFI_ACPI_6_4_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('G', 'T', 'D', 'T')
2931
2935#define EFI_ACPI_6_4_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T')
2936
2940#define EFI_ACPI_6_4_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE SIGNATURE_32('H', 'M', 'A', 'T')
2941
2945#define EFI_ACPI_6_4_MEMORY_POWER_STATE_TABLE_SIGNATURE SIGNATURE_32('M', 'P', 'S', 'T')
2946
2950#define EFI_ACPI_6_4_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T')
2951
2955#define EFI_ACPI_6_4_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('N', 'F', 'I', 'T')
2956
2960#define EFI_ACPI_6_4_PLATFORM_DEBUG_TRIGGER_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('P', 'D', 'T', 'T')
2961
2965#define EFI_ACPI_6_4_PLATFORM_MEMORY_TOPOLOGY_TABLE_SIGNATURE SIGNATURE_32('P', 'M', 'T', 'T')
2966
2970#define EFI_ACPI_6_4_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('P', 'P', 'T', 'T')
2971
2975#define EFI_ACPI_6_4_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
2976
2980#define EFI_ACPI_6_4_ACPI_RAS_FEATURE_TABLE_SIGNATURE SIGNATURE_32('R', 'A', 'S', 'F')
2981
2985#define EFI_ACPI_6_4_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
2986
2990#define EFI_ACPI_6_4_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
2991
2995#define EFI_ACPI_6_4_SECURE_DEVICES_TABLE_SIGNATURE SIGNATURE_32('S', 'D', 'E', 'V')
2996
3000#define EFI_ACPI_6_4_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
3001
3005#define EFI_ACPI_6_4_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
3006
3010#define EFI_ACPI_6_4_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
3011
3015#define EFI_ACPI_6_4_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
3016
3020#define EFI_ACPI_6_4_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
3021
3025#define EFI_ACPI_6_4_CORE_SYSTEM_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('C', 'S', 'R', 'T')
3026
3030#define EFI_ACPI_6_4_DEBUG_PORT_2_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', '2')
3031
3035#define EFI_ACPI_6_4_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
3036
3040#define EFI_ACPI_6_4_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R')
3041
3045#define EFI_ACPI_6_4_DYNAMIC_ROOT_OF_TRUST_FOR_MEASUREMENT_TABLE_SIGNATURE SIGNATURE_32('D', 'R', 'T', 'M')
3046
3050#define EFI_ACPI_6_4_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
3051
3055#define EFI_ACPI_6_4_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')
3056
3060#define EFI_ACPI_6_4_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')
3061
3065#define EFI_ACPI_6_4_IO_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('I', 'O', 'R', 'T')
3066
3070#define EFI_ACPI_6_4_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S')
3071
3075#define EFI_ACPI_6_4_LOW_POWER_IDLE_TABLE_STRUCTURE_SIGNATURE SIGNATURE_32('L', 'P', 'I', 'T')
3076
3080#define EFI_ACPI_6_4_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
3081
3085#define EFI_ACPI_6_4_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I')
3086
3090#define EFI_ACPI_6_4_DATA_MANAGEMENT_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'D', 'M')
3091
3095#define EFI_ACPI_6_4_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE SIGNATURE_32('P', 'C', 'C', 'T')
3096
3100#define EFI_ACPI_6_4_PLATFORM_HEALTH_ASSESSMENT_TABLE_SIGNATURE SIGNATURE_32('P', 'H', 'A', 'T')
3101
3105#define EFI_ACPI_6_4_SOFTWARE_DELEGATED_EXCEPTIONS_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'D', 'E', 'I')
3106
3110#define EFI_ACPI_6_4_SOFTWARE_LICENSING_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'C')
3111
3115#define EFI_ACPI_6_4_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
3116
3120#define EFI_ACPI_6_4_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
3121
3125#define EFI_ACPI_6_4_STA_OVERRIDE_TABLE_SIGNATURE SIGNATURE_32('S', 'T', 'A', 'O')
3126
3130#define EFI_ACPI_6_4_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')
3131
3135#define EFI_ACPI_6_4_TRUSTED_COMPUTING_PLATFORM_2_TABLE_SIGNATURE SIGNATURE_32('T', 'P', 'M', '2')
3136
3140#define EFI_ACPI_6_4_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I')
3141
3145#define EFI_ACPI_6_4_WINDOWS_ACPI_EMULATED_DEVICES_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T')
3146
3150#define EFI_ACPI_6_4_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')
3151
3155#define EFI_ACPI_6_4_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')
3156
3160#define EFI_ACPI_6_4_PLATFORM_BINARY_TABLE_SIGNATURE SIGNATURE_32('W', 'P', 'B', 'T')
3161
3165#define EFI_ACPI_6_4_WINDOWS_SMM_SECURITY_MITIGATION_TABLE_SIGNATURE SIGNATURE_32('W', 'S', 'M', 'T')
3166
3170#define EFI_ACPI_6_4_XEN_PROJECT_TABLE_SIGNATURE SIGNATURE_32('X', 'E', 'N', 'V')
3171
3172#pragma pack()
3173
3174#endif
EFI_ACPI_6_4_PCCT_GENERIC_SHARED_MEMORY_REGION_HEADER EFI_ACPI_6_4_PDTT_PCC
Definition: Acpi64.h:2632
EFI_ACPI_6_4_PCCT_SUBSPACE_3_EXTENDED_PCC EFI_ACPI_6_4_PCCT_SUBSPACE_4_EXTENDED_PCC
Definition: Acpi64.h:2558
STATIC EFI_STATUS WaitForCompletion(IN HTTP_DOWNLOAD_CONTEXT *Context, IN OUT BOOLEAN *CallBackComplete)
Definition: Http.c:989
Definition: Base.h:213