Previous work on PHB hotplug was last posted more than one year ago: https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg07906.html
Quite a few significant changes happened since then: - fixed PHB indexes - fixed IRQ numbers for LSIs - SLOF capable of updating the FDT in QEMU - XIVE First step in this new series is to teach QEMU how to get the FDT from SLOF thanks to the recent patch from Alexey, rebased against David's ppc-for-4.0 branch (SHA1: 11ce774130e7). Most of the other patches come from the previous version with minor modifications, but I guess even the ones with Reviewed-by tags deserve to be reviewed again in case I've missed something. Finally, the XIVE and XICS backends are changed to expose the name of the interrupt controller node in the device tree. The machine code can then exploit this to reach out to its phandle property, in case it got changed by SLOF. This is needed to wire up interrupts during hotplug. This was only lightly tested at the moment. I'll post about that later. Please comment. Cheers, -- Greg --- Alexey Kardashevskiy (1): ppc/spapr: Receive and store device tree blob from SLOF Greg Kurz (4): spapr: move spapr_create_phb() to core machine code spapr_pci: add proper rollback on PHB realize error path spapr_pci: Define SPAPR_MAX_PHBS in hw/pci-host/spapr.h spapr: Expose the name of the interrupt controller node Michael Roth (9): pci: allow cleanup/unregistration of PCI buses spapr_pci: add PHB unrealize spapr: enable PHB hotplug for default pseries machine type spapr: create DR connectors for PHBs spapr_events: add support for phb hotplug events qdev: pass an Object * to qbus_set_hotplug_handler() spapr_pci: provide node start offset via spapr_populate_pci_dt() spapr_pci: add ibm, my-drc-index property for PHB hotplug spapr: add hotplug hooks for PHB hotplug Nathan Fontenot (1): spapr: populate PHB DRC entries for root DT node configure | 2 hw/acpi/piix4.c | 2 hw/char/virtio-serial-bus.c | 2 hw/core/bus.c | 11 -- hw/intc/spapr_xive.c | 9 +- hw/intc/xics_spapr.c | 9 +- hw/pci/pci.c | 33 ++++++ hw/pci/pcie.c | 2 hw/pci/shpc.c | 2 hw/ppc/spapr.c | 230 ++++++++++++++++++++++++++++++++++++++++- hw/ppc/spapr_drc.c | 18 +++ hw/ppc/spapr_events.c | 3 + hw/ppc/spapr_hcall.c | 42 +++++++ hw/ppc/spapr_irq.c | 3 + hw/ppc/spapr_pci.c | 139 +++++++++++++++++++------ hw/ppc/trace-events | 3 + hw/s390x/css-bridge.c | 2 hw/s390x/s390-pci-bus.c | 6 + hw/scsi/virtio-scsi.c | 2 hw/scsi/vmw_pvscsi.c | 2 hw/usb/dev-smartcard-reader.c | 2 include/hw/pci-host/spapr.h | 14 ++ include/hw/pci/pci.h | 3 + include/hw/ppc/spapr.h | 9 +- include/hw/ppc/spapr_drc.h | 8 + include/hw/ppc/spapr_irq.h | 1 include/hw/ppc/spapr_xive.h | 1 include/hw/ppc/xics.h | 1 include/hw/qdev-core.h | 3 - 29 files changed, 491 insertions(+), 73 deletions(-)