I've also seen the following failure in the guest when passing through more than one PCIe function:
[ 0.710454] pci 0000:01:00.1: EHCI: unrecognized capability 00 [ 0.710546] EEH: Recovering PHB#0-PE#10001 [ 0.710598] EEH: PE location: N/A, PHB location: N/A [ 0.710669] EEH: Frozen PHB#0-PE#10001 detected [ 0.710745] EEH: Call Trace: [ 0.710832] EEH: [000000007d519995] __eeh_send_failure_event+0x7c/0x160 [ 0.710944] EEH: [00000000419515d5] eeh_dev_check_failure+0x2e0/0x6d0 [ 0.711011] EEH: [000000008950df7e] quirk_usb_early_handoff+0xca4/0xfd0 [ 0.711076] EEH: [000000002528ae55] pci_fixup_device+0x140/0x2d0 [ 0.711137] EEH: [000000002e85a626] pci_apply_final_quirks+0xb4/0x1b8 [ 0.711199] EEH: [00000000e0915ba4] do_one_initcall+0x80/0x3b0 [ 0.711255] EEH: [0000000014cb0304] kernel_init_freeable+0x340/0x3e4 [ 0.711311] EEH: [00000000b18e64ad] kernel_init+0x30/0x1a0 [ 0.711357] EEH: [0000000047d4e5e3] ret_from_kernel_user_thread+0x14/0x1c [ 0.711413] EEH: This PCI device has failed 1 times in the last hour and will be permanently disabled after 5 failures. [ 0.711493] EEH: Notify device drivers to shutdown [ 0.711538] EEH: Beginning: 'error_detected(IO frozen)' [ 0.711584] PCI 0000:01:00.1#10001: EEH: no driver [ 0.711589] PCI 0000:01:00.3#10001: EEH: no driver [ 0.711644] PCI 0000:01:00.5#10001: EEH: no driver [ 0.711689] PCI 0000:01:00.7#10001: EEH: no driver [ 0.711737] EEH: Finished:'error_detected(IO frozen)' with aggregate recovery state:'none' [ 0.711860] EEH: Collect temporary log [ 0.712602] EEH: of node=0000:01:00.1 [ 0.712654] EEH: PCI device/vendor: 99909710 [ 0.712720] EEH: PCI cmd/status register: 00100146 [ 0.712761] EEH: PCI-E capabilities and status follow: [ 0.712876] EEH: PCI-E 00: 00010010 00008fc1 0000283f 01078011 [ 0.712989] EEH: PCI-E 10: 00110008 00000000 000003c0 00000000 [ 0.713044] EEH: PCI-E 20: 00000000 [ 0.713082] EEH: of node=0000:01:00.3 [ 0.713129] EEH: PCI device/vendor: 99909710 [ 0.713187] EEH: PCI cmd/status register: 00100146 [ 0.713232] EEH: PCI-E capabilities and status follow: [ 0.713345] EEH: PCI-E 00: 00010010 00008fc1 0000283f 01078011 [ 0.713460] EEH: PCI-E 10: 00110008 00000000 000003c0 00000000 [ 0.713513] EEH: PCI-E 20: 00000000 [ 0.713547] EEH: of node=0000:01:00.5 [ 0.713595] EEH: PCI device/vendor: 99909710 [ 0.713655] EEH: PCI cmd/status register: 00100146 [ 0.713700] EEH: PCI-E capabilities and status follow: [ 0.713812] EEH: PCI-E 00: 00010010 00008fc1 0000283f 01078011 [ 0.713938] EEH: PCI-E 10: 00110008 00000000 000003c0 00000000 [ 0.714007] EEH: PCI-E 20: 00000000 [ 0.714052] EEH: of node=0000:01:00.7 [ 0.714108] EEH: PCI device/vendor: 99909710 [ 0.714182] EEH: PCI cmd/status register: 00100146 [ 0.714239] EEH: PCI-E capabilities and status follow: [ 0.714371] EEH: PCI-E 00: 00010010 00008fc1 0000283f 01078011 [ 0.714501] EEH: PCI-E 10: 00110008 00000000 000003c0 00000000 [ 0.714571] EEH: PCI-E 20: 00000000 [ 0.714623] EEH: Reset with hotplug activity [ 0.714942] pci 0000:01:00.1: quirk_usb_early_handoff+0x0/0xfd0 took 12340 usecs [ 0.716273] PCI: CLS 0 bytes, default 128 [ 0.716424] Trying to unpack rootfs image as initramfs... [ 0.725599] Initialise system trusted keyrings [ 0.725679] Key type blacklist registered [ 0.725797] workingset: timestamp_bits=38 max_order=19 bucket_order=0 [ 0.725891] zbud: loaded Passing through one single EHCI function seems to at least allow the guest to boot, but only *once* after each power cycle. All functions are in the same IOMMU group: [ 617.749136] pci 0031:01:00.0: BAR 0 [mem size 0x00001000]: can't claim; no address assigned [ 617.749797] pci 0031:01:00.1: BAR 0 [mem size 0x00001000]: can't claim; no address assigned [ 617.750412] pci 0031:01:00.2: BAR 0 [mem size 0x00001000]: can't claim; no address assigned [ 617.751035] pci 0031:01:00.3: BAR 0 [mem size 0x00001000]: can't claim; no address assigned [ 617.751668] pci 0031:01:00.4: BAR 0 [mem size 0x00001000]: can't claim; no address assigned [ 617.752270] pci 0031:01:00.5: BAR 0 [mem size 0x00001000]: can't claim; no address assigned [ 617.752871] pci 0031:01:00.6: BAR 0 [mem size 0x00001000]: can't claim; no address assigned [ 617.753467] pci 0031:01:00.7: BAR 0 [mem size 0x00001000]: can't claim; no address assigned [ 617.754039] pci 0031:00:00.0: disabling bridge window [io 0x0000-0xffffffffffffffff] to [bus 01] (unused) [ 617.754642] pci 0031:00:00.0: disabling bridge window [mem 0x00000000-0xffffffffffffffff 64bit pref] to [bus 01] (unused) [ 617.755257] pci 0031:01:00.0: BAR 0 [mem 0x620c080000000-0x620c080000fff]: assigned [ 617.755813] pci 0031:01:00.1: BAR 0 [mem 0x620c080010000-0x620c080010fff]: assigned [ 617.756195] pci 0031:01:00.2: BAR 0 [mem 0x620c080020000-0x620c080020fff]: assigned [ 617.756559] pci 0031:01:00.3: BAR 0 [mem 0x620c080030000-0x620c080030fff]: assigned [ 617.756923] pci 0031:01:00.4: BAR 0 [mem 0x620c080040000-0x620c080040fff]: assigned [ 617.757281] pci 0031:01:00.5: BAR 0 [mem 0x620c080050000-0x620c080050fff]: assigned [ 617.757635] pci 0031:01:00.6: BAR 0 [mem 0x620c080060000-0x620c080060fff]: assigned [ 617.757980] pci 0031:01:00.7: BAR 0 [mem 0x620c080070000-0x620c080070fff]: assigned [ 617.758332] pci 0031:00:00.0: PCI bridge to [bus 01] [ 617.758662] pci 0031:00:00.0: bridge window [mem 0x620c080000000-0x620c0ffefffff] [ 617.759016] pci_bus 0031:01: Configuring PE for bus [ 617.759357] pci 0031:01 : [PE# fd] Secondary bus 0x0000000000000001 associated with PE#fd [ 617.759875] pci 0031:01:00.0: Configured PE#fd [ 617.760213] pci 0031:01 : [PE# fd] Setting up 32-bit TCE table at 0..80000000 [ 617.762565] pci 0031:01 : [PE# fd] Setting up window#0 0..7ffffffffff pg=10000 [ 617.763014] pci 0031:01 : [PE# fd] Enabling 64-bit DMA bypass [ 617.763631] pci 0031:01:00.0: Adding to iommu group 10 [ 617.764218] pci 0031:01:00.0: enabling device (0140 -> 0142) [ 617.764735] pci 0031:01:00.1: Added to existing PE#fd [ 617.765064] pci 0031:01:00.1: Adding to iommu group 10 [ 617.765483] pci 0031:01:00.1: enabling device (0140 -> 0142) [ 617.766003] pci 0031:01:00.2: Added to existing PE#fd [ 617.766331] pci 0031:01:00.2: Adding to iommu group 10 [ 617.766764] pci 0031:01:00.2: enabling device (0140 -> 0142) [ 617.767179] pci 0031:01:00.3: Added to existing PE#fd [ 617.767517] pci 0031:01:00.3: Adding to iommu group 10 [ 617.767932] pci 0031:01:00.3: enabling device (0140 -> 0142) [ 617.768339] pci 0031:01:00.4: Added to existing PE#fd [ 617.768655] pci 0031:01:00.4: Adding to iommu group 10 [ 617.769068] pci 0031:01:00.4: enabling device (0140 -> 0142) [ 617.769468] pci 0031:01:00.5: Added to existing PE#fd [ 617.769768] pci 0031:01:00.5: Adding to iommu group 10 [ 617.770176] pci 0031:01:00.5: enabling device (0140 -> 0142) [ 617.770623] pci 0031:01:00.6: Added to existing PE#fd [ 617.770921] pci 0031:01:00.6: Adding to iommu group 10 [ 617.771321] pci 0031:01:00.6: enabling device (0140 -> 0142) [ 617.771729] pci 0031:01:00.7: Added to existing PE#fd [ 617.772014] pci 0031:01:00.7: Adding to iommu group 10 [ 617.772451] pci 0031:01:00.7: enabling device (0140 -> 0142) ----- Original Message ----- > From: "Timothy Pearson" <[email protected]> > To: "linuxppc-dev" <[email protected]> > Cc: "Ritesh Harjani" <[email protected]> > Sent: Friday, September 18, 2026 1:32:51 PM > Subject: [BUG] PCIe passthrough of MCS9990 fails > 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.
