When passing through all eight PCIe functions of a MCS9990 PCIe USB multifunction 1.0/2.0 controller on a PowerNV POWER9 host using qemu, the guest fails to launch:
qemu-system-ppc64: -device vfio-pci,host=0031:01:00.1,bus=bridge-1,addr=00.1: vfio 0031:01:00.1: Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Device or resource busy If I instead pass through only one function, or only pass through odd functions (the EHCI controller set), I get the following errors in the guest: [ 0.886625] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.18 [ 0.886710] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 0.886791] usb usb1: Product: EHCI Host Controller [ 0.886845] usb usb1: Manufacturer: Linux 6.18.38 ehci_hcd [ 0.886902] usb usb1: SerialNumber: 0000:01:00.0 [ 1.142469] usb 1-1: new high-speed USB device number 2 using ehci-pci [ 6.530490] usb 1-1: device descriptor read/64, error -110 [ 22.147501] usb 1-1: device descriptor read/64, error -110 [ 22.371536] usb 1-1: new high-speed USB device number 3 using ehci-pci [ 27.526896] usb 1-1: device descriptor read/64, error -110 [ 43.141934] usb 1-1: device descriptor read/64, error -110 [ 43.245985] usb usb1-port1: attempt power cycle [ 43.638173] usb 1-1: new high-speed USB device number 4 using ehci-pci [ 54.491254] usb 1-1: device not accepting address 4, error -110 [ 54.611274] usb 1-1: new high-speed USB device number 5 using ehci-pci If I reboot the guest, SLOF fails as follows: Scanning USB EHCI: Initializing usb-ehci: reset failed usb-ehci: control transfer timed out_ usb-ehci: unable to setup device on port 0 Note that this card works perfectly on the host kernel.
