Tegra-xusb 3530000.xhci: controller firmware hang

Hi all,

We are trying to use USB3 port on our TX2 with a custom carrier board.
In a situation, when the USB signal is weak or distorted, the kernel reports an “xHCI controller firmware hang” (I will attach a part of kernel log). It make some sense, but what is worse, all the Linux kernel freezes. In a worst case this “freeze” was 40 seconds, after which the kernel rebooted.
As we are developing an autonomous machine, the continues operation of the kernel, OS and applications is crucial for us.

  1. What can be done to prevent to prevent the controller firmware hang (obvious besides improving the USB signal quality)?
  2. Is it possible to prevent the USB driver from hanging the kernel due to controller firmware hang?
  3. Is there a way to get some more information of the XHCI controller firmware status or logs? Is it possible to get verbose logs of it’s driver?

I have very little experience developing in kernel mode, so even not sure where to start so I’ll be grateful for any suggestion.

The linux version is 4.9.140-tegra (mb@xps) (gcc version 7.3.1).
Log of the kernel (see the date jumping by 42 seconds):


Aug 26 17:03:04 localhost kernel: [ 377.430421] tegra-xusb 3530000.xhci: controller firmware hang
Aug 26 17:03:04 localhost kernel: [ 377.436176] tegra-xusb 3530000.xhci: hcd_reinit is disabled or in progress
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
Aug 26 17:03:46 localhost kernel: [ 0.000000] Booting Linux on physical CPU 0x100

Hi,
For investigating this further, we need to replicate the issue first. Please try to reproduce it on TX2 developer kit. And share us the steps if you can observe it on developer kit.

Since you use custom board, please make sure you have run compliance test. The default setting is for developer kit. For custom board, it is required to do compliance test.

Hi DaneLLL,

Thank you so much for you reply!

The compliance testing you mentioned, it is described in the “JETSON TX2 SERIES INTERFACE TUNING AND COMPLIANCE TESTING GUIDE”, do I understand correctly?

One more thing, during normal runtime, is there a way to get some more information of the xHCI controller firmware status or logs? Is it possible to get verbose logs of USB driver? Do you think it could be helpful in any way at all?

Thank you again!
Shaul

Hi,

Yes, please take a look at
http://developer.nvidia.com/embedded/dlc/tx2-series-interface-tuning-compliance-testing-guide

There is no further debug logs we can enable. If you have done compliance test and the issue is still present, please try to reproduce it on developer kit.

The latest release for TX2 is Jetpack 4.6.2. If you don’t use latest version, may consider upgrade and try.

Thanks a lot for your help!