Description of problem:
Currently the pseries machine type only supports a "vanilla" PCI bus as far as qemu (and libvirt) are concerned. That means PCIe devices - both emulated and passthrough - either won't work, or will be limited. In particular the PCIe extended config space won't be accessible.
From the guest's point of view the paravirtualized PCI interface doesn't distinguish between PCI and PCIe, so existing guests should be fine with both PCI and PCIe devices (and there exist RTAS calls to access PCIe extended config space).
This BZ is to track addition of support for PCIe guest devices to qemu. Actually adding the support should be straightforward. Doing so without breaking compatibility with existing users, particularly libvirt, is more complex.
Tentative plan is to solve bug 1280542 in libvirt first. Putting devices on separate vPHBs by default will simplify a number of issues.
Looks like this is easier than I thought.
Upstream discussions concluded that pseries should continue to advertise a plain PCI bus, but we should advertise PCIe extended config space availability. That was already mostly implemented, we just needed a device tree update to advertise it to the guest.
The patch to enable that has been merged for qemu-2.9, so moving to POST state.
Note that "hybrid" devices (xhci and virtio-pci) which can operate in either PCI or PCIe mode will still work in PCI mode on pseries for now. See bug 1429760 for details.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.