I have been trying to install an add-on card to provide additional USB 3.0 ports that can be passed through to a guest, but I seem to be hitting a host issue that prevents this.
Once the card is installed, I get the following error during host boot (v4.4):
[ 45.887595] xhci_hcd 0000:06:00.0: Stopped the command ring failed, maybe the host is dead
[ 45.887665] xhci_hcd 0000:06:00.0: Abort command ring failed
[ 45.887721] xhci_hcd 0000:06:00.0: HC died; cleaning up
[ 45.887796] xhci_hcd 0000:06:00.0: Error while assigning device slot ID
[ 45.887871] xhci_hcd 0000:06:00.0: Max number of devices this xHCI host supports is 32.
[ 45.887932] usb usb12-port1: couldn't allocate usb_device
Looking through the log, I can see that the PCIe entries are created for the new device and a USB bus allocated:
[ 12.870958] pci 0000:03:00.0: [1912:0015] type 00 class 0x0c0330
[ 12.870997] pci 0000:03:00.0: reg 0x10: [mem 0xf0a00000-0xf0a01fff 64bit]
[ 12.871095] pci 0000:03:00.0: PME# supported from D0 D3hot
[ 17.411667] DMAR: [Firmware Bug]: RMRR entry for device 03:00.0 is broken - applying workaround
[ 17.412226] DMAR: Setting identity map for device 0000:03:00.0 [0x7ba70000 - 0x7ba7ffff]
[ 17.421751] iommu: Adding device 0000:03:00.0 to group 49
[ 17.865589] pci 0000:03:00.0: Signaling PME through PCIe PME interrupt
[ 17.959217] xhci_hcd 0000:03:00.0: xHCI Host Controller
[ 17.959221] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 5
[ 17.964463] xhci_hcd 0000:03:00.0: hcc params 0x014051c7 hci version 0x100 quirks 0x00000090
[ 17.964651] usb usb5: SerialNumber: 0000:03:00.0
[ 17.964812] xhci_hcd 0000:03:00.0: xHCI Host Controller
[ 17.964815] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 6
[ 17.967991] usb usb6: SerialNumber: 0000:03:00.0
The boot then hangs for a couple of minutes until the command ring failure above and the associated USB bus is deallocated:
[ 260.633397] xhci_hcd 0000:03:00.0: remove, state 4
[ 260.633407] usb usb6: USB disconnect, device number 1
[ 260.645662] xhci_hcd 0000:03:00.0: USB bus 6 deregistered
[ 260.645671] xhci_hcd 0000:03:00.0: remove, state 4
[ 260.645678] usb usb5: USB disconnect, device number 1
[ 260.645928] xhci_hcd 0000:03:00.0: USB bus 5 deregistered
This happens with three different USB cards from three vendors with three different chipsets. The card installed is known good in this platform as it works if I boot the host box into Windows 10.
If I try passing the PCIe devices through to a guest, the host controller is detected and the driver loads, but the root hub for the device fails to instantiate with a 'Device cannot start' error.
Googling this as a kernel error just seems to return bugs that were patched many years ago.
The card fitted at the moment uses the same Renesas chipset that is emulated in the guest, so should be compatible.
Is there perhaps a soft limit on USB host devices that can be altered?
Once the card is installed, I get the following error during host boot (v4.4):
[ 45.887595] xhci_hcd 0000:06:00.0: Stopped the command ring failed, maybe the host is dead
[ 45.887665] xhci_hcd 0000:06:00.0: Abort command ring failed
[ 45.887721] xhci_hcd 0000:06:00.0: HC died; cleaning up
[ 45.887796] xhci_hcd 0000:06:00.0: Error while assigning device slot ID
[ 45.887871] xhci_hcd 0000:06:00.0: Max number of devices this xHCI host supports is 32.
[ 45.887932] usb usb12-port1: couldn't allocate usb_device
Looking through the log, I can see that the PCIe entries are created for the new device and a USB bus allocated:
[ 12.870958] pci 0000:03:00.0: [1912:0015] type 00 class 0x0c0330
[ 12.870997] pci 0000:03:00.0: reg 0x10: [mem 0xf0a00000-0xf0a01fff 64bit]
[ 12.871095] pci 0000:03:00.0: PME# supported from D0 D3hot
[ 17.411667] DMAR: [Firmware Bug]: RMRR entry for device 03:00.0 is broken - applying workaround
[ 17.412226] DMAR: Setting identity map for device 0000:03:00.0 [0x7ba70000 - 0x7ba7ffff]
[ 17.421751] iommu: Adding device 0000:03:00.0 to group 49
[ 17.865589] pci 0000:03:00.0: Signaling PME through PCIe PME interrupt
[ 17.959217] xhci_hcd 0000:03:00.0: xHCI Host Controller
[ 17.959221] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 5
[ 17.964463] xhci_hcd 0000:03:00.0: hcc params 0x014051c7 hci version 0x100 quirks 0x00000090
[ 17.964651] usb usb5: SerialNumber: 0000:03:00.0
[ 17.964812] xhci_hcd 0000:03:00.0: xHCI Host Controller
[ 17.964815] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 6
[ 17.967991] usb usb6: SerialNumber: 0000:03:00.0
The boot then hangs for a couple of minutes until the command ring failure above and the associated USB bus is deallocated:
[ 260.633397] xhci_hcd 0000:03:00.0: remove, state 4
[ 260.633407] usb usb6: USB disconnect, device number 1
[ 260.645662] xhci_hcd 0000:03:00.0: USB bus 6 deregistered
[ 260.645671] xhci_hcd 0000:03:00.0: remove, state 4
[ 260.645678] usb usb5: USB disconnect, device number 1
[ 260.645928] xhci_hcd 0000:03:00.0: USB bus 5 deregistered
This happens with three different USB cards from three vendors with three different chipsets. The card installed is known good in this platform as it works if I boot the host box into Windows 10.
If I try passing the PCIe devices through to a guest, the host controller is detected and the driver loads, but the root hub for the device fails to instantiate with a 'Device cannot start' error.
Googling this as a kernel error just seems to return bugs that were patched many years ago.
The card fitted at the moment uses the same Renesas chipset that is emulated in the guest, so should be compatible.
Is there perhaps a soft limit on USB host devices that can be altered?