Now that we have the basic stuff merged on QEMU, add more
commands to scripts/ghes_inject.py. After this patch, this
tool will support the following commands:
arm Inject an ARM processor error CPER, compatible with
UEFI 2.9A Errata.
pcie-bus Inject a PCIe bus error CPER
fuzzy-test (fuzzy) Inject fuzzy test CPER packets
raw-error (raw) Inject CPER records from previously recorded ones.
Where arm is a pre-existing one.
The pcie-bus command injects a PCIe bus error - currently not supported
on Linux (GUID: c5753963-3b84-4095-bf78-eddad3f9c9dd).
The fuzzy-test command allows injecting one or more CPER records
for all GUID types supported on UEFI 2.11, with its contents being
either zero or random, and with the payload size that can also be
random.
The raw-error command allow reproducing a CPER from a text file.
It is helpful in conjunction with fuzzy-test to re-test the OSPM
after some fixes.
Besides the commands, a new helper logic was added at
scripts/ghes_decode.py: when the tool is called with the
--debug command line argument, it will translate the injected
record, allowing to compare what it was injected with what
the OSPM/userspace tools would interpret.
The first 6 patches on this series improve the qmp_helper
logic to support the new functionality.
The next 6 patches add the extra functionality to ghes_inject.
The final patch improves its help message when called without
a command.
---
v2:
- the bus error injection is for PCI/PCI-X, not PCIe, so
the command was renamed;
- added notes that not all CXL types may occur in practice;
- removed a field from common_fields at DecodeGhesEntry
decode class and make it more robust;
- some cleanups at patch description.
Mauro Carvalho Chehab (13):
scripts/qmp_helper: add a return code to send_cper
scripts/qmp_helper: add missing CXL UEFI GUID
scripts/qmp_helper: add support for FRU Memory Poison
scripts/qmp_helper: make send_cper() more generic
scripts/qmp_helper: fix raw_data logic
scripts/qmp_helper: add support for a timeout logic
scripts/ghes_inject: add a logic to decode CPER
scripts/ghes_inject: exit 1 if command was not sent
scripts/ghes_inject: add a handler for PCI/PCI-X bus error
scripts/ghes_inject: add support for fuzzy logic testing
scripts/ghes_inject: add a raw error inject command
scripts/ghes_inject: print help if no command specified
scripts/ghes_inject: improve help message
MAINTAINERS | 4 +
scripts/arm_processor_error.py | 8 +-
scripts/fuzzy_error.py | 208 ++++++
scripts/ghes_decode.py | 1158 ++++++++++++++++++++++++++++++++
scripts/ghes_inject.py | 30 +-
scripts/pci_bus_error.py | 148 ++++
scripts/qmp_helper.py | 164 ++++-
scripts/raw_error.py | 175 +++++
8 files changed, 1857 insertions(+), 38 deletions(-)
create mode 100644 scripts/fuzzy_error.py
create mode 100644 scripts/ghes_decode.py
create mode 100644 scripts/pci_bus_error.py
create mode 100644 scripts/raw_error.py
--
2.52.0