USB3.1 hub not working correctly on Jetson Orin Nano

Hi,
We’ve attached a USB 3.0 hub from VIA Labs (VLI 威鋒電子股份有限公司) to the Jetson Orin. Whenever we connect a peripheral directly to the hub, it is detected but doesn’t establish a connection. We conducted an experiment using two USB drives: the first one connected directly to the hub was detected but not connected, while the second one connected to an intermediate hub was both detected and connected.
I know this seems complicated, this is the actual state:

  • Orin Nx → VIA Labs HUB → USB drive A: FAIL
  • Orin Nx → VIA Labs HUB → Intermediate HUB → USB drive B: SUCCESS
    This is the lsusb -t command output:
    /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M |__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M |__ Port 1: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 480M |__ Port 2: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 5: Dev 5, If 0, Class=, Driver=, 480M
    lsusb-t.txt (607 Bytes)

This is dmesg:
`[ 1.577637] usbcore: registered new interface driver usbfs
[ 1.583134] usbcore: registered new interface driver hub
[ 1.588460] usbcore: registered new device driver usb
[ 4.316286] usbcore: registered new interface driver r8152
[ 4.321920] usbcore: registered new interface driver asix
[ 4.327474] usbcore: registered new interface driver ax88179_178a
[ 4.333738] usbcore: registered new interface driver cdc_ether
[ 4.339731] usbcore: registered new interface driver net1080
[ 4.345546] usbcore: registered new interface driver cdc_subset
[ 4.351631] usbcore: registered new interface driver zaurus
[ 4.357355] usbcore: registered new interface driver cdc_ncm
[ 4.363169] usbcore: registered new interface driver aqc111
[ 4.385712] tegra-xusb 3610000.xhci: Adding to iommu group 0
[ 4.392051] usbcore: registered new interface driver uas
[ 4.397530] usbcore: registered new interface driver usb-storage
[ 4.415689] usbcore: registered new interface driver xpad
[ 6.946574] usbcore: registered new interface driver usbhid
[ 6.952304] usbhid: USB HID core driver
[ 7.288681] usbcore: registered new interface driver snd-usb-audio
[ 8.292176] tegra-xusb 3610000.xhci: Firmware timestamp: 2021-12-01 05:27:10 UTC, Version: 80.03 release
[ 8.301925] tegra-xusb 3610000.xhci: xHCI Host Controller
[ 8.307492] tegra-xusb 3610000.xhci: new USB bus registered, assigned bus number 1
[ 8.316159] tegra-xusb 3610000.xhci: hcc params 0x0180ff05 hci version 0x120 quirks 0x0000000000050810
[ 8.325764] tegra-xusb 3610000.xhci: irq 222, io mem 0x03610000
[ 8.332217] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[ 8.340717] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 8.348143] usb usb1: Product: xHCI Host Controller
[ 8.353148] usb usb1: Manufacturer: Linux 5.10.104-tegra xhci-hcd
[ 8.359404] usb usb1: SerialNumber: 3610000.xhci
[ 8.373170] tegra-xusb 3610000.xhci: xHCI Host Controller
[ 8.378722] tegra-xusb 3610000.xhci: new USB bus registered, assigned bus number 2
[ 8.386512] tegra-xusb 3610000.xhci: Host supports USB 3.1 Enhanced SuperSpeed
[ 8.394008] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[ 8.402516] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 8.409927] usb usb2: Product: xHCI Host Controller
[ 8.414936] usb usb2: Manufacturer: Linux 5.10.104-tegra xhci-hcd
[ 8.421191] usb usb2: SerialNumber: 3610000.xhci
[ 8.634144] usb 1-2: new high-speed USB device number 2 using tegra-xusb
[ 8.792467] usb 1-2: New USB device found, idVendor=2109, idProduct=2822, bcdDevice= 0.30
[ 8.800891] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8.808233] usb 1-2: Product: USB2.0 Hub
[ 8.813433] usb 1-2: Manufacturer: VIA Labs, Inc.
[ 8.922240] usb 2-1: new SuperSpeedPlus Gen 2 USB device number 2 using tegra-xusb
[ 8.957457] usb 2-1: New USB device found, idVendor=2109, idProduct=0822, bcdDevice= 0.30
[ 8.965898] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8.973236] usb 2-1: Product: USB3.1 Hub
[ 8.978427] usb 2-1: Manufacturer: VIA Labs, Inc.
[ 9.550368] usb 1-2.1: new high-speed USB device number 3 using tegra-xusb
[ 14.722194] usb 1-2.1: device descriptor read/64, error -110
[ 18.251687] usb0: HOST MAC 12:c5:64:3c:20:d2
[ 18.251691] usb0: MAC 12:c5:64:3c:20:d3
[ 18.262625] l4tbr0: port 2(usb0) entered blocking state
[ 18.262638] l4tbr0: port 2(usb0) entered disabled state
[ 18.262773] device usb0 entered promiscuous mode
[ 24.958461] usb 2-1.2: new SuperSpeed Gen 1 USB device number 3 using tegra-xusb
[ 24.987100] usb 2-1.2: New USB device found, idVendor=05e3, idProduct=0620, bcdDevice=93.07
[ 24.987108] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 24.987112] usb 2-1.2: Product: USB3.2 Hub
[ 24.987115] usb 2-1.2: Manufacturer: GenesysLogic
[ 25.114172] usb 1-2.2: new high-speed USB device number 4 using tegra-xusb
[ 25.268183] usb 1-2.2: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=93.07
[ 25.268192] usb 1-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 25.268196] usb 1-2.2: Product: USB2.1 Hub
[ 25.268199] usb 1-2.2: Manufacturer: GenesysLogic
[ 25.342805] usb 2-1.2.1: new SuperSpeed Gen 1 USB device number 4 using tegra-xusb
[ 25.365607] usb 2-1.2.1: LPM exit latency is zeroed, disabling LPM.
[ 25.369115] usb 2-1.2.1: New USB device found, idVendor=346d, idProduct=5678, bcdDevice= 2.00
[ 25.369122] usb 2-1.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 25.369126] usb 2-1.2.1: Product: Intenso Speed Line
[ 25.369129] usb 2-1.2.1: Manufacturer: Intenso
[ 25.369132] usb 2-1.2.1: SerialNumber: FC081A094C35E
[ 25.370496] usb-storage 2-1.2.1:1.0: USB Mass Storage device detected
[ 25.370824] scsi host0: usb-storage 2-1.2.1:1.0
[ 25.442157] usb 1-2.5: new high-speed USB device number 5 using tegra-xusb
[ 25.548301] usb 1-2.5: New USB device found, idVendor=2109, idProduct=8822, bcdDevice= 0.01
[ 25.548312] usb 1-2.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 25.548317] usb 1-2.5: Product: USB Billboard Device
[ 25.548321] usb 1-2.5: Manufacturer: VIA Labs, Inc.
[ 25.548324] usb 1-2.5: SerialNumber: 0000000000000001
[ 25.830173] usb 1-2.1: new high-speed USB device number 6 using tegra-xusb
[ 27.283801] usb 1-2.1: New USB device found, idVendor=24a9, idProduct=205a, bcdDevice= 2.00

[ 27.283810] usb 1-2.1: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[ 27.283812] usb 1-2.1: Product: Intenso Speed Line
[ 27.283814] usb 1-2.1: Manufacturer: Intenso
[ 27.283816] usb 1-2.1: SerialNumber: 46729111
[ 27.285322] usb-storage 1-2.1:1.0: USB Mass Storage device detected
[ 27.285789] scsi host1: usb-storage 1-2.1:1.0`

