.. SPDX-License-Identifier: GPL-2.0 ================== APEI output format ================== APEI uses printk as hardware error reporting interface, the output format is as follow:: := APEI generic hardware error status severity: , section: , severity: , flags:
fru_id: fru_text: section_type:
* := recoverable | fatal | corrected | info
# := [primary][, containment warning][, reset][, threshold exceeded]\ [, resource not accessible][, latent error]
:= generic processor error | memory error | \ PCIe error | unknown,
:= | | \ | := [processor_type: , ] [processor_isa: , ] [error_type: ] [operation: , ] [flags: ] [level: ] [version_info: ] [processor_id: ] [target_address: ] [requestor_id: ] [responder_id: ] [IP: ] * := IA32/X64 | IA64 * := IA32 | IA64 | X64 # := [cache error][, TLB error][, bus error][, micro-architectural error] * := unknown or generic | data read | data write | \ instruction execution # := [restartable][, precise IP][, overflow][, corrected] := [error_status: ] [physical_address: ] [physical_address_mask: ] [node: ] [card: ] [module: ] [bank: ] [device: ] [row: ] [column: ] [bit_position: ] [requestor_id: ] [responder_id: ] [target_id: ] [error_type: , ] * := unknown | no error | single-bit ECC | multi-bit ECC | \ single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \ target abort | parity error | watchdog timeout | invalid address | \ mirror Broken | memory sparing | scrub corrected error | \ scrub uncorrected error := [port_type: , ] [version: .] [command: , status: ] [device_id: ::. slot: secondary_bus: vendor_id: , device_id: class_code: ] [serial number: , ] [bridge: secondary_status: , control: ] [aer_status: , aer_mask: [aer_uncor_severity: ] aer_layer=, aer_agent= aer_tlp_header: ] * := PCIe end point | legacy PCI end point | \ unknown | unknown | root port | upstream switch port | \ downstream switch port | PCIe to PCI/PCI-X bridge | \ PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \ root complex event collector if section severity is fatal or recoverable # := unknown | unknown | unknown | unknown | Data Link Protocol | \ unknown | unknown | unknown | unknown | unknown | unknown | unknown | \ Poisoned TLP | Flow Control Protocol | Completion Timeout | \ Completer Abort | Unexpected Completion | Receiver Overflow | \ Malformed TLP | ECRC | Unsupported Request else # := Receiver Error | unknown | unknown | unknown | unknown | unknown | \ Bad TLP | Bad DLLP | RELAY_NUM Rollover | unknown | unknown | unknown | \ Replay Timer Timeout | Advisory Non-Fatal fi := Physical Layer | Data Link Layer | Transaction Layer := Receiver ID | Requester ID | Completer ID | Transmitter ID Where, [] designate corresponding content is optional All description with * has the following format:: field: , Where value of should be the position of "string" in description. Otherwise, will be "unknown". All description with # has the following format:: field: Where each string in corresponding to one set bit of . The bit position is the position of "string" in description. For more detailed explanation of every field, please refer to UEFI specification version 2.3 or later, section Appendix N: Common Platform Error Record.