*** This bug is a duplicate of bug 1900919 *** https://bugs.launchpad.net/bugs/1900919
I accidentally double submitted this, and this one has the wrong description. Please close and use #1900919 instead. ** This bug has been marked a duplicate of bug 1900919 PXB selected as root bus incorrectly -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1900918 Title: PXB devices Status in QEMU: New Bug description: release: 4c41341af76cfc85b5a6c0f87de4838672ab9f89 qdev_device_add() will search for the "closest" bus possible, and bail out early if that bus is a root bus. pxb devices are considered root buses and so if you either 1. Add a PCI device on the QEMU command line *after* a pxb device, or 2. Add an integrated PCI device (like a watchdog) #1: -device pxb-pcie,id=cxl.0,bus=pcie.0,bus_nr=52 -device ahci,id=sata0,addr=0x8 #2: -watchdog i6300esb -device pxb-pcie,id=cxl.0,bus=pcie.0,bus_nr=52 The PXB will get selected as the bus (instead of the real root bus) and this will cause an assertion failure with the message like "qemu- system-x86_64: -device ahci,id=sata0,addr=0x8: PCI: Only PCI/PCIe bridges can be plugged into pxb-pcie" I think this is relatively solvable in the code base by determining if a bus is an expander, and skipping it if so. However, I wonder if it makes more sense to just allow expanders to have endpoint devices. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1900918/+subscriptions