You can observe this error message
[ 14.722194] usb 1-2.1: device descriptor read/64, error -110

PS: It is not possible to access directly the Orin USB ports as all of them are connected to the VIA Labs HUB.

Appreciate your help,
Ahmed

Please check document and make sure your device tree matches the design.

https://docs.nvidia.com/jetson/archives/r35.5.0/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html?highlight=adaptation#porting-the-universal-serial-bus

Thank you for your reply,
We noticed that only USB 3.2 is correctly connected. I am a newbie to device trees. This is what I found

	xusb_padctl@3520000 {
		reg-names = "padctl\0ao";
		resets = <0x02 0x72>;
		interrupts = <0x00 0xa7 0x04>;
		avdd-usb-supply = <0x2b3>;
		compatible = "nvidia,tegra234-xusb-padctl";
		status = "okay";
		vclamp-usb-supply = <0x4e>;
		reg = <0x00 0x3520000 0x00 0x20000 0x00 0x3540000 0x00 0x10000>;
		phandle = <0x2b7>;
		reset-names = "padctl";

		ports {

			usb3-2 {
				status = "disabled";
			};

			usb3-0 {
				nvidia,usb2-companion = <0x01>;
				status = "okay";
			};

			usb2-2 {
				mode = "host";
				vbus-supply = <0x2b4>;
				status = "okay";
			};

			usb2-0 {
				usb-role-switch;
				mode = "otg";
				vbus-supply = <0x2b4>;
				status = "okay";

				port {

					endpoint {
						remote-endpoint = <0x2b5>;
						phandle = <0x67>;
					};
				};
			};

			usb3-3 {
				status = "disabled";
			};

			usb3-1 {
				nvidia,usb2-companion = <0x00>;
				status = "okay";
			};

			usb2-3 {
				status = "disabled";
			};

			usb2-1 {
				mode = "host";
				vbus-supply = <0x2b6>;
				status = "okay";
			};
		};

		prod-settings {
			#prod-cells = <0x04>;

			prod {
				prod = <0x00 0x284 0x38 0x38 0x00 0x288 0x3fff000 0x51e000>;
			};
		};

		pads {

			usb3 {

				lanes {

					usb3-2 {
						#phy-cells = <0x00>;
						status = "disabled";
					};

					usb3-0 {
						nvidia,function = "xusb";
						#phy-cells = <0x00>;
						status = "okay";
						phandle = <0x2bd>;
					};

					usb3-3 {
						#phy-cells = <0x00>;
						status = "disabled";
					};

					usb3-1 {
						nvidia,function = "xusb";
						#phy-cells = <0x00>;
						status = "okay";
						phandle = <0x2ba>;
					};
				};
			};

			usb2 {
				clock-names = "trk";
				clocks = <0x02 0xa5>;

				lanes {

					usb2-2 {
						nvidia,function = "xusb";
						#phy-cells = <0x00>;
						status = "okay";
						phandle = <0x2bc>;
					};

					usb2-0 {
						nvidia,function = "xusb";
						#phy-cells = <0x00>;
						status = "okay";
						phandle = <0x2b8>;
					};

					usb2-3 {
						#phy-cells = <0x00>;
						status = "disabled";
					};

					usb2-1 {
						nvidia,function = "xusb";
						#phy-cells = <0x00>;
						status = "okay";
						phandle = <0x2bb>;
					};
				};
			};
		};
	};

We are still stuck with this issue!
Any help from your side will me much appreciated!

Thanks
Ahmed

There is no update from you for a period, assuming this is not an issue any more.
Hence we are closing this topic. If need further support, please open a new one.
Thanks

Sorry for the late response.

Is this still an issue to support? Any result can be shared?