USB 2.0 error can't set config #1, error -71

We designed our custom carrier board for the Jetson Orin Nano. We have a USB 2.0 hub (USB2534) from Microchip. Dp/Dn going to Port 1 on the Orin Nano. We updated our device tree for usb2-1 as follows:

usb2-1 {
		status = "okay";
		#phy-cells = <0x00>;
		nvidia,function = "xusb";
		phandle = <0x2bd>;
		};
usb2-1 {
		status = "okay";
		mode = "host";
		vbus-supply = <0x2b8>;
		};
xhci@3610000 {
		compatible = "nvidia,tegra234-xhci\0nvidia,tegra234-xusb";
		reg = <0x00 0x3610000 0x00 0x40000 0x00 0x3600000 0x00 0x10000 0x00 0x3650000 0x00 0x10000>;
		reg-names = "base\0fpci\0bar2";
		interrupts-extended = <0x01 0x00 0xa3 0x04 0x01 0x00 0xa4 0x04 0x01 0x00 0xa7 0x04 0x0a 0x4c 0x04 0x0a 0x4d 0x04 0x0a 0x4e 0x04 0x0a 0x4f 0x04 0x0a 0x50 0x04 0x0a 0x51 0x04 0x0a 0x52 0x04>;
		interrupt-names = "xhci\0mbox\0padctl\0wake0\0wake1\0wake2\0wake3\0wake4\0wake5\0wake6";
		clocks = <0x02 0x10a 0x02 0x10b 0x02 0x10c 0x02 0x10d 0x02 0x10e 0x02 0x10f 0x02 0x110 0x02 0x111 0x02 0x113 0x02 0x115 0x02 0x67 0x02 0x0e 0x02 0x64>;
		clock-names = "xusb_hs_src\0xusb_host\0xusb_core_superspeed_clk\0xusb_falcon_src\0xusb_falcon_host_clk\0xusb_falcon_superspeed_clk\0xusb_fs_src\0xusb_fs_host_clk\0xusb_ss_src\0xusb_ss\0pll_u_480m\0clk_m\0pll_e";
		power-domains = <0x02 0x0c 0x02 0x0a>;
		power-domain-names = "xusb_host\0xusb_ss";
		nvidia,xusb-padctl = <0x2b9>;
		interconnects = <0x03 0x4a 0x03 0x4b>;
		interconnect-names = "dma-mem\0dma-mem";
		iommus = <0x56 0x0e>;
		dma-coherent;
		status = "okay";
		phys = <0x2ba 0x2bd 0x2be 0x2bc 0x2bf>;
		phy-names = "usb2-0\0usb2-1\0usb2-2\0usb3-1\0usb3-2";
		phandle = <0x46a>;
	};

The vbus supply <0x2b8> = “vdd-av10-hub”.
On boot-up we captured the dmesg output:

[  364.222520] usb 1-2: new high-speed USB device number 5 using tegra-xusb
[  364.373819] usb 1-2: New USB device found, idVendor=0424, idProduct=2534, bcdDevice= 1.82
[  364.373827] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  364.375291] usb 1-2: can't set config #1, error -71

Linux can see the hub VID:PID. However, it cannot configure the hub accordingly. It seems some firmware drivers are missing or something else is going on.
We also captured the output from usb-devices:

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  5 Spd=480 MxCh= 0
D:  Ver= 2.01 Cls=09(hub  ) Sub=00 Prot=02 MxPS=64 #Cfgs=  1
P:  Vendor=0424 ProdID=2534 Rev=01.82
C:  #Ifs= 0 Cfg#= 0 Atr= MxPwr=
cat: '/sys/bus/usb/devices/usb1/1-2/1-*:?.*/bInterfaceNumber': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-2/1-*:?.*/bAlternateSetting': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-2/1-*:?.*/bNumEndpoints': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-2/1-*:?.*/bInterfaceClass': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-2/1-*:?.*/bInterfaceSubClass': No such file or directory
cat: '/sys/bus/usb/devices/usb1/1-2/1-*:?.*/bInterfaceProtocol': No such file or directory
/usr/bin/usb-devices: 76: printf: (none): expected numeric value
I:  If#=0x Alt= 0 #EPs= 0 Cls=() Sub= Prot= Driver=

What are we missing in our device tree configuration? Why is Linux unable to config the hub when it enumerates?

The hub is self powered and does not require any VBUS supply from the NVIDIA module.

Thank you

Hello,

Welcome to the NVIDIA Developer forums! Your topic will be better served in the Jetson category.

I will move this over for visibility.

Cheers,
Tom

1 Like

-71 could be hardware design problem.

I found the solution to my problem. I was missing 1-bit in the USB Hub register that was not set (EN_FLEX_MODE). After setting this bit correctly, the NVIDIA Orin Nano enumerated the USB hub and devices correctly.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.