I have some problems with the USB_HUB

Hey, guys,
I designed the carrier board for the Jetson Nano with the usb hub chip from GENESYS Company.
And with some errors long.
usb usb2: usb_suspend_both: status -16

[    5.869469] usb usb2: usb_suspend_both: status -16
[    5.885490] usb usb2: usb_suspend_both: status -16
[    5.901478] usb usb2: usb_suspend_both: status -16
[    5.917480] usb usb2: usb_suspend_both: status -16
[    5.934523] usb usb2: usb_suspend_both: status -16
[    5.949462] usb usb2: usb_suspend_both: status -16
[    5.965455] usb usb2: usb_suspend_both: status -16
[    5.981459] usb usb2: usb_suspend_both: status -16

usb usb2-port1: config error

And then it can distinguish the usb hub chip.

[ 6.607774] usb 1-2: New USB device found, idVendor=05e3, idProduct=0610
[ 6.607781] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 6.607785] usb 1-2: Product: USB2.0 Hub
[ 6.607788] usb 1-2: Manufacturer: GenesysLogic
[ 6.610736] hub 1-2:1.0: USB hub found
[ 6.611351] hub 1-2:1.0: 4 ports detected

And then it can use the usb 2.0&usb 3.0 normal and I test the speed of the USB3.0 normally.
There is no problem but I must to wait it to end the “usb usb2: usb_suspend_both: status -16”.
So I thought it may the “usbcore.autosuspend” problem and I learn from the topic “USB camera working problem - #3 by DaneLLL” to set the “autosuspend = -1”

  1. Add /etc/modprobe.d/usbcore.conf, content:

options usbcore autosuspend=-1

It doesn’t work.

usbcore.autosuspend=-1
(some releases allow adding this to the “ /boot/extlinux/extlinux.conf ” APPEND key/value pair, and in some cases you’d need to modify the device tree “ chosen->bootargs ” node)

I changed the tree devices and flash it. When I boot up, I used the “cat /proc/cmdline” and it added successfully.

But it can’t distinguish the usb hub chip, only the root hub.

This problem has been bothering me for months and I need some helps.

Thank you.

The full dmesg with USB

