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 Sun, 16 Dec 2018, Marc MERLIN wrote:

> Thanks for your reply, and thanks for bearing with me, I'm not actually
> that knowledgeable on how things work with multiple USB controllers at
> the same time.
> 
> I have a few questions I've outlined.
> 
> Question #1, if I have a random computer that outputs this:
> Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> 
> Does this mean I have both an EHCI and xHCI controller?

This indicates the computer has an xHCI controller.  It does not 
indicate there is an EHCI controller.  Each xHCI controller shows up in 
the listing as two root hubs for consecutive buses.

> If xHCI supports USB2 also, why would it come with 2? 

Some xHCI controllers support USB 2 and some don't.

> On Sat, Dec 15, 2018 at 09:59:44PM -0500, Alan Stern wrote:
> > > I also read that it's difficult to unload the xhci module after it's
> > > been loaded because too many things use it. 
> > 
> > Unloading it isn't difficult at all (assuming it was built as a module 
> > in the first place).  And even if you can't unload it, you can unbind 
> > it from the xHCI hardware, which will have much the same effect.
>  
> Understood. It wasn't clear from what I had read.
> 
> > > Someone suggested checking whether there is a way to turn off USB3 in my
> > > bios, turning off xhci support altogether.
> > > From what you're saying it sounds like it would fix my problem assuming
> > > the bios allows this at all. I'll need to check in the office next week.
> > 
> > Depending on what hardware you have on your computer (something you
> > have not described so far in this conversation -- you haven't even
> > provided the output from "lsusb"), disabling xHCI support might prevent
> > all of the USB devices attached to the computer from working.
>  
> Sorry, I pasted an incomplete lsusb, I'll get the full one tomorrow.
> 
> > Second, who says you need a USB-2 only card?  What you need is a card
> > with an EHCI controller; nothing prevents the card from having an xHCI
> > controller too.
> 
> Question #2:
> I may be confused, but xHCI supports USB2, correct?

Like I said above, some controllers do and some don't.

> If so, why would a card provide both a xHCI chip and a EHCI chip if xHCI
> can do both?

Most likely the controllers you will find on modern PCIe cards _do_
support both USB 2 and USB 3, so those cards don't need to have two
controllers.  Older cards (and motherboards) might need them, though.

> > > > There are still old cards around, and probably there are still cards 
> > > > being made that don't have xHCI.  Regardless, even if a card does have 
> > > > an xHCI controller, as long as it also has an EHCI controller and you 
> > > > use only USB 2 cables, you should be okay.
> > >  
> > > That's the thing though, this is exactly what I do.
> > 
> > I don't think so; I strongly suspect your card does _not_ have an EHCI 
> > controller.
> 
> "this is exactly what I do" == "use only USB 2 cables"
> I agree with you that I don't think the card has an EHCI controller.
> 
> > It's not a question of whether you use USB-2 signalling or USB-3 
> > signalling; it's a question of whether you use an EHCI controller or an 
> > xHCI controller.  The 32-device limit is inherent in the controller, 
> > not in the signalling.
>  
> Thanks for confirming.
> 
> > > Right, that I know how to do, but finding a EHCI only PCIe or
> > > motherboard is going to be next to impossible.
> > 
> > See above.  And don't be such a pessimist:
> > https://www.amazon.com/Port-Express-Profile-High-Speed/dp/B002RL8V7E
>  
> I'm not sure how I failed to find this, but I clearly did, thanks for
> the link.
> 
> > If all the controllers on the motherboard and on the add-on card are 
> > xHCI, then disabling xHCI support in the kernel will prevent any of 
> > your USB devices from working.  That isn't what you want.
> 
> Point taken. I think I was thinking about USB ports that were routed to
> either a xHCI or an EHCI chip depending on what's plugged into them, but
> seems that I didn't quite understand how that worked.

It varies.  For example, my office computer does exactly what you were
thinking: It routes SuperSpeed connections to the xHCI controller and
it routes high speed connections (even on the same port!) to one of the
EHCI controllers.

Alan Stern




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

  Powered by Linux