getting around "Max number of devices this xHCI host supports is 32" limit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Howdy,

Kernel 4.14, although it's not kernel specific and a known limit.

I'm having problem supporting device testing on a server because each
device them requires 2 USB ports (one fastboot, one serial console).

I can't really go past 16 per server, because I hit this:
[  166.159608] xhci_hcd 0000:05:00.0: Error while assigning device slot ID
[  166.159613] xhci_hcd 0000:05:00.0: Max number of devices this xHCI host supports is 32.
[  166.159616] usb 3-1.3-port3: couldn't allocate usb_device
[  166.160058] xhci_hcd 0000:05:00.0: Error while assigning device slot ID
[  166.160063] xhci_hcd 0000:05:00.0: Max number of devices this xHCI host supports is 32.

https://acroname.com/blog/why-cant-i-connect-more-usb-30-devices-my-system
explains how I can save a few IDs by using a USB-2 cable to my USB hubs.
I'm already doing this.

It also says I can get another USB card, I did this too, so now I have a
32 device limit (at 2 USB ports per device) instead of 16

lspci  | grep -i 'usb controller'
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
05:00.0 USB controller: Fresco Logic FL1100 USB 3.0 Host Controller (rev 10)

But that's still not good enough (I need more) and I can't add a 2nd PCI
card on that server.

The web page above says
"Add a discrete USB controller to your host:
If you need to add substantially more USB devices to your host, the main
limitation is likely the integrated Intel XHCI USB host controller.
Discrete USB host controllers do not typically have this limitation.
Adding a discrete USB host controller in a PCIe expansion slot is a
great way to expand the total tree and number of devices available."

How do I know whether a PCI USB card I'm buying is a "discrete USB
controller" as per how it's used in that sentence?
Or does it just say that basically you're doubling your limit with
another card, which is what I already did, and then you hit the limit
again?

More generally, any ideas how I can support more USB devices on a single
server when I can't keep adding PCI cards? (I guess PCI cards with
multiple separate USB chips might be a start if they exist).

Thanks,
Marc
-- 
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
                                      .... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/                       | PGP 7F55D5F27AAF9D08



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux