123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- APEI output format
- ~~~~~~~~~~~~~~~~~~
- APEI uses printk as hardware error reporting interface, the output
- format is as follow.
- <error record> :=
- APEI generic hardware error status
- severity: <integer>, <severity string>
- section: <integer>, severity: <integer>, <severity string>
- flags: <integer>
- <section flags strings>
- fru_id: <uuid string>
- fru_text: <string>
- section_type: <section type string>
- <section data>
- <severity string>* := recoverable | fatal | corrected | info
- <section flags strings># :=
- [primary][, containment warning][, reset][, threshold exceeded]\
- [, resource not accessible][, latent error]
- <section type string> := generic processor error | memory error | \
- PCIe error | unknown, <uuid string>
- <section data> :=
- <generic processor section data> | <memory section data> | \
- <pcie section data> | <null>
- <generic processor section data> :=
- [processor_type: <integer>, <proc type string>]
- [processor_isa: <integer>, <proc isa string>]
- [error_type: <integer>
- <proc error type strings>]
- [operation: <integer>, <proc operation string>]
- [flags: <integer>
- <proc flags strings>]
- [level: <integer>]
- [version_info: <integer>]
- [processor_id: <integer>]
- [target_address: <integer>]
- [requestor_id: <integer>]
- [responder_id: <integer>]
- [IP: <integer>]
- <proc type string>* := IA32/X64 | IA64
- <proc isa string>* := IA32 | IA64 | X64
- <processor error type strings># :=
- [cache error][, TLB error][, bus error][, micro-architectural error]
- <proc operation string>* := unknown or generic | data read | data write | \
- instruction execution
- <proc flags strings># :=
- [restartable][, precise IP][, overflow][, corrected]
- <memory section data> :=
- [error_status: <integer>]
- [physical_address: <integer>]
- [physical_address_mask: <integer>]
- [node: <integer>]
- [card: <integer>]
- [module: <integer>]
- [bank: <integer>]
- [device: <integer>]
- [row: <integer>]
- [column: <integer>]
- [bit_position: <integer>]
- [requestor_id: <integer>]
- [responder_id: <integer>]
- [target_id: <integer>]
- [error_type: <integer>, <mem error type string>]
- <mem error type string>* :=
- 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
- <pcie section data> :=
- [port_type: <integer>, <pcie port type string>]
- [version: <integer>.<integer>]
- [command: <integer>, status: <integer>]
- [device_id: <integer>:<integer>:<integer>.<integer>
- slot: <integer>
- secondary_bus: <integer>
- vendor_id: <integer>, device_id: <integer>
- class_code: <integer>]
- [serial number: <integer>, <integer>]
- [bridge: secondary_status: <integer>, control: <integer>]
- [aer_status: <integer>, aer_mask: <integer>
- <aer status string>
- [aer_uncor_severity: <integer>]
- aer_layer=<aer layer string>, aer_agent=<aer agent string>
- aer_tlp_header: <integer> <integer> <integer> <integer>]
- <pcie port type string>* := 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
- <aer status string># :=
- 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
- <aer status string># :=
- Receiver Error | unknown | unknown | unknown | unknown | unknown | \
- Bad TLP | Bad DLLP | RELAY_NUM Rollover | unknown | unknown | unknown | \
- Replay Timer Timeout | Advisory Non-Fatal
- fi
- <aer layer string> :=
- Physical Layer | Data Link Layer | Transaction Layer
- <aer agent string> :=
- Receiver ID | Requester ID | Completer ID | Transmitter ID
- Where, [] designate corresponding content is optional
- All <field string> description with * has the following format:
- field: <integer>, <field string>
- Where value of <integer> should be the position of "string" in <field
- string> description. Otherwise, <field string> will be "unknown".
- All <field strings> description with # has the following format:
- field: <integer>
- <field strings>
- Where each string in <fields strings> corresponding to one set bit of
- <integer>. The bit position is the position of "string" in <field
- strings> 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.
|