We use a lot of usb devices in a TX2 based system, it appears the xhci-tegra driver suffers from the same limit as the intel implementation did where more than 20 devices and no more are allowed.
With the below I’m very close and if I plug in over 20 devices, then follow on devices fail to enumerate.
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
|__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/7p, 5000M
|__ Port 6: Dev 3, If 0, Class=Vendor Specific Class, Driver=lan78xx, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 4: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 7, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 6, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 18, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 3: Dev 17, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 4: Dev 8, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 4: Dev 8, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 4: Dev 8, If 2, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 4: Dev 8, If 3, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 3: Dev 5, If 0, Class=Hub, Driver=hub/7p, 480M
|__ Port 5: Dev 11, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 19, If 0, Class=(Defined at Interface level), Driver=, 12M
|__ Port 2: Dev 20, If 0, Class=Vendor Specific Class, Driver=dvb_usb_it913x, 480M
|__ Port 3: Dev 21, If 0, Class=Vendor Specific Class, Driver=usb-it951x, 480M
|__ Port 4: Dev 22, If 0, Class=Vendor Specific Class, Driver=usb-it951x, 480M
Is there some work to be done somewhere that would allow more devices other than enabling more USB3 roots? or is there only one root controller anyway and the multiple USB3 ports are only off that one root?