Re: 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]

 



On Fri, Dec 14, 2018 at 09:33:57PM -0800, Marc MERLIN wrote:
> 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?

If the PCI card has a USB host controller on it.  I think almost anyone
you buy will be like that.

> 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?

Probably, there is a limit on how many devices a USB host controller can
handle at once, that's just the way the hardware works.

> 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).

Keep adding PCI cards :)

good luck!

greg k-h



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

  Powered by Linux