From: Samuel Ortiz <sameo@linux.intel.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH v4 00/23] ACPI reorganization for hardware-reduced support
Date: Thu, 1 Nov 2018 11:22:40 +0100 [thread overview]
Message-ID: <20181101102303.16439-1-sameo@linux.intel.com> (raw)
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.
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.
Samuel Ortiz (15):
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: 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/acpi/Makefile.objs | 1 +
hw/acpi/aml-build.c | 985 +++++++++++++++++++++++++++++
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 | 94 +--
hw/i386/acpi-build.c | 1071 +++-----------------------------
hw/i386/acpi-build.h | 9 +-
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 +-
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 | 27 +
include/hw/i386/pc.h | 49 +-
include/hw/mem/memory-device.h | 2 +
include/hw/pci/pci_host.h | 6 +
stubs/Makefile.objs | 1 -
stubs/pci-host-piix.c | 6 -
25 files changed, 1648 insertions(+), 1260 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.19.1
next reply other threads:[~2018-11-01 10:24 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-01 10:22 Samuel Ortiz [this message]
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 01/23] hw: i386: Decouple the ACPI build from the PC machine type Samuel Ortiz
2018-11-01 10:22 ` Samuel Ortiz
2018-11-01 10:22 ` Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 02/23] hw: acpi: Export ACPI build alignment API Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 03/23] hw: acpi: Export the RSDP build API Samuel Ortiz
2018-11-01 10:22 ` Samuel Ortiz
2018-11-01 17:50 ` [Qemu-arm] " Philippe Mathieu-Daudé
2018-11-01 17:50 ` Philippe Mathieu-Daudé
2018-11-02 9:20 ` [Qemu-arm] " Shannon Zhao
2018-11-02 9:20 ` Shannon Zhao
2018-11-02 9:56 ` [Qemu-arm] " Philippe Mathieu-Daudé
2018-11-02 9:56 ` Philippe Mathieu-Daudé
2018-11-06 10:17 ` [Qemu-arm] " Paolo Bonzini
2018-11-06 10:17 ` Paolo Bonzini
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 04/23] hw: acpi: Implement XSDT support for RSDP Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 05/23] hw: arm: Switch to the AML build RSDP building routine Samuel Ortiz
2018-11-01 10:22 ` Samuel Ortiz
2018-11-02 9:35 ` [Qemu-arm] " Shannon Zhao
2018-11-02 9:35 ` Shannon Zhao
2018-11-02 10:05 ` [Qemu-arm] " Shannon Zhao
2018-11-02 10:05 ` Shannon Zhao
2018-11-02 10:23 ` [Qemu-arm] " Igor Mammedov
2018-11-02 10:23 ` Igor Mammedov
2018-11-01 10:22 ` [Qemu-arm] [PATCH v4 06/23] hw: acpi: Generalize AML build routines Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] " Samuel Ortiz
2018-11-02 9:41 ` [Qemu-arm] " Shannon Zhao
2018-11-02 9:41 ` [Qemu-devel] " Shannon Zhao
2018-11-01 10:22 ` [Qemu-arm] [PATCH v4 07/23] hw: acpi: Factorize _OSC AML across architectures Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] " Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 08/23] hw: i386: Move PCI host definitions to pci_host.h Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 09/23] hw: acpi: Export the PCI host and holes getters Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 10/23] hw: acpi: Export and generalize the PCI host AML API Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 11/23] hw: acpi: Export the MCFG getter Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 12/23] hw: acpi: Do not create hotplug method when handler is not defined Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 13/23] hw: i386: Make the hotpluggable memory size property more generic Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 14/23] hw: i386: Export the i386 ACPI SRAT build method Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 15/23] hw: acpi: Fix memory hotplug AML generation error Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 16/23] hw: acpi: Export the PCI hotplug API Samuel Ortiz
2018-11-01 15:27 ` Philippe Mathieu-Daudé
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 17/23] hw: i386: Export the MADT build method Samuel Ortiz
2018-11-01 10:22 ` Samuel Ortiz
2018-11-01 15:12 ` Philippe Mathieu-Daudé
2018-11-01 15:12 ` Philippe Mathieu-Daudé
2018-11-01 15:24 ` Philippe Mathieu-Daudé
2018-11-01 15:24 ` Philippe Mathieu-Daudé
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 18/23] hw: acpi: Retrieve the PCI bus from AcpiPciHpState Samuel Ortiz
2018-11-01 10:22 ` [Qemu-devel] [PATCH v4 19/23] hw: acpi: Define ACPI tables builder interface Samuel Ortiz
2018-11-01 10:23 ` [Qemu-devel] [PATCH v4 20/23] hw: i386: Implement the ACPI builder interface for PC Samuel Ortiz
2018-11-01 10:23 ` [Qemu-devel] [PATCH v4 21/23] hw: pci-host: piix: Return PCI host pointer instead of PCI bus Samuel Ortiz
2018-11-01 10:23 ` [Qemu-devel] [PATCH v4 22/23] hw: i386: Set ACPI configuration PCI host pointer Samuel Ortiz
2018-11-01 10:23 ` [Qemu-devel] [PATCH v4 23/23] hw: i386: Refactor PCI host getter Samuel Ortiz
2018-11-02 12:29 ` [Qemu-devel] [PATCH v4 00/23] ACPI reorganization for hardware-reduced support Igor Mammedov
2018-11-05 2:10 ` Samuel Ortiz
2018-11-05 15:37 ` Samuel Ortiz
2018-11-05 16:07 ` Andrew Jones
2018-11-05 16:16 ` Samuel Ortiz
2018-11-08 14:12 ` Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181101102303.16439-1-sameo@linux.intel.com \
--to=sameo@linux.intel.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.