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