qemu-e2k/hw/ppc
David Gibson 14e714900f spapr: Allow hot plug/unplug of PCI bridges and devices under PCI bridges
The pseries machine type already allows PCI hotplug and unplug via the
PAPR mechanism, but only on the root bus of each PHB.  This patch extends
this to allow PCI to PCI bridges to be hotplugged, and devices to be
hotplugged or unplugged under P2P bridges.

For now we disallow hot unplugging P2P bridges.  I tried doing that, but
haven't managed to get it working, I think due to some guest side problems
that need further investigation.

To do this we dynamically construct DRCs when bridges are hot (or cold)
added, which can in turn be used to hotplug devices under the bridge.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
2019-06-12 10:41:49 +10:00
..
e500-ccsr.h
e500.c PPC: E500: Add FSL I2C controller and integrate RTC with it 2019-03-12 14:33:04 +11:00
e500.h platform-bus-device: use device plug callback instead of machine_done notifier 2018-05-10 18:10:56 +01:00
e500plat.c hw/ppc: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
fdt.c target/ppc: Split page size information into a separate allocation 2018-04-27 18:05:22 +10:00
fw_cfg.c hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
Kconfig spapr/xive: add KVM support 2019-05-29 11:39:45 +10:00
mac_newworld.c mac_newworld: use node name instead of alias name for hd device in FWPathProvider 2019-03-12 14:33:04 +11:00
mac_oldworld.c mac_oldworld: use node name instead of alias name for hd device in FWPathProvider 2019-03-12 14:33:04 +11:00
mac.h macio: move MACIOIDEState type declarations to macio.h 2018-08-30 10:42:18 +10:00
Makefile.objs hw/ppc: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
mpc8544_guts.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
mpc8544ds.c ppc: e500: switch E500 based machines to full machine definition 2018-04-27 18:05:23 +10:00
pnv_bmc.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
pnv_core.c ppc/pnv: POWER9 XSCOM quad support 2019-03-12 14:33:04 +11:00
pnv_lpc.c ppc/pnv: add SerIRQ routing registers 2019-03-12 14:33:04 +11:00
pnv_occ.c ppc/pnv: add a OCC model for POWER9 2019-03-12 14:33:04 +11:00
pnv_psi.c ppc/pnv: Fix variable size in pnv_psi_power9_irq_set() 2019-03-19 15:20:14 +11:00
pnv_xscom.c ppc/pnv: add dummy XSCOM registers for PRD initialization 2019-05-29 11:39:47 +10:00
pnv.c ppc/pnv: introduce new skiboot platform properties 2019-05-29 11:39:47 +10:00
ppc4xx_devs.c ppc4xx: Pass array index to function instead of pointer into the array 2019-02-04 18:44:17 +11:00
ppc4xx_pci.c ppc4xx_pci: convert SysBus init method to a realize method 2018-11-08 12:04:40 +11:00
ppc405_boards.c pflash: Clean up after commit 368a354f02, part 2 2019-03-11 22:53:44 +01:00
ppc405_uc.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ppc405.h ppc4xx: Export ECB and PLB emulation 2017-09-08 09:30:55 +10:00
ppc440_bamboo.c elf: Add optional function ptr to load_elf() to parse ELF notes 2019-02-05 16:50:16 +01:00
ppc440_pcix.c ppc440_pcix: convert SysBus init method to a realize method 2018-11-08 12:04:40 +11:00
ppc440_uc.c ppc440: Avoid reporting error when reading non-existent RAM slot 2019-02-04 18:44:17 +11:00
ppc440.h ppc440_uc: Basic emulation of PPC440 DMA controller 2018-07-03 09:56:52 +10:00
ppc_booke.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ppc.c target/ppc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ppce500_spin.c hw/ppc: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
prep_systemio.c prep: add PReP System I/O 2017-01-31 10:10:13 +11:00
prep.c hw/ppc/40p: use 1900 as a base year 2019-05-29 11:39:44 +10:00
rs6000_mc.c hw/ppc: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
sam460ex.c pflash: Clean up after commit 368a354f02, part 2 2019-03-11 22:53:44 +01:00
spapr_caps.c spapr: Don't migrate the hpt_maxpagesize cap to older machine types 2019-05-29 11:39:47 +10:00
spapr_cpu_core.c target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup 2019-05-29 11:39:45 +10:00
spapr_drc.c spapr: Clean up spapr_drc_populate_dt() 2019-06-12 10:41:49 +10:00
spapr_events.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_hcall.c spapr: Print out extra hints when CAS negotiation of interrupt mode fails 2019-05-29 11:39:45 +10:00
spapr_iommu.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_irq.c spapr/irq: add KVM support to the 'dual' machine 2019-05-29 11:39:46 +10:00
spapr_ovec.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_pci_nvlink2.c spapr: Support NVIDIA V100 GPU with NVLink2 2019-04-26 10:41:23 +10:00
spapr_pci_vfio.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_pci.c spapr: Allow hot plug/unplug of PCI bridges and devices under PCI bridges 2019-06-12 10:41:49 +10:00
spapr_rng.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_rtas_ddw.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_rtas.c target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup 2019-05-29 11:39:45 +10:00
spapr_rtc.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr_vio.c spapr: Use CamelCase properly 2019-03-12 14:33:05 +11:00
spapr.c spapr: Direct all PCI hotplug to host bridge, rather than P2P bridge 2019-06-12 10:41:49 +10:00
trace-events trace-events: Fix attribution of trace points to source 2019-03-22 16:18:07 +00:00
virtex_ml507.c pflash: Clean up after commit 368a354f02, part 2 2019-03-11 22:53:44 +01:00