iPXE
Acpi40.h
Go to the documentation of this file.
1/** @file
2 ACPI 4.0 definitions from the ACPI Specification Revision 4.0a April 5, 2010
3
4 Copyright (c) 2010 - 2022, Intel Corporation. All rights reserved.<BR>
5 Copyright (C) 2025, Advanced Micro Devices, Inc. All rights reserved.
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7**/
8
9#ifndef _ACPI_4_0_H_
10#define _ACPI_4_0_H_
11
12FILE_LICENCE ( BSD2_PATENT );
13FILE_SECBOOT ( PERMITTED );
14
16
17///
18/// _CSD Revision for ACPI 4.0
19///
20#define EFI_ACPI_4_0_AML_CSD_REVISION 0
21
22///
23/// _CSD NumEntries for ACPI 4.0
24///
25#define EFI_ACPI_4_0_AML_CSD_NUM_ENTRIES 6
26
27///
28/// _PSD Revision for ACPI 4.0
29///
30#define EFI_ACPI_4_0_AML_PSD_REVISION 0
31
32//
33// Ensure proper structure formats
34//
35#pragma pack(1)
36
37///
38/// ACPI 4.0 Generic Address Space definition
39///
47
48//
49// Generic Address Space Address IDs
50//
51#define EFI_ACPI_4_0_SYSTEM_MEMORY 0
52#define EFI_ACPI_4_0_SYSTEM_IO 1
53#define EFI_ACPI_4_0_PCI_CONFIGURATION_SPACE 2
54#define EFI_ACPI_4_0_EMBEDDED_CONTROLLER 3
55#define EFI_ACPI_4_0_SMBUS 4
56#define EFI_ACPI_4_0_FUNCTIONAL_FIXED_HARDWARE 0x7F
57
58//
59// Generic Address Space Access Sizes
60//
61#define EFI_ACPI_4_0_UNDEFINED 0
62#define EFI_ACPI_4_0_BYTE 1
63#define EFI_ACPI_4_0_WORD 2
64#define EFI_ACPI_4_0_DWORD 3
65#define EFI_ACPI_4_0_QWORD 4
66
67//
68// ACPI 4.0 table structures
69//
70
71///
72/// Root System Description Pointer Structure
73///
85
86///
87/// RSD_PTR Revision (as defined in ACPI 4.0b spec.)
88///
89#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION 0x02 ///< ACPISpec (Revision 4.0a) says current value is 2
90
91///
92/// Common table header, this prefaces all ACPI tables, including FACS, but
93/// excluding the RSD PTR structure
94///
99
100//
101// Root 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 UINT32 table pointers.
104//
105
106///
107/// RSDT Revision (as defined in ACPI 4.0 spec.)
108///
109#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
110
111//
112// Extended System Description Table
113// No definition needed as it is a common description table header, the same with
114// EFI_ACPI_DESCRIPTION_HEADER, followed by a variable number of UINT64 table pointers.
115//
116
117///
118/// XSDT Revision (as defined in ACPI 4.0 spec.)
119///
120#define EFI_ACPI_4_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x01
121
122///
123/// Fixed ACPI Description Table Structure (FADT)
124///
125typedef struct {
179
180///
181/// FADT Version (as defined in ACPI 4.0 spec.)
182///
183#define EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 0x04
184
185//
186// Fixed ACPI Description Table Preferred Power Management Profile
187//
188#define EFI_ACPI_4_0_PM_PROFILE_UNSPECIFIED 0
189#define EFI_ACPI_4_0_PM_PROFILE_DESKTOP 1
190#define EFI_ACPI_4_0_PM_PROFILE_MOBILE 2
191#define EFI_ACPI_4_0_PM_PROFILE_WORKSTATION 3
192#define EFI_ACPI_4_0_PM_PROFILE_ENTERPRISE_SERVER 4
193#define EFI_ACPI_4_0_PM_PROFILE_SOHO_SERVER 5
194#define EFI_ACPI_4_0_PM_PROFILE_APPLIANCE_PC 6
195#define EFI_ACPI_4_0_PM_PROFILE_PERFORMANCE_SERVER 7
196
197//
198// Fixed ACPI Description Table Boot Architecture Flags
199// All other bits are reserved and must be set to 0.
200//
201#define EFI_ACPI_4_0_LEGACY_DEVICES BIT0
202#define EFI_ACPI_4_0_8042 BIT1
203#define EFI_ACPI_4_0_VGA_NOT_PRESENT BIT2
204#define EFI_ACPI_4_0_MSI_NOT_SUPPORTED BIT3
205#define EFI_ACPI_4_0_PCIE_ASPM_CONTROLS BIT4
206
207//
208// Fixed ACPI Description Table Fixed Feature Flags
209// All other bits are reserved and must be set to 0.
210//
211#define EFI_ACPI_4_0_WBINVD BIT0
212#define EFI_ACPI_4_0_WBINVD_FLUSH BIT1
213#define EFI_ACPI_4_0_PROC_C1 BIT2
214#define EFI_ACPI_4_0_P_LVL2_UP BIT3
215#define EFI_ACPI_4_0_PWR_BUTTON BIT4
216#define EFI_ACPI_4_0_SLP_BUTTON BIT5
217#define EFI_ACPI_4_0_FIX_RTC BIT6
218#define EFI_ACPI_4_0_RTC_S4 BIT7
219#define EFI_ACPI_4_0_TMR_VAL_EXT BIT8
220#define EFI_ACPI_4_0_DCK_CAP BIT9
221#define EFI_ACPI_4_0_RESET_REG_SUP BIT10
222#define EFI_ACPI_4_0_SEALED_CASE BIT11
223#define EFI_ACPI_4_0_HEADLESS BIT12
224#define EFI_ACPI_4_0_CPU_SW_SLP BIT13
225#define EFI_ACPI_4_0_PCI_EXP_WAK BIT14
226#define EFI_ACPI_4_0_USE_PLATFORM_CLOCK BIT15
227#define EFI_ACPI_4_0_S4_RTC_STS_VALID BIT16
228#define EFI_ACPI_4_0_REMOTE_POWER_ON_CAPABLE BIT17
229#define EFI_ACPI_4_0_FORCE_APIC_CLUSTER_MODEL BIT18
230#define EFI_ACPI_4_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE BIT19
231
232///
233/// Firmware ACPI Control Structure
234///
248
249///
250/// FACS Version (as defined in ACPI 4.0 spec.)
251///
252#define EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION 0x02
253
254///
255/// Firmware Control Structure Feature Flags
256/// All other bits are reserved and must be set to 0.
257///
258#define EFI_ACPI_4_0_S4BIOS_F BIT0
259#define EFI_ACPI_4_0_64BIT_WAKE_SUPPORTED_F BIT1
260
261///
262/// OSPM Enabled Firmware Control Structure Flags
263/// All other bits are reserved and must be set to 0.
264///
265#define EFI_ACPI_4_0_OSPM_64BIT_WAKE__F BIT0
266
267//
268// Differentiated System Description Table,
269// Secondary System Description Table
270// and Persistent System Description Table,
271// no definition needed as they are common description table header, the same with
272// EFI_ACPI_DESCRIPTION_HEADER, followed by a definition block.
273//
274#define EFI_ACPI_4_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
275#define EFI_ACPI_4_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION 0x02
276
277///
278/// Multiple APIC Description Table header definition. The rest of the table
279/// must be defined in a platform specific manner.
280///
286
287///
288/// MADT Revision (as defined in ACPI 4.0 spec.)
289///
290#define EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x03
291
292///
293/// Multiple APIC Flags
294/// All other bits are reserved and must be set to 0.
295///
296#define EFI_ACPI_4_0_PCAT_COMPAT BIT0
297
298//
299// Multiple APIC Description Table APIC structure types
300// All other values between 0x0B an 0xFF are reserved and
301// will be ignored by OSPM.
302//
303#define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC 0x00
304#define EFI_ACPI_4_0_IO_APIC 0x01
305#define EFI_ACPI_4_0_INTERRUPT_SOURCE_OVERRIDE 0x02
306#define EFI_ACPI_4_0_NON_MASKABLE_INTERRUPT_SOURCE 0x03
307#define EFI_ACPI_4_0_LOCAL_APIC_NMI 0x04
308#define EFI_ACPI_4_0_LOCAL_APIC_ADDRESS_OVERRIDE 0x05
309#define EFI_ACPI_4_0_IO_SAPIC 0x06
310#define EFI_ACPI_4_0_LOCAL_SAPIC 0x07
311#define EFI_ACPI_4_0_PLATFORM_INTERRUPT_SOURCES 0x08
312#define EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC 0x09
313#define EFI_ACPI_4_0_LOCAL_X2APIC_NMI 0x0A
314
315//
316// APIC Structure Definitions
317//
318
319///
320/// Processor Local APIC Structure Definition
321///
329
330///
331/// Local APIC Flags. All other bits are reserved and must be 0.
332///
333#define EFI_ACPI_4_0_LOCAL_APIC_ENABLED BIT0
334
335///
336/// IO APIC Structure
337///
346
347///
348/// Interrupt Source Override Structure
349///
358
359///
360/// Platform Interrupt Sources Structure Definition
361///
375
376//
377// MPS INTI flags.
378// All other bits are reserved and must be set to 0.
379//
380#define EFI_ACPI_4_0_POLARITY (3 << 0)
381#define EFI_ACPI_4_0_TRIGGER_MODE (3 << 2)
382
383///
384/// Non-Maskable Interrupt Source Structure
385///
392
393///
394/// Local APIC NMI Structure
395///
403
404///
405/// Local APIC Address Override Structure
406///
413
414///
415/// IO SAPIC Structure
416///
425
426///
427/// Local SAPIC Structure
428/// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
429///
440
441///
442/// Platform Interrupt Sources Structure
443///
455
456///
457/// Platform Interrupt Source Flags.
458/// All other bits are reserved and must be set to 0.
459///
460#define EFI_ACPI_4_0_CPEI_PROCESSOR_OVERRIDE BIT0
461
462///
463/// Processor Local x2APIC Structure Definition
464///
473
474///
475/// Local x2APIC NMI Structure
476///
485
486///
487/// Smart Battery Description Table (SBST)
488///
495
496///
497/// SBST Version (as defined in ACPI 4.0 spec.)
498///
499#define EFI_ACPI_4_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION 0x01
500
501///
502/// Embedded Controller Boot Resources Table (ECDT)
503/// The table is followed by a null terminated ASCII string that contains
504/// a fully qualified reference to the name space object.
505///
513
514///
515/// ECDT Version (as defined in ACPI 4.0 spec.)
516///
517#define EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION 0x01
518
519///
520/// System Resource Affinity Table (SRAT. The rest of the table
521/// must be defined in a platform specific manner.
522///
528
529///
530/// SRAT Version (as defined in ACPI 4.0 spec.)
531///
532#define EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION 0x03
533
534//
535// SRAT structure types.
536// All other values between 0x03 an 0xFF are reserved and
537// will be ignored by OSPM.
538//
539#define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY 0x00
540#define EFI_ACPI_4_0_MEMORY_AFFINITY 0x01
541#define EFI_ACPI_4_0_PROCESSOR_LOCAL_X2APIC_AFFINITY 0x02
542
543///
544/// Processor Local APIC/SAPIC Affinity Structure Definition
545///
556
557///
558/// Local APIC/SAPIC Flags. All other bits are reserved and must be 0.
559///
560#define EFI_ACPI_4_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED (1 << 0)
561
562///
563/// Memory Affinity Structure Definition
564///
578
579//
580// Memory Flags. All other bits are reserved and must be 0.
581//
582#define EFI_ACPI_4_0_MEMORY_ENABLED (1 << 0)
583#define EFI_ACPI_4_0_MEMORY_HOT_PLUGGABLE (1 << 1)
584#define EFI_ACPI_4_0_MEMORY_NONVOLATILE (1 << 2)
585
586///
587/// Processor Local x2APIC Affinity Structure Definition
588///
599
600///
601/// System Locality Distance Information Table (SLIT).
602/// The rest of the table is a matrix.
603///
608
609///
610/// SLIT Version (as defined in ACPI 4.0 spec.)
611///
612#define EFI_ACPI_4_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION 0x01
613
614///
615/// Corrected Platform Error Polling Table (CPEP)
616///
621
622///
623/// CPEP Version (as defined in ACPI 4.0 spec.)
624///
625#define EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_REVISION 0x01
626
627//
628// CPEP processor structure types.
629//
630#define EFI_ACPI_4_0_CPEP_PROCESSOR_APIC_SAPIC 0x00
631
632///
633/// Corrected Platform Error Polling Processor Structure Definition
634///
642
643///
644/// Maximum System Characteristics Table (MSCT)
645///
653
654///
655/// MSCT Version (as defined in ACPI 4.0 spec.)
656///
657#define EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_REVISION 0x01
658
659///
660/// Maximum Proximity Domain Information Structure Definition
661///
670
671///
672/// Boot Error Record Table (BERT)
673///
679
680///
681/// BERT Version (as defined in ACPI 4.0 spec.)
682///
683#define EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_REVISION 0x01
684
685///
686/// Boot Error Region Block Status Definition
687///
696
697///
698/// Boot Error Region Definition
699///
707
708//
709// Boot Error Severity types
710//
711#define EFI_ACPI_4_0_ERROR_SEVERITY_CORRECTABLE 0x00
712#define EFI_ACPI_4_0_ERROR_SEVERITY_RECOVERABLE 0x00
713#define EFI_ACPI_4_0_ERROR_SEVERITY_FATAL 0x01
714#define EFI_ACPI_4_0_ERROR_SEVERITY_CORRECTED 0x02
715#define EFI_ACPI_4_0_ERROR_SEVERITY_NONE 0x03
716
717///
718/// Generic Error Data Entry Definition
719///
730
731///
732/// Generic Error Data Entry Version (as defined in ACPI 4.0 spec.)
733///
734#define EFI_ACPI_4_0_GENERIC_ERROR_DATA_ENTRY_REVISION 0x0201
735
736///
737/// HEST - Hardware Error Source Table
738///
743
744///
745/// HEST Version (as defined in ACPI 4.0 spec.)
746///
747#define EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_REVISION 0x01
748
749//
750// Error Source structure types.
751//
752#define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_EXCEPTION 0x00
753#define EFI_ACPI_4_0_IA32_ARCHITECTURE_CORRECTED_MACHINE_CHECK 0x01
754#define EFI_ACPI_4_0_IA32_ARCHITECTURE_NMI_ERROR 0x02
755#define EFI_ACPI_4_0_PCI_EXPRESS_ROOT_PORT_AER 0x06
756#define EFI_ACPI_4_0_PCI_EXPRESS_DEVICE_AER 0x07
757#define EFI_ACPI_4_0_PCI_EXPRESS_BRIDGE_AER 0x08
758#define EFI_ACPI_4_0_GENERIC_HARDWARE_ERROR 0x09
759
760//
761// Error Source structure flags.
762//
763#define EFI_ACPI_4_0_ERROR_SOURCE_FLAG_FIRMWARE_FIRST (1 << 0)
764#define EFI_ACPI_4_0_ERROR_SOURCE_FLAG_GLOBAL (1 << 1)
765
766///
767/// IA-32 Architecture Machine Check Exception Structure Definition
768///
782
783///
784/// IA-32 Architecture Machine Check Bank Structure Definition
785///
797
798///
799/// IA-32 Architecture Machine Check Bank Structure MCA data format
800///
801#define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_IA32 0x00
802#define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_INTEL64 0x01
803#define EFI_ACPI_4_0_IA32_ARCHITECTURE_MACHINE_CHECK_ERROR_DATA_FORMAT_AMD64 0x02
804
805//
806// Hardware Error Notification types. All other values are reserved
807//
808#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_POLLED 0x00
809#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_EXTERNAL_INTERRUPT 0x01
810#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_LOCAL_INTERRUPT 0x02
811#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_SCI 0x03
812#define EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_NMI 0x04
813
814///
815/// Hardware Error Notification Configuration Write Enable Structure Definition
816///
826
827///
828/// Hardware Error Notification Structure Definition
829///
841
842///
843/// IA-32 Architecture Corrected Machine Check Structure Definition
844///
857
858///
859/// IA-32 Architecture NMI Error Structure Definition
860///
869
870///
871/// PCI Express Root Port AER Structure Definition
872///
892
893///
894/// PCI Express Device AER Structure Definition
895///
914
915///
916/// PCI Express Bridge AER Structure Definition
917///
939
940///
941/// Generic Hardware Error Source Structure Definition
942///
956
957///
958/// Generic Error Status Definition
959///
967
968///
969/// ERST - Error Record Serialization Table
970///
977
978///
979/// ERST Version (as defined in ACPI 4.0 spec.)
980///
981#define EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_REVISION 0x01
982
983///
984/// ERST Serialization Actions
985///
986#define EFI_ACPI_4_0_ERST_BEGIN_WRITE_OPERATION 0x00
987#define EFI_ACPI_4_0_ERST_BEGIN_READ_OPERATION 0x01
988#define EFI_ACPI_4_0_ERST_BEGIN_CLEAR_OPERATION 0x02
989#define EFI_ACPI_4_0_ERST_END_OPERATION 0x03
990#define EFI_ACPI_4_0_ERST_SET_RECORD_OFFSET 0x04
991#define EFI_ACPI_4_0_ERST_EXECUTE_OPERATION 0x05
992#define EFI_ACPI_4_0_ERST_CHECK_BUSY_STATUS 0x06
993#define EFI_ACPI_4_0_ERST_GET_COMMAND_STATUS 0x07
994#define EFI_ACPI_4_0_ERST_GET_RECORD_IDENTIFIER 0x08
995#define EFI_ACPI_4_0_ERST_SET_RECORD_IDENTIFIER 0x09
996#define EFI_ACPI_4_0_ERST_GET_RECORD_COUNT 0x0A
997#define EFI_ACPI_4_0_ERST_BEGIN_DUMMY_WRITE_OPERATION 0x0B
998#define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE 0x0D
999#define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_LENGTH 0x0E
1000#define EFI_ACPI_4_0_ERST_GET_ERROR_LOG_ADDRESS_RANGE_ATTRIBUTES 0x0F
1001
1002///
1003/// ERST Action Command Status
1004///
1005#define EFI_ACPI_4_0_EINJ_STATUS_SUCCESS 0x00
1006#define EFI_ACPI_4_0_EINJ_STATUS_NOT_ENOUGH_SPACE 0x01
1007#define EFI_ACPI_4_0_EINJ_STATUS_HARDWARE_NOT_AVAILABLE 0x02
1008#define EFI_ACPI_4_0_EINJ_STATUS_FAILED 0x03
1009#define EFI_ACPI_4_0_EINJ_STATUS_RECORD_STORE_EMPTY 0x04
1010#define EFI_ACPI_4_0_EINJ_STATUS_RECORD_NOT_FOUND 0x05
1011
1012///
1013/// ERST Serialization Instructions
1014///
1015#define EFI_ACPI_4_0_ERST_READ_REGISTER 0x00
1016#define EFI_ACPI_4_0_ERST_READ_REGISTER_VALUE 0x01
1017#define EFI_ACPI_4_0_ERST_WRITE_REGISTER 0x02
1018#define EFI_ACPI_4_0_ERST_WRITE_REGISTER_VALUE 0x03
1019#define EFI_ACPI_4_0_ERST_NOOP 0x04
1020#define EFI_ACPI_4_0_ERST_LOAD_VAR1 0x05
1021#define EFI_ACPI_4_0_ERST_LOAD_VAR2 0x06
1022#define EFI_ACPI_4_0_ERST_STORE_VAR1 0x07
1023#define EFI_ACPI_4_0_ERST_ADD 0x08
1024#define EFI_ACPI_4_0_ERST_SUBTRACT 0x09
1025#define EFI_ACPI_4_0_ERST_ADD_VALUE 0x0A
1026#define EFI_ACPI_4_0_ERST_SUBTRACT_VALUE 0x0B
1027#define EFI_ACPI_4_0_ERST_STALL 0x0C
1028#define EFI_ACPI_4_0_ERST_STALL_WHILE_TRUE 0x0D
1029#define EFI_ACPI_4_0_ERST_SKIP_NEXT_INSTRUCTION_IF_TRUE 0x0E
1030#define EFI_ACPI_4_0_ERST_GOTO 0x0F
1031#define EFI_ACPI_4_0_ERST_SET_SRC_ADDRESS_BASE 0x10
1032#define EFI_ACPI_4_0_ERST_SET_DST_ADDRESS_BASE 0x11
1033#define EFI_ACPI_4_0_ERST_MOVE_DATA 0x12
1034
1035///
1036/// ERST Instruction Flags
1037///
1038#define EFI_ACPI_4_0_ERST_PRESERVE_REGISTER 0x01
1039
1040///
1041/// ERST Serialization Instruction Entry
1042///
1052
1053///
1054/// EINJ - Error Injection Table
1055///
1063
1064///
1065/// EINJ Version (as defined in ACPI 4.0 spec.)
1066///
1067#define EFI_ACPI_4_0_ERROR_INJECTION_TABLE_REVISION 0x01
1068
1069///
1070/// EINJ Error Injection Actions
1071///
1072#define EFI_ACPI_4_0_EINJ_BEGIN_INJECTION_OPERATION 0x00
1073#define EFI_ACPI_4_0_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE 0x01
1074#define EFI_ACPI_4_0_EINJ_SET_ERROR_TYPE 0x02
1075#define EFI_ACPI_4_0_EINJ_GET_ERROR_TYPE 0x03
1076#define EFI_ACPI_4_0_EINJ_END_OPERATION 0x04
1077#define EFI_ACPI_4_0_EINJ_EXECUTE_OPERATION 0x05
1078#define EFI_ACPI_4_0_EINJ_CHECK_BUSY_STATUS 0x06
1079#define EFI_ACPI_4_0_EINJ_GET_COMMAND_STATUS 0x07
1080#define EFI_ACPI_4_0_EINJ_TRIGGER_ERROR 0xFF
1081
1082///
1083/// EINJ Action Command Status
1084///
1085#define EFI_ACPI_4_0_EINJ_STATUS_SUCCESS 0x00
1086#define EFI_ACPI_4_0_EINJ_STATUS_UNKNOWN_FAILURE 0x01
1087#define EFI_ACPI_4_0_EINJ_STATUS_INVALID_ACCESS 0x02
1088
1089///
1090/// EINJ Error Type Definition
1091///
1092#define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_CORRECTABLE (1 << 0)
1093#define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_NONFATAL (1 << 1)
1094#define EFI_ACPI_4_0_EINJ_ERROR_PROCESSOR_UNCORRECTABLE_FATAL (1 << 2)
1095#define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_CORRECTABLE (1 << 3)
1096#define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_NONFATAL (1 << 4)
1097#define EFI_ACPI_4_0_EINJ_ERROR_MEMORY_UNCORRECTABLE_FATAL (1 << 5)
1098#define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_CORRECTABLE (1 << 6)
1099#define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_NONFATAL (1 << 7)
1100#define EFI_ACPI_4_0_EINJ_ERROR_PCI_EXPRESS_UNCORRECTABLE_FATAL (1 << 8)
1101#define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_CORRECTABLE (1 << 9)
1102#define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_NONFATAL (1 << 10)
1103#define EFI_ACPI_4_0_EINJ_ERROR_PLATFORM_UNCORRECTABLE_FATAL (1 << 11)
1104
1105///
1106/// EINJ Injection Instructions
1107///
1108#define EFI_ACPI_4_0_EINJ_READ_REGISTER 0x00
1109#define EFI_ACPI_4_0_EINJ_READ_REGISTER_VALUE 0x01
1110#define EFI_ACPI_4_0_EINJ_WRITE_REGISTER 0x02
1111#define EFI_ACPI_4_0_EINJ_WRITE_REGISTER_VALUE 0x03
1112#define EFI_ACPI_4_0_EINJ_NOOP 0x04
1113
1114///
1115/// EINJ Instruction Flags
1116///
1117#define EFI_ACPI_4_0_EINJ_PRESERVE_REGISTER 0x01
1118
1119///
1120/// EINJ Injection Instruction Entry
1121///
1131
1132///
1133/// EINJ Trigger Action Table
1134///
1141
1142//
1143// Known table signatures
1144//
1145
1146///
1147/// "RSD PTR " Root System Description Pointer
1148///
1149#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE SIGNATURE_64('R', 'S', 'D', ' ', 'P', 'T', 'R', ' ')
1150
1151///
1152/// "APIC" Multiple APIC Description Table
1153///
1154#define EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('A', 'P', 'I', 'C')
1155
1156///
1157/// "BERT" Boot Error Record Table
1158///
1159#define EFI_ACPI_4_0_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T')
1160
1161///
1162/// "CPEP" Corrected Platform Error Polling Table
1163///
1164#define EFI_ACPI_4_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE SIGNATURE_32('C', 'P', 'E', 'P')
1165
1166///
1167/// "DSDT" Differentiated System Description Table
1168///
1169#define EFI_ACPI_4_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('D', 'S', 'D', 'T')
1170
1171///
1172/// "ECDT" Embedded Controller Boot Resources Table
1173///
1174#define EFI_ACPI_4_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE SIGNATURE_32('E', 'C', 'D', 'T')
1175
1176///
1177/// "EINJ" Error Injection Table
1178///
1179#define EFI_ACPI_4_0_ERROR_INJECTION_TABLE_SIGNATURE SIGNATURE_32('E', 'I', 'N', 'J')
1180
1181///
1182/// "ERST" Error Record Serialization Table
1183///
1184#define EFI_ACPI_4_0_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE SIGNATURE_32('E', 'R', 'S', 'T')
1185
1186///
1187/// "FACP" Fixed ACPI Description Table
1188///
1189#define EFI_ACPI_4_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'P')
1190
1191///
1192/// "FACS" Firmware ACPI Control Structure
1193///
1194#define EFI_ACPI_4_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE SIGNATURE_32('F', 'A', 'C', 'S')
1195
1196///
1197/// "HEST" Hardware Error Source Table
1198///
1199#define EFI_ACPI_4_0_HARDWARE_ERROR_SOURCE_TABLE_SIGNATURE SIGNATURE_32('H', 'E', 'S', 'T')
1200
1201///
1202/// "MSCT" Maximum System Characteristics Table
1203///
1204#define EFI_ACPI_4_0_MAXIMUM_SYSTEM_CHARACTERISTICS_TABLE_SIGNATURE SIGNATURE_32('M', 'S', 'C', 'T')
1205
1206///
1207/// "PSDT" Persistent System Description Table
1208///
1209#define EFI_ACPI_4_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('P', 'S', 'D', 'T')
1210
1211///
1212/// "RSDT" Root System Description Table
1213///
1214#define EFI_ACPI_4_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('R', 'S', 'D', 'T')
1215
1216///
1217/// "SBST" Smart Battery Specification Table
1218///
1219#define EFI_ACPI_4_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE SIGNATURE_32('S', 'B', 'S', 'T')
1220
1221///
1222/// "SLIT" System Locality Information Table
1223///
1224#define EFI_ACPI_4_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE SIGNATURE_32('S', 'L', 'I', 'T')
1225
1226///
1227/// "SRAT" System Resource Affinity Table
1228///
1229#define EFI_ACPI_4_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE SIGNATURE_32('S', 'R', 'A', 'T')
1230
1231///
1232/// "SSDT" Secondary System Description Table
1233///
1234#define EFI_ACPI_4_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('S', 'S', 'D', 'T')
1235
1236///
1237/// "XSDT" Extended System Description Table
1238///
1239#define EFI_ACPI_4_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('X', 'S', 'D', 'T')
1240
1241///
1242/// "BOOT" MS Simple Boot Spec
1243///
1244#define EFI_ACPI_4_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE SIGNATURE_32('B', 'O', 'O', 'T')
1245
1246///
1247/// "DBGP" MS Debug Port Spec
1248///
1249#define EFI_ACPI_4_0_DEBUG_PORT_TABLE_SIGNATURE SIGNATURE_32('D', 'B', 'G', 'P')
1250
1251///
1252/// "DMAR" DMA Remapping Table
1253///
1254#define EFI_ACPI_4_0_DMA_REMAPPING_TABLE_SIGNATURE SIGNATURE_32('D', 'M', 'A', 'R')
1255
1256///
1257/// "ETDT" Event Timer Description Table
1258///
1259#define EFI_ACPI_4_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('E', 'T', 'D', 'T')
1260
1261///
1262/// "HPET" IA-PC High Precision Event Timer Table
1263///
1264#define EFI_ACPI_4_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE SIGNATURE_32('H', 'P', 'E', 'T')
1265
1266///
1267/// "iBFT" iSCSI Boot Firmware Table
1268///
1269#define EFI_ACPI_4_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE SIGNATURE_32('i', 'B', 'F', 'T')
1270
1271///
1272/// "IVRS" I/O Virtualization Reporting Structure
1273///
1274#define EFI_ACPI_4_0_IO_VIRTUALIZATION_REPORTING_STRUCTURE_SIGNATURE SIGNATURE_32('I', 'V', 'R', 'S')
1275
1276///
1277/// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
1278///
1279#define EFI_ACPI_4_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'F', 'G')
1280
1281///
1282/// "MCHI" Management Controller Host Interface Table
1283///
1284#define EFI_ACPI_4_0_MANAGEMENT_CONTROLLER_HOST_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('M', 'C', 'H', 'I')
1285
1286///
1287/// "SPCR" Serial Port Console Redirection Table
1288///
1289#define EFI_ACPI_4_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'C', 'R')
1290
1291///
1292/// "SPMI" Server Platform Management Interface Table
1293///
1294#define EFI_ACPI_4_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE SIGNATURE_32('S', 'P', 'M', 'I')
1295
1296///
1297/// "TCPA" Trusted Computing Platform Alliance Capabilities Table
1298///
1299#define EFI_ACPI_4_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE SIGNATURE_32('T', 'C', 'P', 'A')
1300
1301///
1302/// "UEFI" UEFI ACPI Data Table
1303///
1304#define EFI_ACPI_4_0_UEFI_ACPI_DATA_TABLE_SIGNATURE SIGNATURE_32('U', 'E', 'F', 'I')
1305
1306///
1307/// "WAET" Windows ACPI Enlightenment Table
1308///
1309#define EFI_ACPI_4_0_WINDOWS_ACPI_ENLIGHTENMENT_TABLE_SIGNATURE SIGNATURE_32('W', 'A', 'E', 'T')
1310
1311///
1312/// "WDAT" Watchdog Action Table
1313///
1314#define EFI_ACPI_4_0_WATCHDOG_ACTION_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'A', 'T')
1315
1316///
1317/// "WDRT" Watchdog Resource Table
1318///
1319#define EFI_ACPI_4_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE SIGNATURE_32('W', 'D', 'R', 'T')
1320
1321#pragma pack()
1322
1323#endif
unsigned short UINT16
2-byte unsigned value.
unsigned long long UINT64
8-byte unsigned value.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
ACPI 3.0 definitions from the ACPI Specification Revision 3.0b October 10, 2006.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
Boot Error Record Table (BERT)
Definition Acpi40.h:674
EFI_ACPI_DESCRIPTION_HEADER Header
Definition Acpi40.h:675
Boot Error Region Definition.
Definition Acpi40.h:700
EFI_ACPI_4_0_ERROR_BLOCK_STATUS BlockStatus
Definition Acpi40.h:701
Common table header, this prefaces all ACPI tables, including FACS, but excluding the RSD PTR structu...
Definition Acpi40.h:95
Corrected Platform Error Polling Table (CPEP)
Definition Acpi40.h:617
Corrected Platform Error Polling Processor Structure Definition.
Definition Acpi40.h:635
EINJ Injection Instruction Entry.
Definition Acpi40.h:1122
UINT8 Instruction
Definition Acpi40.h:1124
UINT64 Mask
Definition Acpi40.h:1129
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion
Definition Acpi40.h:1127
UINT8 Flags
Definition Acpi40.h:1125
UINT64 Value
Definition Acpi40.h:1128
UINT8 InjectionAction
Definition Acpi40.h:1123
UINT8 Reserved0
Definition Acpi40.h:1126
EINJ Trigger Action Table.
Definition Acpi40.h:1135
Embedded Controller Boot Resources Table (ECDT) The table is followed by a null terminated ASCII stri...
Definition Acpi40.h:506
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE EcData
Definition Acpi40.h:509
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE EcControl
Definition Acpi40.h:508
Boot Error Region Block Status Definition.
Definition Acpi40.h:688
EINJ - Error Injection Table.
Definition Acpi40.h:1056
EFI_ACPI_DESCRIPTION_HEADER Header
Definition Acpi40.h:1057
ERST - Error Record Serialization Table.
Definition Acpi40.h:971
ERST Serialization Instruction Entry.
Definition Acpi40.h:1043
UINT8 Flags
Definition Acpi40.h:1046
UINT8 SerializationAction
Definition Acpi40.h:1044
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion
Definition Acpi40.h:1048
UINT8 Reserved0
Definition Acpi40.h:1047
UINT64 Mask
Definition Acpi40.h:1050
UINT8 Instruction
Definition Acpi40.h:1045
UINT64 Value
Definition Acpi40.h:1049
Firmware ACPI Control Structure.
Definition Acpi40.h:235
Fixed ACPI Description Table Structure (FADT)
Definition Acpi40.h:125
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk
Definition Acpi40.h:174
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk
Definition Acpi40.h:176
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk
Definition Acpi40.h:171
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk
Definition Acpi40.h:172
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk
Definition Acpi40.h:173
EFI_ACPI_DESCRIPTION_HEADER Header
Definition Acpi40.h:126
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk
Definition Acpi40.h:170
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk
Definition Acpi40.h:175
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk
Definition Acpi40.h:177
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE ResetReg
Definition Acpi40.h:165
ACPI 4.0 Generic Address Space definition.
Definition Acpi40.h:40
Generic Error Data Entry Definition.
Definition Acpi40.h:720
UINT8 FruId[16]
Definition Acpi40.h:727
UINT16 Revision
Definition Acpi40.h:723
UINT8 ValidationBits
Definition Acpi40.h:724
UINT8 Flags
Definition Acpi40.h:725
UINT8 FruText[20]
Definition Acpi40.h:728
UINT8 SectionType[16]
Definition Acpi40.h:721
UINT32 ErrorSeverity
Definition Acpi40.h:722
UINT32 ErrorDataLength
Definition Acpi40.h:726
Generic Error Status Definition.
Definition Acpi40.h:960
EFI_ACPI_4_0_ERROR_BLOCK_STATUS BlockStatus
Definition Acpi40.h:961
Generic Hardware Error Source Structure Definition.
Definition Acpi40.h:943
EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure
Definition Acpi40.h:953
EFI_ACPI_4_0_GENERIC_ADDRESS_STRUCTURE ErrorStatusAddress
Definition Acpi40.h:952
Hardware Error Notification Configuration Write Enable Structure Definition.
Definition Acpi40.h:817
Hardware Error Notification Structure Definition.
Definition Acpi40.h:830
EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_CONFIGURATION_WRITE_ENABLE_STRUCTURE ConfigurationWriteEnable
Definition Acpi40.h:833
HEST - Hardware Error Source Table.
Definition Acpi40.h:739
EFI_ACPI_DESCRIPTION_HEADER Header
Definition Acpi40.h:740
IA-32 Architecture Corrected Machine Check Structure Definition.
Definition Acpi40.h:845
EFI_ACPI_4_0_HARDWARE_ERROR_NOTIFICATION_STRUCTURE NotificationStructure
Definition Acpi40.h:853
IA-32 Architecture Machine Check Bank Structure Definition.
Definition Acpi40.h:786
IA-32 Architecture Machine Check Exception Structure Definition.
Definition Acpi40.h:769
IA-32 Architecture NMI Error Structure Definition.
Definition Acpi40.h:861
Interrupt Source Override Structure.
Definition Acpi40.h:350
IO APIC Structure.
Definition Acpi40.h:338
IO SAPIC Structure.
Definition Acpi40.h:417
Local APIC Address Override Structure.
Definition Acpi40.h:407
Local APIC NMI Structure.
Definition Acpi40.h:396
Local x2APIC NMI Structure.
Definition Acpi40.h:477
Maximum Proximity Domain Information Structure Definition.
Definition Acpi40.h:662
Maximum System Characteristics Table (MSCT)
Definition Acpi40.h:646
Memory Affinity Structure Definition.
Definition Acpi40.h:565
Multiple APIC Description Table header definition.
Definition Acpi40.h:281
Non-Maskable Interrupt Source Structure.
Definition Acpi40.h:386
PCI Express Bridge AER Structure Definition.
Definition Acpi40.h:918
PCI Express Device AER Structure Definition.
Definition Acpi40.h:896
PCI Express Root Port AER Structure Definition.
Definition Acpi40.h:873
Platform Interrupt Sources Structure Definition.
Definition Acpi40.h:362
Platform Interrupt Sources Structure.
Definition Acpi40.h:444
Processor Local APIC/SAPIC Affinity Structure Definition.
Definition Acpi40.h:546
Processor Local APIC Structure Definition.
Definition Acpi40.h:322
Local SAPIC Structure This struct followed by a null-terminated ASCII string - ACPI Processor UID Str...
Definition Acpi40.h:430
Processor Local x2APIC Affinity Structure Definition.
Definition Acpi40.h:589
Processor Local x2APIC Structure Definition.
Definition Acpi40.h:465
Root System Description Pointer Structure.
Definition Acpi40.h:74
Smart Battery Description Table (SBST)
Definition Acpi40.h:489
EFI_ACPI_DESCRIPTION_HEADER Header
Definition Acpi40.h:490
System Locality Distance Information Table (SLIT).
Definition Acpi40.h:604
System Resource Affinity Table (SRAT.
Definition Acpi40.h:523
The common ACPI description table header.
Definition Acpi10.h:30