Hi Heyi,
On 4/3/19 8:50 PM, Michael S. Tsirkin wrote:
On Wed, Apr 03, 2019 at 03:32:09PM +0800, Heyi Guo wrote:
Hi folks,
In physical world, a PCIe switch including one upstream port and several
downstream ports is a single physical device, however we treat each port as a
device in qemu world. In qemu docs/pcie.txt, we have below statements:
Line 230: Be aware that PCI Express Downstream Ports can't be hot-plugged into
Line 231: an existing PCI Express Upstream Port.
To my understanding, it implies PCIe downstream ports *can* be hot-plugged into
something which is not an existing upstream port. If it is true, how can we do
that? AFAIK monitor command device_add can only add one device at a time.
Please help to show the truth.
Thanks,
Heyi
afaik they can only be plugged into upstearm ports with or without hotplug.
Hotplug on upstream port does not look supported, as mentionned in the doc:
(QEMU) device_add driver=xio3130-downstream id=down0 bus=upstream_port1
{"error": {"class": "GenericError", "desc": "Bus 'upstream_port1' does
not support hotplugging"}}
Looks the std way to use the downstream port is the one documented in 2.2.3:
2.2.3 Plugging a PCI Express device into a Switch:
-device ioh3420,id=root_port1,chassis=x,slot=y[,bus=pcie.0][,addr=z]
-device x3130-upstream,id=upstream_port1,bus=root_port1[,addr=x]
-device
xio3130-downstream,id=downstream_port1,bus=upstream_port1,chassis=x1,slot=y1[,addr=z1]]
-device <dev>,bus=downstream_port1
For my curiosity why do you want to hotplug a downstream port in another
place than an upstream port?
Thanks
Eric
.