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 Mon, Jan 14, 2019 at 10:12:09AM -0500, Alan Stern wrote:
> On Mon, 14 Jan 2019, Johan Hovold wrote:
> 
> > On Sun, Jan 13, 2019 at 07:14:23PM -0800, Marc MERLIN wrote:
> > > On Mon, Dec 31, 2018 at 12:34:31PM -0500, Alan Stern wrote:
> > > > > Just a small addition, many Intel xHCI controllers now support 64 devices.
> > > > > 
> > > > > It's possible to get the max device slots xHCI hardware supports from a xHC register.
> > > > > (bits 7:0 of the HCSPARAMS1 capability register)
> > > > >   
> > > > > This can be found from debugfs, but it's not very practical:
> > > > > 
> > > > > mount -t debugfs none /sys/kernel/debug/
> > > > > grep HCSPARAMS1 /sys/kernel/debug/usb/xhci/0000\:00\:14.0/reg-cap
> > > > > HCSPARAMS1 = 0x1a000840
> > > > > 
> > > > > We only care about bits 7:0, by ignoring the other bits we get 0x00000040,
> > > > > which is 64 in decimal.
> > > > > 
> > > > > So this xHCI supports 64 device slots.
> > > > 
> > > > The limits that Marc encountered were on both the number of device
> > > > slots and the number of endpoint slots.  In his case, each device has 3
> > > > endpoints.
> > > 
> > > For my own education, I was using USB/Serial converters and raw USB
> > > (android fastboot).
> > > Are there USB devices that only use 2 or 1 endpoint instead of 3 or
> > > more?
> > 
> > Yes, there are USB-serial devices which use only two bulk endpoints
> > (e.g. ftdi, I think also cp210x, possibly others). There are even
> > devices that mux up to 16 ports over just three endpoints (e.g. some
> > Moxa devices handled by the mxuport driver).
> 
> You're forgetting to count ep0.

Indeed, and the question doesn't appear to be how to maximise the number
of USB serial ports as I first read it either.

Sorry about the noise.

Johan



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

  Powered by Linux