1 .. SPDX-License-Identifier: GPL-2.0
7 APEI uses printk as hardware error reporting interface, the output
11 APEI generic hardware error status
12 severity: <integer>, <severity string>
13 section: <integer>, severity: <integer>, <severity string>
15 <section flags strings>
18 section_type: <section type string>
21 <severity string>* := recoverable | fatal | corrected | info
23 <section flags strings># :=
24 [primary][, containment warning][, reset][, threshold exceeded]\
25 [, resource not accessible][, latent error]
27 <section type string> := generic processor error | memory error | \
28 PCIe error | unknown, <uuid string>
31 <generic processor section data> | <memory section data> | \
32 <pcie section data> | <null>
34 <generic processor section data> :=
35 [processor_type: <integer>, <proc type string>]
36 [processor_isa: <integer>, <proc isa string>]
37 [error_type: <integer>
38 <proc error type strings>]
39 [operation: <integer>, <proc operation string>]
43 [version_info: <integer>]
44 [processor_id: <integer>]
45 [target_address: <integer>]
46 [requestor_id: <integer>]
47 [responder_id: <integer>]
50 <proc type string>* := IA32/X64 | IA64
52 <proc isa string>* := IA32 | IA64 | X64
54 <processor error type strings># :=
55 [cache error][, TLB error][, bus error][, micro-architectural error]
57 <proc operation string>* := unknown or generic | data read | data write | \
60 <proc flags strings># :=
61 [restartable][, precise IP][, overflow][, corrected]
63 <memory section data> :=
64 [error_status: <integer>]
65 [physical_address: <integer>]
66 [physical_address_mask: <integer>]
74 [bit_position: <integer>]
75 [requestor_id: <integer>]
76 [responder_id: <integer>]
77 [target_id: <integer>]
78 [error_type: <integer>, <mem error type string>]
80 <mem error type string>* :=
81 unknown | no error | single-bit ECC | multi-bit ECC | \
82 single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
83 target abort | parity error | watchdog timeout | invalid address | \
84 mirror Broken | memory sparing | scrub corrected error | \
85 scrub uncorrected error
87 <pcie section data> :=
88 [port_type: <integer>, <pcie port type string>]
89 [version: <integer>.<integer>]
90 [command: <integer>, status: <integer>]
91 [device_id: <integer>:<integer>:<integer>.<integer>
93 secondary_bus: <integer>
94 vendor_id: <integer>, device_id: <integer>
95 class_code: <integer>]
96 [serial number: <integer>, <integer>]
97 [bridge: secondary_status: <integer>, control: <integer>]
98 [aer_status: <integer>, aer_mask: <integer>
100 [aer_uncor_severity: <integer>]
101 aer_layer=<aer layer string>, aer_agent=<aer agent string>
102 aer_tlp_header: <integer> <integer> <integer> <integer>]
104 <pcie port type string>* := PCIe end point | legacy PCI end point | \
105 unknown | unknown | root port | upstream switch port | \
106 downstream switch port | PCIe to PCI/PCI-X bridge | \
107 PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
108 root complex event collector
110 if section severity is fatal or recoverable
111 <aer status string># :=
112 unknown | unknown | unknown | unknown | Data Link Protocol | \
113 unknown | unknown | unknown | unknown | unknown | unknown | unknown | \
114 Poisoned TLP | Flow Control Protocol | Completion Timeout | \
115 Completer Abort | Unexpected Completion | Receiver Overflow | \
116 Malformed TLP | ECRC | Unsupported Request
118 <aer status string># :=
119 Receiver Error | unknown | unknown | unknown | unknown | unknown | \
120 Bad TLP | Bad DLLP | RELAY_NUM Rollover | unknown | unknown | unknown | \
121 Replay Timer Timeout | Advisory Non-Fatal
124 <aer layer string> :=
125 Physical Layer | Data Link Layer | Transaction Layer
127 <aer agent string> :=
128 Receiver ID | Requester ID | Completer ID | Transmitter ID
130 Where, [] designate corresponding content is optional
132 All <field string> description with * has the following format::
134 field: <integer>, <field string>
136 Where value of <integer> should be the position of "string" in <field
137 string> description. Otherwise, <field string> will be "unknown".
139 All <field strings> description with # has the following format::
144 Where each string in <fields strings> corresponding to one set bit of
145 <integer>. The bit position is the position of "string" in <field
146 strings> description.
148 For more detailed explanation of every field, please refer to UEFI
149 specification version 2.3 or later, section Appendix N: Common
150 Platform Error Record.