This patch set provides an ACPI code reorganization in preparation for
adding hardware-reduced support to QEMU.

The changes are coming from the NEMU [1] project where we're defining
a new x86 machine type: i386/virt. This is an EFI only, ACPI
hardware-reduced platform and as such we had to implement support
for the latter.

As a preliminary for adding hardware-reduced support to QEMU, we did
some ACPI code reorganization with the following goals:

* Share as much as possible of the current ACPI build APIs between
  legacy and hardware-reduced ACPI.
* Share the ACPI build code across machine types and architectures and
  remove the typical PC machine type dependency.
  Eventually we hope to see arm/virt also re-use much of that code.

The patches are also available in their own git branch [2].

[1] https://github.com/intel/nemu
[2] https://github.com/intel/nemu/tree/topic/upstream/acpi

v1 -> v2:
   * Drop the hardware-reduced implementation for now. Our next patch set
     will add hardware-reduced and convert arm/virt to it.
   * Implement the ACPI build methods as a QOM Interface Class and convert
     the PC machine type to it.
   * acpi_conf_pc_init() uses a PCMachineState pointer and not a
     MachineState one as its argument.

v2 -> v3:
   * Cc all relevant maintainers, no functional changes.

Samuel Ortiz (10):
  hw: i386: Decouple the ACPI build from the PC machine type
  hw: acpi: Export ACPI build alignment API
  hw: acpi: Export the RSDP build API
  hw: acpi: Implement XSDT support for RSDP
  hw: arm: Switch to the AML build RSDP building routine
  hw: acpi: Do not create hotplug method when handler is not defined
  hw: i386: Make the hotpluggable memory size property more generic
  hw: acpi: Define ACPI tables builder interface
  hw: i386: Export the MADT build method
  hw: i386: Implement the ACPI builder interface for PC

Sebastien Boeuf (2):
  hw: acpi: Export the PCI hotplug API
  hw: acpi: Retrieve the PCI bus from AcpiPciHpState

Yang Zhong (7):
  hw: acpi: Generalize AML build routines
  hw: acpi: Factorize _OSC AML across architectures
  hw: i386: Refactor PCI host getter
  hw: acpi: Export and generalize the PCI host AML API
  hw: acpi: Export the MCFG getter
  hw: acpi: Export the SRAT AML build API
  hw: acpi: Fix memory hotplug AML generation error

 hw/acpi/Makefile.objs          |    1 +
 hw/acpi/aml-build.c            | 1129 ++++++++++++++++++++++++++++++
 hw/acpi/builder.c              |   97 +++
 hw/acpi/cpu.c                  |    8 +-
 hw/acpi/cpu_hotplug.c          |    9 +-
 hw/acpi/memory_hotplug.c       |   21 +-
 hw/acpi/pcihp.c                |   10 +-
 hw/arm/virt-acpi-build.c       |   98 +--
 hw/i386/acpi-build.c           | 1174 ++------------------------------
 hw/i386/acpi-build.h           |    4 +-
 hw/i386/pc.c                   |  197 ++++--
 hw/i386/pc_piix.c              |   21 +-
 hw/i386/pc_q35.c               |   21 +-
 hw/i386/xen/xen-hvm.c          |   19 +-
 hw/pci-host/piix.c             |    8 -
 include/hw/acpi/acpi-defs.h    |   14 +
 include/hw/acpi/acpi.h         |   43 ++
 include/hw/acpi/aml-build.h    |   50 ++
 include/hw/acpi/builder.h      |   97 +++
 include/hw/i386/acpi.h         |   27 +
 include/hw/i386/pc.h           |   21 +-
 include/hw/mem/memory-device.h |    2 +
 stubs/Makefile.objs            |    1 -
 stubs/pci-host-piix.c          |    6 -
 24 files changed, 1734 insertions(+), 1344 deletions(-)
 create mode 100644 hw/acpi/builder.c
 create mode 100644 include/hw/acpi/builder.h
 create mode 100644 include/hw/i386/acpi.h
 delete mode 100644 stubs/pci-host-piix.c

-- 
2.17.2


Reply via email to