mbox series

[v6,00/10] acpi: Error Record Serialization Table, ERST, support for QEMU

Message ID 1628202639-16361-1-git-send-email-eric.devolder@oracle.com (mailing list archive)
Headers show
Series acpi: Error Record Serialization Table, ERST, support for QEMU | expand

Message

Eric DeVolder Aug. 5, 2021, 10:30 p.m. UTC
This patchset introduces support for the ACPI Error Record
Serialization Table, ERST.

For background and implementation information, please see
docs/specs/acpi_erst.txt, which is patch 2/10.

Suggested-by: Konrad Wilk <konrad.wilk@oracle.com>
Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>

---
v6: 5aug2021
 - Fixed compile warning/error, per Michael Tsirkin
 - Fixed mingw32 build error, per Michael
 - Converted exchange buffer to MemoryBackend, per Igor
 - Migrated test to PCI, per Igor
 - Significantly reduced amount of copying, per Igor
 - Corrections/enhancements to acpi_erst.txt, per Igor
 - Many misc/other small items, per Igor

v5: 30jun2021
 - Create docs/specs/acpi_erst.txt, per Igor
 - Separate PCI BARs for registers and memory, per Igor
 - Convert debugging to use trace infrastructure, per Igor
 - Various other fixups, per Igor

v4: 11jun2021
 - Converted to a PCI device, per Igor.
 - Updated qtest.
 - Rearranged patches, per Igor.

v3: 28may2021
 - Converted to using a TYPE_MEMORY_BACKEND_FILE object rather than
   internal array with explicit file operations, per Igor.
 - Changed the way the qdev and base address are handled, allowing
   ERST to be disabled at run-time. Also aligns better with other
   existing code.

v2: 8feb2021
 - Added qtest/smoke test per Paolo Bonzini
 - Split patch into smaller chunks, per Igor Mammedov
 - Did away with use of ACPI packed structures, per Igor Mammedov

v1: 26oct2020
 - initial post

---
Eric DeVolder (10):
  ACPI ERST: bios-tables-test.c steps 1 and 2
  ACPI ERST: specification for ERST support
  ACPI ERST: PCI device_id for ERST
  ACPI ERST: header file for ERST
  ACPI ERST: support for ACPI ERST feature
  ACPI ERST: build the ACPI ERST table
  ACPI ERST: create ACPI ERST table for pc/x86 machines
  ACPI ERST: qtest for ERST
  ACPI ERST: bios-tables-test testcase
  ACPI ERST: step 6 of bios-tables-test

 docs/specs/acpi_erst.txt          | 147 ++++++
 hw/acpi/erst.c                    | 989 ++++++++++++++++++++++++++++++++++++++
 hw/acpi/meson.build               |   1 +
 hw/acpi/trace-events              |  15 +
 hw/i386/acpi-build.c              |   9 +
 hw/i386/acpi-microvm.c            |   9 +
 include/hw/acpi/erst.h            |  24 +
 include/hw/pci/pci.h              |   1 +
 tests/data/acpi/microvm/ERST      |   0
 tests/data/acpi/microvm/ERST.pcie | Bin 0 -> 912 bytes
 tests/data/acpi/pc/DSDT           | Bin 6002 -> 6009 bytes
 tests/data/acpi/pc/ERST           | Bin 0 -> 912 bytes
 tests/data/acpi/q35/DSDT          | Bin 8289 -> 8306 bytes
 tests/data/acpi/q35/ERST          | Bin 0 -> 912 bytes
 tests/qtest/bios-tables-test.c    |  43 ++
 tests/qtest/erst-test.c           | 167 +++++++
 tests/qtest/meson.build           |   2 +
 17 files changed, 1407 insertions(+)
 create mode 100644 docs/specs/acpi_erst.txt
 create mode 100644 hw/acpi/erst.c
 create mode 100644 include/hw/acpi/erst.h
 create mode 100644 tests/data/acpi/microvm/ERST
 create mode 100644 tests/data/acpi/microvm/ERST.pcie
 create mode 100644 tests/data/acpi/pc/ERST
 create mode 100644 tests/data/acpi/q35/ERST
 create mode 100644 tests/qtest/erst-test.c