[ 0.596799] iommu: Adding device 70090000.xusb to group 2
[ 0.692455] vdd-usb-vbus: supplied by vdd-5v0-sys
[ 0.692540] vdd-usb-vbus: 5000 mV
[ 0.693708] vdd-usb-vbus2: 5000 mV
[ 0.799649] usbcore: registered new interface driver usbfs
[ 0.799794] usbcore: registered new interface driver hub
[ 0.799949] usbcore: registered new device driver usb
[ 0.884359] vdd-usb-vbus2: supplied by vdd-3v3-sys
[ 0.887405] vdd-usb-hub-en: supplied by vdd-1v8-sys
[ 0.887491] vdd-usb-hub-en: 5000 mV
[ 1.356616] tegra-xusb-padctl 7009f000.xusb_padctl: TEGRA_FUSE_SKU_CALIB_0 = 0x7a08410
[ 1.356624] tegra-xusb-padctl 7009f000.xusb_padctl: TEGRA_FUSE_USB_CALIB_EXT_0 = 0x4
[ 1.359432] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-usb2.0, lane = usb2-0, function = xusb
[ 1.359684] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-usb2.1, lane = usb2-1, function = xusb
[ 1.359930] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-usb2.2, lane = usb2-2, function = xusb
[ 1.360405] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.3, lane = pcie-0, function = pcie-x1
[ 1.360673] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.4, lane = pcie-1, function = pcie-x4
[ 1.360930] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.5, lane = pcie-2, function = pcie-x4
[ 1.361160] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.6, lane = pcie-3, function = pcie-x4
[ 1.361440] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.7, lane = pcie-4, function = pcie-x4
[ 1.361688] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.8, lane = pcie-5, function = xusb
[ 1.361926] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.9, lane = pcie-6, function = xusb
[ 1.550981] usbcore: registered new interface driver r8152
[ 1.551098] usbcore: registered new interface driver asix
[ 1.551186] usbcore: registered new interface driver ax88179_178a
[ 1.551270] usbcore: registered new interface driver cdc_ether
[ 1.551348] usbcore: registered new interface driver net1080
[ 1.551436] usbcore: registered new interface driver cdc_subset
[ 1.551515] usbcore: registered new interface driver zaurus
[ 1.551633] usbcore: registered new interface driver cdc_ncm
[ 1.556476] tegra-xusb 70090000.xusb: USB2 port 0 has OTG_CAP
[ 1.557036] tegra-xusb-padctl 7009f000.xusb_padctl: enabled OTG on UTMI pad 0
[ 1.558368] tegra-xusb 70090000.xusb: extcon 0: ffffffc0f8735000 id
[ 1.560141] usbcore: registered new interface driver uas
[ 1.560283] usbcore: registered new interface driver usb-storage
[ 1.560485] usbcore: registered new interface driver usbserial
[ 1.560949] tegra-xusb 70090000.xusb: Firmware timestamp: 2019-10-17 15:58:59 UTC, Version: 50.25 release
[ 1.560995] tegra-xusb 70090000.xusb: xHCI Host Controller
[ 1.561029] tegra-xusb 70090000.xusb: new USB bus registered, assigned bus number 1
[ 1.561893] tegra-xusb 70090000.xusb: hcc params 0x0184f525 hci version 0x100 quirks 0x00050010
[ 1.561970] tegra-xusb 70090000.xusb: irq 61, io mem 0x70090000
[ 1.562254] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.562261] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.562265] usb usb1: Product: xHCI Host Controller
[ 1.562270] usb usb1: Manufacturer: Linux 4.9.140-tegra xhci-hcd
[ 1.562275] usb usb1: SerialNumber: 70090000.xusb
[ 1.564853] tegra-xusb 70090000.xusb: xHCI Host Controller
[ 1.564878] tegra-xusb 70090000.xusb: new USB bus registered, assigned bus number 2
[ 1.565003] usb usb2: We don’t know the algorithms for LPM for this host, disabling LPM.
[ 1.565198] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[ 1.565204] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.565209] usb usb2: Product: xHCI Host Controller
[ 1.565213] usb usb2: Manufacturer: Linux 4.9.140-tegra xhci-hcd
[ 1.565218] usb usb2: SerialNumber: 70090000.xusb
[ 1.567872] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 0
[ 1.568930] usbcore: registered new interface driver xpad
[ 1.773386] usb usb1: usb_suspend_both: status 0
[ 1.813484] usbcore: registered new interface driver usbhid
[ 1.813487] usbhid: USB HID core driver
[ 1.821171] usbcore: registered new interface driver snd-usb-audio
[ 2.015864] vdd-usb-vbus: disabling
[ 2.015866] vdd-usb-vbus2: disabling
[ 2.015967] vdd-usb-hub-en: disabling
[ 2.210399] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[ 4.725651] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[ 4.870099] usb usb1: usb_suspend_both: status 0
[ 5.351182] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[ 5.591319] usb0: HOST MAC 12:4d:be:9b:d1:5e
[ 5.591555] usb0: MAC 12:4d:be:9b:d1:5f
[ 5.636804] l4tbr0: port 2(usb0) entered blocking state
[ 5.636809] l4tbr0: port 2(usb0) entered disabled state
[ 5.638342] device usb0 entered promiscuous mode
[ 5.655915] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 5.731957] tegra-xusb 70090000.xusb: Upgrade port 0 to USB3.0
[ 5.731964] tegra-xusb 70090000.xusb: Upgrade port 1 to USB3.0
[ 5.853484] usb usb2: usb_suspend_both: status -16
[ 5.869469] usb usb2: usb_suspend_both: status -16
[ 5.885490] usb usb2: usb_suspend_both: status -16
[ 5.901478] usb usb2: usb_suspend_both: status -16
[ 5.917480] usb usb2: usb_suspend_both: status -16
[ 5.934523] usb usb2: usb_suspend_both: status -16
[ 5.949462] usb usb2: usb_suspend_both: status -16
[ 5.965455] usb usb2: usb_suspend_both: status -16
[ 5.981459] usb usb2: usb_suspend_both: status -16
[ 6.001158] usb usb2: usb_suspend_both: status -16
[ 6.017482] usb usb2: usb_suspend_both: status -16
[ 6.017552] usb usb2-port1: config error
[ 6.469339] usb 1-2: new high-speed USB device number 3 using tegra-xusb
[ 6.607774] usb 1-2: New USB device found, idVendor=05e3, idProduct=0610
[ 6.607781] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 6.607785] usb 1-2: Product: USB2.0 Hub
[ 6.607788] usb 1-2: Manufacturer: GenesysLogic
[ 6.721706] usb 2-1: new SuperSpeed USB device number 2 using tegra-xusb
[ 6.741378] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[ 6.746181] usb 2-1: New USB device found, idVendor=05e3, idProduct=0620
[ 6.746187] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 6.746191] usb 2-1: Product: USB3.0 Hub
[ 6.746195] usb 2-1: Manufacturer: GenesysLogic
[ 6.761326] usb 1-2: usb_suspend_both: status 0
[ 6.761398] usb usb1: usb_suspend_both: status 0
[ 10.985571] usb 2-1-port4: Cannot enable. Maybe the USB cable is bad?
[ 15.009652] usb 2-1-port4: Cannot enable. Maybe the USB cable is bad?
[ 15.016375] usb 2-1-port4: attempt power cycle
[ 19.341574] usb 2-1-port4: Cannot enable. Maybe the USB cable is bad?
[ 23.365582] usb 2-1-port4: Cannot enable. Maybe the USB cable is bad?
[ 23.372905] usb 2-1-port4: unable to enumerate USB device
[ 23.429391] usb 2-1: usb_suspend_both: status 0
[ 23.429574] usb usb2: usb_suspend_both: status 0
[ 23.429583] tegra-xusb 70090000.xusb: entering ELPG
[ 23.431768] tegra-xusb 70090000.xusb: entering ELPG done

