Skip to content

ACPI reorganization for hardware-reduced API addition

Samuel Ortiz qemu-arm qemu-devel xen-devel 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest24 patches 65 repliesIn review
  2. v423 patches 17 repliesSuperseded
  3. v319 patches 25 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v219 patches4 repliesSuperseded
v126 patches5 repliesSuperseded

Changes in v5 from the cover letter

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

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/24hw: i386: Decouple the ACPI build from the PC machine typehw/acpi/cpu_hotplug.c hw/arm/virt-acpi-build.c hw/i386/acpi-build.c +7 more+257 -2023 replies
2/24hw: acpi: Export ACPI build alignment APIhw/acpi/aml-build.c hw/i386/acpi-build.c include/hw/acpi/aml-build.h+10 -82 replies
3/24hw: acpi: The RSDP build API can return voidhw/arm/virt-acpi-build.c hw/i386/acpi-build.c+2 -63 replies
4/24hw: acpi: Export the RSDP build APIhw/arm/virt-acpi-build.c hw/i386/acpi-build.c include/hw/acpi/aml-build.h+5 -20 replies
5/24hw: acpi: Implement XSDT support for RSDPhw/acpi/aml-build.c include/hw/acpi/aml-build.h+40 -08 replies
6/24hw: acpi: Factorize the RSDP build API implementationhw/acpi/aml-build.c hw/arm/virt-acpi-build.c hw/i386/acpi-build.c +1 more+30 -600 replies
7/24hw: acpi: Generalize AML build routineshw/acpi/aml-build.c hw/arm/virt-acpi-build.c hw/i386/acpi-build.c +1 more+528 -5173 replies
8/24hw: acpi: Factorize _OSC AML across architectureshw/acpi/aml-build.c hw/arm/virt-acpi-build.c hw/i386/acpi-build.c +2 more+66 -850 replies
9/24hw: i386: Move PCI host definitions to pci_host.hinclude/hw/i386/pc.h include/hw/pci/pci_host.h+6 -51 reply
10/24hw: acpi: Export the PCI host and holes gettershw/acpi/aml-build.c hw/i386/acpi-build.c include/hw/acpi/aml-build.h+47 -453 replies
11/24hw: acpi: Export and generalize the PCI host AML APIhw/acpi/aml-build.c hw/i386/acpi-build.c include/hw/acpi/aml-build.h+173 -1073 replies
12/24hw: acpi: Export the MCFG getterhw/acpi/aml-build.c hw/i386/acpi-build.c include/hw/acpi/aml-build.h+25 -223 replies
13/24hw: acpi: Do not create hotplug method when handler is not definedhw/acpi/cpu.c hw/acpi/memory_hotplug.c+12 -72 replies
14/24hw: i386: Make the hotpluggable memory size property more generichw/i386/acpi-build.c hw/i386/pc.c include/hw/i386/pc.h +1 more+5 -31 reply
15/24hw: i386: Export the i386 ACPI SRAT build methodhw/i386/acpi-build.c hw/i386/acpi-build.h+6 -13 replies
16/24hw: acpi: Fix memory hotplug AML generation errorhw/acpi/memory_hotplug.c+5 -52 replies
17/24hw: acpi: Export the PCI hotplug APIhw/acpi/aml-build.c hw/i386/acpi-build.c include/hw/acpi/aml-build.h+199 -1900 replies
18/24hw: i386: Export the MADT build methodhw/arm/virt-acpi-build.c hw/i386/acpi-build.c include/hw/i386/acpi.h+32 -42 replies
19/24hw: acpi: Retrieve the PCI bus from AcpiPciHpStatehw/acpi/pcihp.c hw/pci-host/piix.c include/hw/i386/pc.h +2 more+4 -226 replies
20/24hw: acpi: Define ACPI tables builder interfacehw/acpi/Makefile.objs hw/acpi/builder.c include/hw/acpi/builder.h+198 -03 replies
21/24hw: i386: Implement the ACPI builder interface for PChw/i386/acpi-build.c hw/i386/pc.c+28 -50 replies
22/24hw: pci-host: piix: Return PCI host pointer instead of PCI bushw/i386/pc_piix.c hw/pci-host/piix.c include/hw/i386/pc.h+34 -291 reply
23/24hw: i386: Set ACPI configuration PCI host pointerhw/i386/pc_piix.c hw/i386/pc_q35.c+2 -00 replies
24/24hw: i386: Refactor PCI host getterhw/acpi/aml-build.c+7 -130 replies

Reviews trailers per patch

12 of 24 patches have a Reviewed-by or Acked-by.

PatchPhilippe Mathieu-DaudéIgor Mammedov
1/24
2/24R-b T-b
3/24R-b
4/24
5/24
6/24
7/24R-b T-b
8/24
9/24
10/24
11/24
12/24R-b T-b
13/24R-b T-b
14/24R-b
15/24
16/24R-b
17/24R-b T-b
18/24R-b T-b
19/24R-b T-b R-b
20/24R-b T-b
21/24R-b T-b
22/24
23/24
24/24

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v5 thread

Cover letter [Qemu-arm] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition

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
Signature · 7 lines
2.19.1


_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel