All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition
@ 2018-11-05  1:40 ` Samuel Ortiz
  0 siblings, 0 replies; 170+ messages in thread
From: Samuel Ortiz @ 2018-11-05  1:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Shannon Zhao, Stefano Stabellini, Anthony Perard,
	Richard Henderson, Marcel Apfelbaum, xen-devel, Paolo Bonzini,
	Michael S. Tsirkin, Igor Mammedov, qemu-arm, Peter Maydell,
	Eduardo Habkost

This patch set provides an ACPI code reorganization in preparation for
adding a shared hardware-reduced ACPI API 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 that is built on top of a generic
hardware-reduced ACPI API [2]. This API was initially based off the
generic parts of the arm/virt-acpi-build.c implementation, and the goal
is for both i386/virt and arm/virt to duplicate as little code as
possible by using this new, shared API.

As a preliminary for adding this hardware-reduced ACPI API 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.

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

[1] https://github.com/intel/nemu
[2] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/reduced.c
[3] 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.

v3 -> v4:
   * Renamed all AcpiConfiguration pointers from conf to acpi_conf.
   * Removed the ACPI_BUILD_ALIGN_SIZE export.
   * Temporarily updated the arm virt build_rsdp() prototype for
     bisectability purposes.
   * Removed unneeded pci headers from acpi-build.c.
   * Refactor the acpi PCI host getter so that it truly is architecture
     agnostic, by carrying the PCI host pointer through the
     AcpiConfiguration structure.
   * Splitted the PCI host AML builder API export patch from the PCI
     host and holes getter one.
   * Reduced the build_srat() export scope to hw/i386 instead of the
     broader hw/acpi. SRAT builders are truly architecture specific
     and can hardly be generalized.
   * Completed the ACPI builder documentation.

v4 -> v5:
   * Reorganize the ACPI RSDP export and XSDT implementation into 3
     patches.
   * Fix the hw/i386/acpi header inclusions.

Samuel Ortiz (16):
  hw: i386: Decouple the ACPI build from the PC machine type
  hw: acpi: Export ACPI build alignment API
  hw: acpi: The RSDP build API can return void
  hw: acpi: Export the RSDP build API
  hw: acpi: Implement XSDT support for RSDP
  hw: acpi: Factorize the RSDP build API implementation
  hw: i386: Move PCI host definitions to pci_host.h
  hw: acpi: Export the PCI host and holes getters
  hw: acpi: Do not create hotplug method when handler is not defined
  hw: i386: Make the hotpluggable memory size property more generic
  hw: i386: Export the i386 ACPI SRAT build method
  hw: i386: Export the MADT build method
  hw: acpi: Define ACPI tables builder interface
  hw: i386: Implement the ACPI builder interface for PC
  hw: pci-host: piix: Return PCI host pointer instead of PCI bus
  hw: i386: Set ACPI configuration PCI host pointer

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

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

 hw/i386/acpi-build.h           |    9 +-
 include/hw/acpi/acpi-defs.h    |   14 +
 include/hw/acpi/acpi.h         |   44 ++
 include/hw/acpi/aml-build.h    |   47 ++
 include/hw/acpi/builder.h      |  100 +++
 include/hw/i386/acpi.h         |   28 +
 include/hw/i386/pc.h           |   49 +-
 include/hw/mem/memory-device.h |    2 +
 include/hw/pci/pci_host.h      |    6 +
 hw/acpi/aml-build.c            |  981 +++++++++++++++++++++++++++++
 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       |   93 +--
 hw/i386/acpi-build.c           | 1072 +++-----------------------------
 hw/i386/pc.c                   |  198 +++---
 hw/i386/pc_piix.c              |   36 +-
 hw/i386/pc_q35.c               |   22 +-
 hw/i386/xen/xen-hvm.c          |   19 +-
 hw/pci-host/piix.c             |   32 +-
 stubs/pci-host-piix.c          |    6 -
 hw/acpi/Makefile.objs          |    1 +
 stubs/Makefile.objs            |    1 -
 25 files changed, 1644 insertions(+), 1261 deletions(-)
 create mode 100644 include/hw/acpi/builder.h
 create mode 100644 include/hw/i386/acpi.h
 create mode 100644 hw/acpi/builder.c
 delete mode 100644 stubs/pci-host-piix.c

-- 
2.19.1

^ permalink raw reply	[flat|nested] 170+ messages in thread

end of thread, other threads:[~2019-01-14 18:35 UTC | newest]

Thread overview: 170+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-05  1:40 [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Samuel Ortiz
2018-11-05  1:40 ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 01/24] hw: i386: Decouple the ACPI build from the PC machine type Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-09 14:23   ` [Qemu-devel] " Igor Mammedov
2018-11-09 14:23     ` Igor Mammedov
2018-11-21 14:42     ` [Qemu-devel] " Samuel Ortiz
2018-11-21 14:42       ` Samuel Ortiz
2018-11-22 15:13       ` Igor Mammedov
2018-11-22 15:13         ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 02/24] hw: acpi: Export ACPI build alignment API Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-09 14:27   ` [Qemu-devel] " Igor Mammedov
2018-11-09 14:27     ` Igor Mammedov
2018-11-21 14:42     ` [Qemu-devel] " Samuel Ortiz
2018-11-21 14:42       ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 03/24] hw: acpi: The RSDP build API can return void Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-06 10:23   ` [Qemu-devel] " Paolo Bonzini
2018-11-06 10:23     ` Paolo Bonzini
2018-11-06 10:43     ` [Qemu-devel] " Samuel Ortiz
2018-11-06 10:43       ` Samuel Ortiz
2018-11-08 14:24   ` [Qemu-devel] " Igor Mammedov
2018-11-08 14:24     ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 04/24] hw: acpi: Export the RSDP build API Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 05/24] hw: acpi: Implement XSDT support for RSDP Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-08 14:16   ` [Qemu-devel] " Igor Mammedov
2018-11-08 14:16     ` Igor Mammedov
2018-11-08 14:36     ` [Qemu-devel] " Samuel Ortiz
2018-11-08 14:36       ` Samuel Ortiz
2018-11-08 14:53     ` [Qemu-devel] " Igor Mammedov
2018-11-08 14:53       ` Igor Mammedov
2018-11-19 18:27     ` Michael S. Tsirkin
2018-11-19 18:27       ` Michael S. Tsirkin
2018-11-20  8:23       ` [Qemu-devel] " Igor Mammedov
2018-11-20  8:23         ` Igor Mammedov
2018-11-21 14:42     ` [Qemu-devel] " Samuel Ortiz
2018-11-21 14:42       ` Samuel Ortiz
2018-11-22 16:26       ` Igor Mammedov
2018-11-22 16:26         ` Igor Mammedov
2018-11-23  9:36         ` Samuel Ortiz
2018-11-23  9:36           ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 06/24] hw: acpi: Factorize the RSDP build API implementation Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 07/24] hw: acpi: Generalize AML build routines Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-09 13:37   ` [Qemu-devel] " Igor Mammedov
2018-11-21 15:00     ` Samuel Ortiz
2018-11-21 15:00       ` Samuel Ortiz
2018-11-09 13:37   ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 08/24] hw: acpi: Factorize _OSC AML across architectures Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 09/24] hw: i386: Move PCI host definitions to pci_host.h Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-09 14:30   ` [Qemu-devel] " Igor Mammedov
2018-11-09 14:30     ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 10/24] hw: acpi: Export the PCI host and holes getters Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-13 15:59   ` [Qemu-devel] " Igor Mammedov
2018-11-13 15:59     ` Igor Mammedov
2018-11-21 15:43     ` Samuel Ortiz
2018-11-21 15:43       ` Samuel Ortiz
2018-11-23 10:55       ` Igor Mammedov
2018-11-23 10:55         ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 11/24] hw: acpi: Export and generalize the PCI host AML API Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-14 10:55   ` [Qemu-devel] " Igor Mammedov
2018-11-14 10:55     ` Igor Mammedov
2018-11-21 23:12     ` [Qemu-devel] " Samuel Ortiz
2018-11-21 23:12       ` Samuel Ortiz
2018-11-23 11:04       ` Igor Mammedov
2018-11-23 11:04         ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 12/24] hw: acpi: Export the MCFG getter Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-15 12:36   ` [Qemu-devel] " Igor Mammedov
2018-11-15 12:36     ` Igor Mammedov
2018-11-21 23:21     ` [Qemu-devel] " Samuel Ortiz
2018-11-21 23:21       ` Samuel Ortiz
2018-11-27 13:54       ` Igor Mammedov
2018-11-27 13:54         ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 13/24] hw: acpi: Do not create hotplug method when handler is not defined Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-09  9:12   ` [Qemu-devel] " Igor Mammedov
2018-11-09  9:12   ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 14/24] hw: i386: Make the hotpluggable memory size property more generic Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-15 12:49   ` [Qemu-devel] " Igor Mammedov
2018-11-15 12:49     ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 15/24] hw: i386: Export the i386 ACPI SRAT build method Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-15 13:28   ` [Qemu-devel] " Igor Mammedov
2018-11-15 13:28     ` Igor Mammedov
2018-11-21 23:27     ` Samuel Ortiz
2018-11-21 23:27       ` Samuel Ortiz
2018-11-26 15:47       ` Igor Mammedov
2018-11-26 15:47         ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 16/24] hw: acpi: Fix memory hotplug AML generation error Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-08 14:23   ` [Qemu-devel] " Igor Mammedov
2018-11-08 14:23     ` Igor Mammedov
2019-01-14 18:35     ` [Qemu-devel] " Michael S. Tsirkin
2019-01-14 18:35       ` Michael S. Tsirkin
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 17/24] hw: acpi: Export the PCI hotplug API Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 18/24] hw: i386: Export the MADT build method Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-16  9:27   ` [Qemu-devel] " Igor Mammedov
2018-11-16  9:27   ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 19/24] hw: acpi: Retrieve the PCI bus from AcpiPciHpState Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-16  9:39   ` [Qemu-devel] " Igor Mammedov
2018-11-16  9:39     ` Igor Mammedov
2018-11-16 19:42     ` [Qemu-devel] " Boeuf, Sebastien
2018-11-19 15:37       ` Igor Mammedov
2018-11-19 15:37         ` Igor Mammedov
2018-11-19 18:02         ` [Qemu-devel] " Boeuf, Sebastien
2018-11-19 18:02           ` Boeuf, Sebastien
2018-11-20  8:26           ` [Qemu-devel] " Igor Mammedov
2018-11-20  8:26             ` Igor Mammedov
2018-11-16 19:42     ` Boeuf, Sebastien
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 20/24] hw: acpi: Define ACPI tables builder interface Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-16 16:02   ` [Qemu-devel] " Igor Mammedov
2018-11-16 16:02     ` Igor Mammedov
2018-11-21 23:57     ` Samuel Ortiz
2018-11-21 23:57       ` Samuel Ortiz
2018-11-27 14:08       ` Igor Mammedov
2018-11-27 14:08         ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 21/24] hw: i386: Implement the ACPI builder interface for PC Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 22/24] hw: pci-host: piix: Return PCI host pointer instead of PCI bus Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-16 11:09   ` [Qemu-devel] " Igor Mammedov
2018-11-16 11:09     ` Igor Mammedov
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 23/24] hw: i386: Set ACPI configuration PCI host pointer Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-05  1:40 ` [Qemu-devel] [PATCH v5 24/24] hw: i386: Refactor PCI host getter Samuel Ortiz
2018-11-05  1:40   ` Samuel Ortiz
2018-11-16 16:29 ` [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Igor Mammedov
2018-11-16 16:29   ` Igor Mammedov
2018-11-16 16:37   ` Paolo Bonzini
2018-11-16 16:37     ` Paolo Bonzini
2018-11-19 15:31     ` Igor Mammedov
2018-11-19 15:31       ` Igor Mammedov
2018-11-19 17:14       ` Paolo Bonzini
2018-11-19 17:14         ` Paolo Bonzini
2018-11-19 18:14         ` Michael S. Tsirkin
2018-11-19 18:14           ` Michael S. Tsirkin
2018-11-20 21:35           ` Paolo Bonzini
2018-11-20 21:35             ` Paolo Bonzini
2018-11-20 12:57         ` Igor Mammedov
2018-11-20 12:57         ` Igor Mammedov
2018-11-20 21:36           ` Paolo Bonzini
2018-11-20 21:36             ` Paolo Bonzini
2018-11-21 12:35       ` Michael S. Tsirkin
2018-11-21 12:35         ` Michael S. Tsirkin
2018-11-21 13:50         ` Samuel Ortiz
2018-11-21 13:50           ` Samuel Ortiz
2018-11-21 13:57           ` Michael S. Tsirkin
2018-11-21 13:57             ` Michael S. Tsirkin
2018-11-21 14:15         ` Igor Mammedov
2018-11-21 14:15           ` Igor Mammedov
2018-11-21 14:38           ` Samuel Ortiz
2018-11-21 14:38             ` Samuel Ortiz
2018-11-22 10:39             ` Igor Mammedov
2018-11-22 10:39               ` Igor Mammedov
2018-11-22  0:17           ` Samuel Ortiz
2018-11-22  0:17             ` Samuel Ortiz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.