Now that the ghes preparation patches were merged, let's add support for error injection.
I'm opting to fold two patch series into one here: 1. https://lore.kernel.org/qemu-devel/20250113130854.848688-1-mchehab+hua...@kernel.org/ It is the first 5 patches containing changes to the math used to calculate offsets at HEST table and hardware_error firmware file, together with its migration code. Migration tested with both latest QEMU released kernel and upstream, on both directions. There were no changes on this series since last submission, except for a conflict resolution at the migration table, due to upstream changes. For more details, se the post of my previous submission. 2. It follows 6 patches from: https://lore.kernel.org/qemu-devel/cover.1726293808.git.mchehab+hua...@kernel.org/ containing the error injection code and script. They add a new QAPI to allow injecting GHESv2 errors, and a script using such QAPI to inject ARM Processor Error records. PS.: If I'm counting well, this is the 18th version of this series rebase. Mauro Carvalho Chehab (11): acpi/ghes: Prepare to support multiple sources on ghes acpi/ghes: add a firmware file with HEST address acpi/ghes: Use HEST table offsets when preparing GHES records acpi/generic_event_device: Update GHES migration to cover hest addr acpi/generic_event_device: add logic to detect if HEST addr is available acpi/ghes: add a notifier to notify when error data is ready acpi/ghes: Cleanup the code which gets ghes ged state acpi/generic_event_device: add an APEI error device arm/virt: Wire up a GED error device for ACPI / GHES qapi/acpi-hest: add an interface to do generic CPER error injection scripts/ghes_inject: add a script to generate GHES error inject MAINTAINERS | 10 + hw/acpi/Kconfig | 5 + hw/acpi/aml-build.c | 10 + hw/acpi/generic_event_device.c | 38 ++ hw/acpi/ghes-stub.c | 4 +- hw/acpi/ghes.c | 184 +++++-- hw/acpi/ghes_cper.c | 32 ++ hw/acpi/ghes_cper_stub.c | 19 + hw/acpi/meson.build | 2 + hw/arm/virt-acpi-build.c | 35 +- hw/arm/virt.c | 19 +- hw/core/machine.c | 2 + include/hw/acpi/acpi_dev_interface.h | 1 + include/hw/acpi/aml-build.h | 2 + include/hw/acpi/generic_event_device.h | 1 + include/hw/acpi/ghes.h | 36 +- include/hw/arm/virt.h | 2 + qapi/acpi-hest.json | 35 ++ qapi/meson.build | 1 + qapi/qapi-schema.json | 1 + scripts/arm_processor_error.py | 377 +++++++++++++ scripts/ghes_inject.py | 51 ++ scripts/qmp_helper.py | 702 +++++++++++++++++++++++++ target/arm/kvm.c | 2 +- 24 files changed, 1517 insertions(+), 54 deletions(-) create mode 100644 hw/acpi/ghes_cper.c create mode 100644 hw/acpi/ghes_cper_stub.c create mode 100644 qapi/acpi-hest.json create mode 100644 scripts/arm_processor_error.py create mode 100755 scripts/ghes_inject.py create mode 100644 scripts/qmp_helper.py -- 2.48.1