Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 ==================
0004 APEI output format
0005 ==================
0006 
0007 APEI uses printk as hardware error reporting interface, the output
0008 format is as follow::
0009 
0010         <error record> :=
0011         APEI generic hardware error status
0012         severity: <integer>, <severity string>
0013         section: <integer>, severity: <integer>, <severity string>
0014         flags: <integer>
0015         <section flags strings>
0016         fru_id: <uuid string>
0017         fru_text: <string>
0018         section_type: <section type string>
0019         <section data>
0020 
0021         <severity string>* := recoverable | fatal | corrected | info
0022 
0023         <section flags strings># :=
0024         [primary][, containment warning][, reset][, threshold exceeded]\
0025         [, resource not accessible][, latent error]
0026 
0027         <section type string> := generic processor error | memory error | \
0028         PCIe error | unknown, <uuid string>
0029 
0030         <section data> :=
0031         <generic processor section data> | <memory section data> | \
0032         <pcie section data> | <null>
0033 
0034         <generic processor section data> :=
0035         [processor_type: <integer>, <proc type string>]
0036         [processor_isa: <integer>, <proc isa string>]
0037         [error_type: <integer>
0038         <proc error type strings>]
0039         [operation: <integer>, <proc operation string>]
0040         [flags: <integer>
0041         <proc flags strings>]
0042         [level: <integer>]
0043         [version_info: <integer>]
0044         [processor_id: <integer>]
0045         [target_address: <integer>]
0046         [requestor_id: <integer>]
0047         [responder_id: <integer>]
0048         [IP: <integer>]
0049 
0050         <proc type string>* := IA32/X64 | IA64
0051 
0052         <proc isa string>* := IA32 | IA64 | X64
0053 
0054         <processor error type strings># :=
0055         [cache error][, TLB error][, bus error][, micro-architectural error]
0056 
0057         <proc operation string>* := unknown or generic | data read | data write | \
0058         instruction execution
0059 
0060         <proc flags strings># :=
0061         [restartable][, precise IP][, overflow][, corrected]
0062 
0063         <memory section data> :=
0064         [error_status: <integer>]
0065         [physical_address: <integer>]
0066         [physical_address_mask: <integer>]
0067         [node: <integer>]
0068         [card: <integer>]
0069         [module: <integer>]
0070         [bank: <integer>]
0071         [device: <integer>]
0072         [row: <integer>]
0073         [column: <integer>]
0074         [bit_position: <integer>]
0075         [requestor_id: <integer>]
0076         [responder_id: <integer>]
0077         [target_id: <integer>]
0078         [error_type: <integer>, <mem error type string>]
0079 
0080         <mem error type string>* :=
0081         unknown | no error | single-bit ECC | multi-bit ECC | \
0082         single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
0083         target abort | parity error | watchdog timeout | invalid address | \
0084         mirror Broken | memory sparing | scrub corrected error | \
0085         scrub uncorrected error
0086 
0087         <pcie section data> :=
0088         [port_type: <integer>, <pcie port type string>]
0089         [version: <integer>.<integer>]
0090         [command: <integer>, status: <integer>]
0091         [device_id: <integer>:<integer>:<integer>.<integer>
0092         slot: <integer>
0093         secondary_bus: <integer>
0094         vendor_id: <integer>, device_id: <integer>
0095         class_code: <integer>]
0096         [serial number: <integer>, <integer>]
0097         [bridge: secondary_status: <integer>, control: <integer>]
0098         [aer_status: <integer>, aer_mask: <integer>
0099         <aer status string>
0100         [aer_uncor_severity: <integer>]
0101         aer_layer=<aer layer string>, aer_agent=<aer agent string>
0102         aer_tlp_header: <integer> <integer> <integer> <integer>]
0103 
0104         <pcie port type string>* := PCIe end point | legacy PCI end point | \
0105         unknown | unknown | root port | upstream switch port | \
0106         downstream switch port | PCIe to PCI/PCI-X bridge | \
0107         PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
0108         root complex event collector
0109 
0110         if section severity is fatal or recoverable
0111         <aer status string># :=
0112         unknown | unknown | unknown | unknown | Data Link Protocol | \
0113         unknown | unknown | unknown | unknown | unknown | unknown | unknown | \
0114         Poisoned TLP | Flow Control Protocol | Completion Timeout | \
0115         Completer Abort | Unexpected Completion | Receiver Overflow | \
0116         Malformed TLP | ECRC | Unsupported Request
0117         else
0118         <aer status string># :=
0119         Receiver Error | unknown | unknown | unknown | unknown | unknown | \
0120         Bad TLP | Bad DLLP | RELAY_NUM Rollover | unknown | unknown | unknown | \
0121         Replay Timer Timeout | Advisory Non-Fatal
0122         fi
0123 
0124         <aer layer string> :=
0125         Physical Layer | Data Link Layer | Transaction Layer
0126 
0127         <aer agent string> :=
0128         Receiver ID | Requester ID | Completer ID | Transmitter ID
0129 
0130 Where, [] designate corresponding content is optional
0131 
0132 All <field string> description with * has the following format::
0133 
0134         field: <integer>, <field string>
0135 
0136 Where value of <integer> should be the position of "string" in <field
0137 string> description. Otherwise, <field string> will be "unknown".
0138 
0139 All <field strings> description with # has the following format::
0140 
0141         field: <integer>
0142         <field strings>
0143 
0144 Where each string in <fields strings> corresponding to one set bit of
0145 <integer>. The bit position is the position of "string" in <field
0146 strings> description.
0147 
0148 For more detailed explanation of every field, please refer to UEFI
0149 specification version 2.3 or later, section Appendix N: Common
0150 Platform Error Record.