USB reset issue on Jetson AGX Xavier

Hi,
We are working with one of our customized board based on Jetson Xavier AGX with customized BSP (Based on L4T 32.4.3).
We have USB3.1 on UPHY_RX/TX lines say port1 and a USB 2 hub on USB3_N/USB3_P line and we are having 2 USB buses there say port2.
We observe below scenario of USB devices connected to Port2 on the board will continuously getting reset.

Here are the steps when we get the device on port2 gets reset:
1)Connect USB device such as keyboard to USB port1 with a USB hub – connected mouse and keyboard
2)Connect USB device such as passmark loopback to one of the ports on port2
3)Device connected to port2 will continually reset
4)Unplug device connected to port1, the device connected to port2 will now initialize correctly.
5)Connect device back to port1, device on port2 will continue to function until it is unplugged.
6)Remove and reconnect the device at same port, no reset. if removed and connected back to the other port on port2 , The next device connected to port2 will reset again until port1 is unplugged.

The reason I have used the passmark device is because it has lights showing that it is resetting, but the USB reset is also visible in dmesg. attached dmesg log for reference.AGX_BSP32.4.3_USB_Trial_Passmark_03042021.txt (230.3 KB) AGX_BSP32.4.3_USB_Trial_Passmark_03042021_2.txt (337.0 KB)

Our design is same as OEM model, only thing is we are not using Type c , instead we are using normal USB.

can you please let me know what needs to be done for this?

Hi,
Have you performed USB3 compliance test? The default setting is for devkit. For a custom board, you would need to perform compliance test to ensure signal quality is good.

Hi, Not yet performed USB3 comp test.

We have isolated USB2.0 ports from Port1 connector and made sure that USB3 device is detected. Then there is no reset issue on port2.I think its something to do with USB2.0 ports. Can we check BSP for anything related to power consumption/power limit/number of ports. If I need to check then Where can I check?

Hi,
Do you refer to adaptation guide and modify device tree? The default device tree is for type-C ports. You would need to modify device tree accordingly. If you don’t have oc-pin design and enable oc-pin function, it may falsely detect overcurrent and shutdown regulator.

And since the default parameter setting is for type-C ports on devkit and yours are type-A ports, we would suggest do compliance test.

Hi can you share the path for this?

Hi,
There is a wiki page from community:
Jetson/FAQ/BSP/Remove TypeC - eLinux.org

For more detail, we suggest take a look at adaptation guide.

1 Like