1 APEI output format 2 ~~~~~~~~~~~~~~~~~~ 3 4APEI uses printk as hardware error reporting interface, the output 5format is as follow. 6 7<error record> := 8APEI generic hardware error status 9severity: <integer>, <severity string> 10section: <integer>, severity: <integer>, <severity string> 11flags: <integer> 12<section flags strings> 13fru_id: <uuid string> 14fru_text: <string> 15section_type: <section type string> 16<section data> 17 18<severity string>* := recoverable | fatal | corrected | info 19 20<section flags strings># := 21[primary][, containment warning][, reset][, threshold exceeded]\ 22[, resource not accessible][, latent error] 23 24<section type string> := generic processor error | memory error | \ 25PCIe error | unknown, <uuid string> 26 27<section data> := 28<generic processor section data> | <memory section data> | \ 29<pcie section data> | <null> 30 31<generic processor section data> := 32[processor_type: <integer>, <proc type string>] 33[processor_isa: <integer>, <proc isa string>] 34[error_type: <integer> 35<proc error type strings>] 36[operation: <integer>, <proc operation string>] 37[flags: <integer> 38<proc flags strings>] 39[level: <integer>] 40[version_info: <integer>] 41[processor_id: <integer>] 42[target_address: <integer>] 43[requestor_id: <integer>] 44[responder_id: <integer>] 45[IP: <integer>] 46 47<proc type string>* := IA32/X64 | IA64 48 49<proc isa string>* := IA32 | IA64 | X64 50 51<processor error type strings># := 52[cache error][, TLB error][, bus error][, micro-architectural error] 53 54<proc operation string>* := unknown or generic | data read | data write | \ 55instruction execution 56 57<proc flags strings># := 58[restartable][, precise IP][, overflow][, corrected] 59 60<memory section data> := 61[error_status: <integer>] 62[physical_address: <integer>] 63[physical_address_mask: <integer>] 64[node: <integer>] 65[card: <integer>] 66[module: <integer>] 67[bank: <integer>] 68[device: <integer>] 69[row: <integer>] 70[column: <integer>] 71[bit_position: <integer>] 72[requestor_id: <integer>] 73[responder_id: <integer>] 74[target_id: <integer>] 75[error_type: <integer>, <mem error type string>] 76 77<mem error type string>* := 78unknown | no error | single-bit ECC | multi-bit ECC | \ 79single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \ 80target abort | parity error | watchdog timeout | invalid address | \ 81mirror Broken | memory sparing | scrub corrected error | \ 82scrub uncorrected error 83 84<pcie section data> := 85[port_type: <integer>, <pcie port type string>] 86[version: <integer>.<integer>] 87[command: <integer>, status: <integer>] 88[device_id: <integer>:<integer>:<integer>.<integer> 89slot: <integer> 90secondary_bus: <integer> 91vendor_id: <integer>, device_id: <integer> 92class_code: <integer>] 93[serial number: <integer>, <integer>] 94[bridge: secondary_status: <integer>, control: <integer>] 95[aer_status: <integer>, aer_mask: <integer> 96<aer status string> 97[aer_uncor_severity: <integer>] 98aer_layer=<aer layer string>, aer_agent=<aer agent string> 99aer_tlp_header: <integer> <integer> <integer> <integer>] 100 101<pcie port type string>* := PCIe end point | legacy PCI end point | \ 102unknown | unknown | root port | upstream switch port | \ 103downstream switch port | PCIe to PCI/PCI-X bridge | \ 104PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \ 105root complex event collector 106 107if section severity is fatal or recoverable 108<aer status string># := 109unknown | unknown | unknown | unknown | Data Link Protocol | \ 110unknown | unknown | unknown | unknown | unknown | unknown | unknown | \ 111Poisoned TLP | Flow Control Protocol | Completion Timeout | \ 112Completer Abort | Unexpected Completion | Receiver Overflow | \ 113Malformed TLP | ECRC | Unsupported Request 114else 115<aer status string># := 116Receiver Error | unknown | unknown | unknown | unknown | unknown | \ 117Bad TLP | Bad DLLP | RELAY_NUM Rollover | unknown | unknown | unknown | \ 118Replay Timer Timeout | Advisory Non-Fatal 119fi 120 121<aer layer string> := 122Physical Layer | Data Link Layer | Transaction Layer 123 124<aer agent string> := 125Receiver ID | Requester ID | Completer ID | Transmitter ID 126 127Where, [] designate corresponding content is optional 128 129All <field string> description with * has the following format: 130 131field: <integer>, <field string> 132 133Where value of <integer> should be the position of "string" in <field 134string> description. Otherwise, <field string> will be "unknown". 135 136All <field strings> description with # has the following format: 137 138field: <integer> 139<field strings> 140 141Where each string in <fields strings> corresponding to one set bit of 142<integer>. The bit position is the position of "string" in <field 143strings> description. 144 145For more detailed explanation of every field, please refer to UEFI 146specification version 2.3 or later, section Appendix N: Common 147Platform Error Record. 148