TX2 USB3.0 Port Not working


I’ve a custom carrier board for Jetson TX2. On the custom carrier board, we’ve a 4 port usb2.0 hub which is connected to the jetson tx2 B40(USB0_D-) and B39(USB0_D+) and the A17 (USB0_EN_0C). B42(USB2_D+) and B43(USB2_D-) are connected to a U_USB to 1 GB Eth Phy chip enable using pin A10.

Two USB3.0 ports are exposed on the custom carrier board USB_SS0 [F43 F44 C43 C44] and USB_SS1 [G42 G43 D42 D43] and the A18 (USB1_EN_0C pin.

I’ve flashed the board to use config #4 lane mapping ODMDATA=0x7090000. The USB3.0 ports are still not working.

I’ve attached the pin allocation for both the USB3.0

And for the USB2.0 hub

I’ve applied the patch to make USB2.0 ports work

pinctrl@3520000 {
		vbus-0-supply = <&vdd_usb0_5v>;
		vbus-1-supply = <&vdd_usb1_5v>;
		vbus-2-supply = <&vdd_usb1_5v>;
		vbus-3-supply = <&battery_reg>;
		vddio-hsic-supply = <&battery_reg>;
		avdd_usb-supply = <&spmic_sd3>;
		vclamp_usb-supply = <&spmic_sd2>;
		avdd_pll_erefeut-supply = <&spmic_sd2>;

dmesg log here:
dmesg (64.8 KB)

Is anyone able to point me in the right direction to fixing this issue

The right direction is please refer to the adaptation guide w.r.t your software release.

Thanks for your response.

We use tegra-l4t-r32.6.1 and jetpack4.4.

We’ve been able to get the USB2.0 working.

But the USB3.0 doesn’t work. It seems to get turned off during boot up.

We use tegra-l4t-r32.6.1 and jetpack4.4.

Jetpack4.4 is rel-32.4.3. Did you mix up two different releases?

I’m sorry about the confusion. I’m certain it’s jetpack4.4 rel-32.4.3.

The USB3.0 on USB_SS0 works now. But still not able to make USB3.0 on USB_SS1 work

Did you ever read the adaptation guide? The device tree change is needed to add new usb lane/port. Only changing the ODMDATA is not enough.

I’ve tried to follow the instruction in https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/adaptation_and_bringup_tx2.html#wwpID0E01L0HA under Porting USB to configure the other USB, But I’ve not been successful. My Initial guess was maybe an overlay in the tegra186-quill-p3310-1000-c03-00-base.dts was overwriting my config.

There is no need to “guess” anything, just convert your dtb back to dts by using dtc tool and see if any overlay is setting the usb lane/port again.

Also, you can check /proc/device-tree after you boot into the system. This node will reveal the whole device tree loaded on your board. This one will show the final result, including the change from overlay.

I use the dtc tool to convert between dts and dtb.

There are few overlays setting the port and lane again, I’ve tried reconfiguring some of them but it seems my config turns the lane/port off somehow. I need to follow it through again.

I’ll check the /proc/device-tree after boot to show the final result.