This allows to hotplug/unplug PHBs. I could successfully test: - using in-kernel XICS, emulated XICS and XIVE - hotplug/unplug with e1000 device to validate LSIs - hotplug/unplug with virtio-net device to validate MSIs - some simple migration scenarios
Please comment. Changes in v4: - added a LSI bitmap to XICS - no longer need compat property in XICS - simplified the patches to access the name and the phandle of the interrupt controller - delay the creation of the PHB drc->fdt to RTAS ibm,configure-connector Change in v3: - reworked phandle related code some more - disintricate allocation/"type setting" of interrupts - identify LSIs at machine init Changes in v2: - rebased on current ppc-for-4.0 - added some preliminary cleanup - call unrealize from realize error path - advertise PHB hotplug in last patch - reworked phandle related code - sync LSIs to KVM -- Greg --- Greg Kurz (8): spapr_irq: Add an @xics_offset field to sPAPRIrq xive: Only set source type for LSIs spapr_irq: Set LSIs at interrupt controller init spapr: Expose the name of the interrupt controller node spapr_irq: Expose the phandle of the interrupt controller spapr_pci: add PHB unrealize spapr_drc: Allow FDT fragment to be added later spapr: add hotplug hooks for PHB hotplug Michael Roth (6): 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: enable PHB hotplug for default pseries machine type Nathan Fontenot (1): spapr: populate PHB DRC entries for root DT node hw/acpi/pcihp.c | 2 - hw/acpi/piix4.c | 2 - hw/char/virtio-serial-bus.c | 2 - hw/core/bus.c | 11 +-- hw/intc/spapr_xive.c | 17 +---- hw/intc/xics.c | 18 ++--- hw/intc/xics_kvm.c | 2 - hw/intc/xics_spapr.c | 2 - hw/pci/pcie.c | 2 - hw/pci/shpc.c | 2 - hw/ppc/pnv_psi.c | 3 + hw/ppc/spapr.c | 146 ++++++++++++++++++++++++++++++++++++++++- hw/ppc/spapr_drc.c | 53 +++++++++++++-- hw/ppc/spapr_events.c | 7 +- hw/ppc/spapr_irq.c | 122 ++++++++++++++++++++++++++++------ hw/ppc/spapr_pci.c | 113 +++++++++++++++++++++++++------- hw/ppc/spapr_vio.c | 2 - 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 | 7 ++ include/hw/ppc/spapr.h | 6 +- include/hw/ppc/spapr_drc.h | 14 ++++ include/hw/ppc/spapr_irq.h | 9 ++- include/hw/ppc/spapr_xive.h | 5 + include/hw/ppc/xics.h | 4 + include/hw/ppc/xics_spapr.h | 2 + include/hw/ppc/xive.h | 7 +- include/hw/qdev-core.h | 3 - 31 files changed, 461 insertions(+), 116 deletions(-)