[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 0/4] acpi hotplug of devices behind a pci bridge
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PATCH v3 0/4] acpi hotplug of devices behind a pci bridge |
Date: |
Mon, 7 Oct 2013 12:21:26 +0300 |
This is on top of patchset generating ACPI tables in qemu.
Please review and consider for 1.7.
Changes from v2:
- split new code out to a separate file: acpi/pcihp.c
this way we can reuse it for q35 later
- rebased on top of the latest acpi-build patchset
Changes from v1:
- fixed some bugs
- fixed migration and cross version compatibility
- rebased to latest bits
This adds support for device hotplug behind pci bridges, by generating ACPI
tables describing the current hierarchy.
Bridge devices themselves need to be pre-configured on qemu command line.
How to use:
Describe buses on command line. E.g.:
-device pci-bridge,id=bar,chassis_nr=1 -device
virtio-net,netdev=bur,addr=0x1,id=far,bus=bar
use monitor command for hotplug:
device_del far
We don't currently use QOM properties to generate this info since:
- info about hotpluggability of devices is lacking
- we need to list all devices and buses in a predictable order
For now, add a pci core function to do the above predictable order
walk.
This is on top of acpi patchset posted previously.
with a small patch adding a core function to walk all
pci buses, on top.
Can also be found in my git tree
git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git acpi-bridges
Portability:
- Non x86 (or any Linux) platforms don't need any of this code.
They can keep happily using SHPC the way
they always did.
Things to note:
- Extensive use of glib completely removes
pointer math: we use
g_array_append_vals exclusively.
- As was the case previously,
systems that lack working iasl are detected at configure time,
pre-generated hex files in source tree are used in this case.
This addresses the concern with iasl/big-endian
systems.
- Cross version migration: when running with -M 1.6
and older, new hotplug functionality is unavailable.
All ACPI table generation is disabled.
We present FW_CFG interface compatible with 1.6.
Michael S. Tsirkin (4):
pci: add pci_for_each_bus_depth_first
pcihp: generalization of piix4 acpi
piix4: add acpi pci hotplug support
acpi-build: enable hotplug for PCI bridges
include/hw/acpi/pcihp.h | 72 ++++++++++
include/hw/i386/pc.h | 5 +
include/hw/pci/pci.h | 14 ++
hw/acpi/pcihp.c | 312 +++++++++++++++++++++++++++++++++++++++++++
hw/acpi/piix4.c | 75 +++++++++--
hw/i386/acpi-build.c | 346 ++++++++++++++++++++++++++++++++++++++----------
hw/pci/pci.c | 28 ++++
hw/acpi/Makefile.objs | 2 +-
hw/i386/acpi-dsdt.dsl | 34 +++--
hw/i386/ssdt-pcihp.dsl | 11 +-
10 files changed, 794 insertions(+), 105 deletions(-)
create mode 100644 include/hw/acpi/pcihp.h
create mode 100644 hw/acpi/pcihp.c
--
MST
- [Qemu-devel] [PATCH v3 0/4] acpi hotplug of devices behind a pci bridge,
Michael S. Tsirkin <=
- [Qemu-devel] [PATCH v3 1/4] pci: add pci_for_each_bus_depth_first, Michael S. Tsirkin, 2013/10/07
- [Qemu-devel] [PATCH v3 2/4] pcihp: generalization of piix4 acpi, Michael S. Tsirkin, 2013/10/07
- [Qemu-devel] [PATCH v3 3/4] piix4: add acpi pci hotplug support, Michael S. Tsirkin, 2013/10/07
- [Qemu-devel] [PATCH v3 4/4] acpi-build: enable hotplug for PCI bridges, Michael S. Tsirkin, 2013/10/07
- Re: [Qemu-devel] [PATCH v3 0/4] acpi hotplug of devices behind a pci bridge, Michael S. Tsirkin, 2013/10/13