the usb hub chip doesn’t have the port1 and port4 with the USB3.0(usb2) and it is two ports USB3.0 hub chip.

Hi,
You may need to perform USB complaince test to the hub. Please refer to
https://elinux.org/Jetson/L4T/r32.3.x_patches
[Jetson Nano]Do USB2 compliance test on USB hub

Thank you,I thought the problems in USB3.0. But I have no oscilloscope to test the eyes.
So I used the USB3.0 hard disk to test the speed and it is normal.
Is there any problems in the first? Are there any other ways to find the problems?

root@nano-desktop:/home/nano# devmem2 0x70090460
/dev/mem opened.
Memory mapped at address 0x7f8030b000.
Value at address 0x70090460 (0x7f8030b460): 0x2A0
root@nano-desktop:/home/nano# devmem2 0x70090470
/dev/mem opened.
Memory mapped at address 0x7f95ca2000.
Value at address 0x70090470 (0x7f95ca2470): 0xE63
root@nano-desktop:/home/nano# devmem2 0x70090480
/dev/mem opened.
Memory mapped at address 0x7f9911d000.
Value at address 0x70090480 (0x7f9911d480): 0x2A0
root@nano-desktop:/home/nano# devmem2 0x70090020
/dev/mem opened.
Memory mapped at address 0x7f88d34000.
Value at address 0x70090020 (0x7f88d34020): 0x805
root@nano-desktop:/home/nano# devmem2 0x70090024
/dev/mem opened.
Memory mapped at address 0x7f93d96000.
Bus error (core dumped)
root@nano-desktop:/home/nano# devmem2 0x70090464
/dev/mem opened.
Memory mapped at address 0x7f8d3db000.
Bus error (core dumped)
root@nano-desktop:/home/nano# devmem2 0x70090474
/dev/mem opened.
Memory mapped at address 0x7f812ba000.
Bus error (core dumped)
root@nano-desktop:/home/nano# devmem2 0x70090484
/dev/mem opened.
Memory mapped at address 0x7faac46000.
Bus error (core dumped)

Hi,
If there is deviation in USB lane mapping between your board an default board, you would need to refer to adaptation guide and modify device tree accordingly. Once the device tree is confirmed correct, would need to run USB2 compliance test.
You can see the documents in download center:

1 Like

@DaneLLL Hi, I bought an EMMC version Jetson Nano yesterday. I tested the USB and there are no problems with the emmc version. What reason make the devkit version had problems with USB.

This line of code has disappeared.

1 Like

Hello,

What documentation should I look for on this issue?

Thank you.

Hello,

I am struggling with a similar problem.
We also made custom carrier boards.
After a certain period of time, the USB does not recover after it goes into suspend mode.
Have you ever solved this problem?
If you have solved it, can you guide me?

Thank you.