qemu-e2k/hw
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
..
9pfs
acpi acpi: pci: use build_append_foo() API to construct MCFG 2019-05-29 18:00:57 -04:00
adc
alpha
arm virtio, pci, pc: cleanups, features 2019-06-06 12:52:31 +01:00
audio hw/audio/ac97: Use the QOM DEVICE() macro to access DeviceState.qdev 2019-06-06 11:36:43 +02:00
block block: Add BlockBackend.ctx 2019-06-04 15:22:22 +02:00
bt
char Mostly bugfixes and cleanups, the most important being 2019-05-17 16:17:34 +01:00
core block: Add qdev_prop_drive_iothread property type 2019-06-04 15:22:22 +02:00
cpu
cris
display hw/display: add vhost-user-vga & gpu-pci 2019-05-29 06:30:45 +02:00
dma
gpio
hppa
hyperv
i2c hw/arm: Express dependencies of realview, versatile and vexpress with Kconfig 2019-05-13 09:36:31 +02:00
i386 target/i386: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ide block: Add BlockBackend.ctx 2019-06-04 15:22:22 +02:00
input hw/input: Add a CONFIG_PS2 switch for the ps2.c file 2019-05-15 11:56:53 +02:00
intc target/mips: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ipack
ipmi
isa hw/isa: Use the QOM DEVICE() macro to access DeviceState.qdev 2019-06-06 11:33:18 +02:00
lm32
m68k
mem
microblaze hw/microblaze/zynqmp: Use object_initialize_child for correct ref. counting 2019-05-24 15:29:02 -03:00
mips target/mips: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
misc edu: uses uint64_t in dma operation 2019-06-03 14:03:01 +02:00
moxie
net Mostly bugfixes and cleanups, the most important being 2019-05-17 16:17:34 +01:00
nios2 target/nios2: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
nvram hw/nvram/fw_cfg: Store 'reboot-timeout' as little endian 2019-05-23 14:10:31 +02:00
openrisc target/openrisc: Fix LGPL information in the file headers 2019-05-08 17:45:54 +02:00
pci Trivial fixes 06/06/2019 2019-06-06 14:09:14 +01:00
pci-bridge pci: Make is_bridge a bool 2019-05-29 18:00:57 -04:00
pci-host hw/pci-host: Use object_initialize_child for correct reference counting 2019-05-02 16:56:33 +02:00
pcmcia
ppc spapr: Allow hot plug/unplug of PCI bridges and devices under PCI bridges 2019-06-12 10:41:49 +10:00
rdma hw/rdma: Delete unused headers inclusion 2019-06-06 11:17:32 +02:00
riscv riscv: spike: Add a generic spike machine 2019-05-24 12:09:24 -07:00
s390x s390x: Bump the "qemu" CPU model up to a stripped-down z13 2019-06-07 14:53:26 +02:00
scsi Trivial fixes 06/06/2019 2019-06-06 14:09:14 +01:00
sd hw/sd: Use the QOM BUS() macro to access BusState.qbus 2019-06-06 11:38:14 +02:00
semihosting cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
sh4 hw/usb/hcd-ohci: Move PCI-related code into a separate file 2019-05-02 08:42:17 +02:00
smbios
sparc target/sparc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
sparc64 target/sparc: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
ssi
timer grlib, gptimer: get rid of the old-style create function 2019-05-17 09:17:11 +01:00
tpm Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
tricore
unicore32 target/unicore32: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
usb usb-mtp: refactor the flow of usb_mtp_write_data 2019-06-10 11:53:19 +01:00
vfio vfio/display: set dmabuf modifier field 2019-06-07 11:52:35 +02:00
virtio virtio, pci, pc: cleanups, features 2019-06-06 12:52:31 +01:00
watchdog hw/watchdog/wdt_i6300esb: Use DEVICE() macro to access DeviceState.qdev 2019-06-06 11:55:04 +02:00
xen
xenpv
xtensa target/xtensa: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
Kconfig semihosting: introduce CONFIG_SEMIHOSTING 2019-05-28 10:28:50 +01:00
Makefile.objs semihosting: move semihosting configuration into its own directory 2019-05-28 10:28:50 +01:00