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

In theory it's possible to have an HID device with only two endpoints 
(ep0 and intr-IN).  However I don't know if any devices like that 
actually exist.

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