USB device does not enumerate after ubuntu boot

A balser industrial usb3.0 camera is always plugged into the usb port of my Jetson nano. After the Jetson nano is powered on, there is a certain probability that the camera cannot be enumerated. Replugging the usb or replacing it with another usb device still fails to enumerate. But restarting Jetson nano can solve this problem. The probability of this error is about 1/20.
The log of the problem is as follows:
dmesg | grep -i usb

[    0.000000] Kernel command line: tegraid=21.1.2.0.0 ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8 debug_uartport=lsport,4 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1125 core_edp_ma=4000 gpt tegra_fbmem=0x140000@0x92cb4000 is_hdmi_initialised=1  earlycon=uart8250,mmio32,0x70006000  root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 sdhci_tegra.en_boot_part_access=1
[    0.431093] iommu: Adding device 70090000.xusb to group 2
[    0.503726] vdd-usb-vbus: 5000 mV
[    0.503957] vdd-usb-vbus: supplied by vdd-5v0-sys
[    0.504314] vdd-usb-vbus2: 5000 mV
[    0.551338] usbcore: registered new interface driver usbfs
[    0.551392] usbcore: registered new interface driver hub
[    0.551433] usbcore: registered new device driver usb
[    0.616314] vdd-usb-vbus2: supplied by vdd-3v3-sys
[    0.618361] vdd-usb-hub-en: 5000 mV
[    0.618696] vdd-usb-hub-en: supplied by vdd-1v8-sys
[    1.029859] tegra-xusb-padctl 7009f000.xusb_padctl: TEGRA_FUSE_SKU_CALIB_0 = 0xa249413
[    1.029868] tegra-xusb-padctl 7009f000.xusb_padctl: TEGRA_FUSE_USB_CALIB_EXT_0 = 0x4
[    1.031900] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-usb2.0, lane = usb2-0, function = xusb
[    1.032001] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-usb2.1, lane = usb2-1, function = xusb
[    1.032102] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-usb2.2, lane = usb2-2, function = xusb
[    1.032290] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.3, lane = pcie-0, function = pcie-x1
[    1.032384] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.4, lane = pcie-1, function = pcie-x4
[    1.032469] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.5, lane = pcie-2, function = pcie-x4
[    1.032560] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.6, lane = pcie-3, function = pcie-x4
[    1.032648] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.7, lane = pcie-4, function = pcie-x4
[    1.032740] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.8, lane = pcie-5, function = xusb
[    1.032830] tegra-xusb-padctl 7009f000.xusb_padctl: dev = phy-pcie.9, lane = pcie-6, function = xusb
[    1.131478] usbcore: registered new interface driver r8152
[    1.131524] usbcore: registered new interface driver asix
[    1.131570] usbcore: registered new interface driver ax88179_178a
[    1.131613] usbcore: registered new interface driver cdc_ether
[    1.131649] usbcore: registered new interface driver net1080
[    1.131692] usbcore: registered new interface driver cdc_subset
[    1.131731] usbcore: registered new interface driver zaurus
[    1.131782] usbcore: registered new interface driver cdc_ncm
[    1.133211] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.133279] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.136131] tegra-xusb 70090000.xusb: USB2 port 0 has OTG_CAP
[    1.136747] tegra-xusb-padctl 7009f000.xusb_padctl: enabled OTG on UTMI pad 0
[    1.137935] tegra-xusb 70090000.xusb: extcon 0: ffffffc0f9452400 id
[    1.140497] usbcore: registered new interface driver uas
[    1.140562] usbcore: registered new interface driver usb-storage
[    1.140673] usbcore: registered new interface driver usbserial
[    1.140981] tegra-xusb 70090000.xusb: Firmware timestamp: 2020-07-31 09:33:12 UTC, Version: 50.26 release
[    1.141034] tegra-xusb 70090000.xusb: xHCI Host Controller
[    1.141070] tegra-xusb 70090000.xusb: new USB bus registered, assigned bus number 1
[    1.141852] tegra-xusb 70090000.xusb: hcc params 0x0184f525 hci version 0x100 quirks 0x00050010
[    1.141918] tegra-xusb 70090000.xusb: irq 61, io mem 0x70090000
[    1.142190] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.142199] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.142204] usb usb1: Product: xHCI Host Controller
[    1.142209] usb usb1: Manufacturer: Linux 4.9.253-tegra xhci-hcd
[    1.142214] usb usb1: SerialNumber: 70090000.xusb
[    1.142987] hub 1-0:1.0: USB hub found
[    1.143805] tegra-xusb 70090000.xusb: xHCI Host Controller
[    1.143821] tegra-xusb 70090000.xusb: new USB bus registered, assigned bus number 2
[    1.143928] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    1.144021] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[    1.144028] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.144033] usb usb2: Product: xHCI Host Controller
[    1.144037] usb usb2: Manufacturer: Linux 4.9.253-tegra xhci-hcd
[    1.144041] usb usb2: SerialNumber: 70090000.xusb
[    1.144575] hub 2-0:1.0: USB hub found
[    1.145383] tegra-xusb 70090000.xusb: Upgrade port 0 to USB3.0
[    1.145390] tegra-xusb 70090000.xusb: Upgrade port 1 to USB3.0
[    1.147512] tegra-xudc-new 700d0000.xudc: USB charger detection disabled
[    1.148687] usbcore: registered new interface driver xpad
[    1.246225] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[    1.246553] usb usb2: usb_suspend_both: status 0
[    1.334467] usbcore: registered new interface driver usbhid
[    1.334470] usbhid: USB HID core driver
[    1.339871] usbcore: registered new interface driver snd-usb-audio
[    2.098265] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[    2.242232] usb usb1: usb_suspend_both: status 0
[    3.233170] usb 2-1: Device not responding to setup address.
[    3.438307] tegra-xusb 70090000.xusb: ERROR: unexpected setup address command completion code 0x11.
[    3.654100] usb 2-1: device not accepting address 2, error -22
[    8.844260] tegra-xusb 70090000.xusb: controller firmware hang
[    8.850085] tegra-xusb 70090000.xusb: hcd_reinit is disabled or in progress
[   17.075110] tegra-xusb 70090000.xusb: Stopped the command ring failed, maybe the host is dead
[   17.099635] tegra-xusb 70090000.xusb: Host not halted after 16000 microseconds.
[   17.099639] tegra-xusb 70090000.xusb: Abort command ring failed
[   17.105656] tegra-xusb 70090000.xusb: Timeout while waiting for setup device command
[   17.105666] tegra-xusb 70090000.xusb: HC died; cleaning up
[   17.111191] tegra-xusb 70090000.xusb: hcd_reinit is disabled or in progress
[   17.518059] usb 2-1: device not accepting address 3, error -108
[   17.524047] usb usb2-port1: attempt power cycle
[   17.842062] usb usb2-port1: couldn't allocate usb_device
[   48.244501] vdd-usb-vbus: disabling
[   48.244543] vdd-usb-vbus2: disabling
[   48.245586] vdd-usb-hub-en: disabling

How can I solve it?

Hi,
Please try the command after booting:
Power down USB ports - #4 by vsaw

See if the device can be enumerated successfully.

if I run:
sudo uhubctl -l 1-2 -a off
I would get:

No compatible devices detected!
Run with -h to get usage info.

if run:
sudo uhubctl
still get:

No compatible devices detected!
Run with -h to get usage info.

Hi,
It should run like:

nvidia@nvidia-desktop:~/uhubctl$ sudo ./uhubctl -l 1-2 -a off
Current status for hub 2-1 [0bda:0411 Generic 4-Port USB 3.1 Hub, USB 3.10, 4 po
rts, ppps]
  Port 1: 00a0 off
  Port 2: 00a0 off
  Port 3: 00a0 off
  Port 4: 00a0 off
Sent power off request
New status for hub 2-1 [0bda:0411 Generic 4-Port USB 3.1 Hub, USB 3.10, 4 ports,
 ppps]
  Port 1: 00a0 off
  Port 2: 00a0 off
  Port 3: 00a0 off
  Port 4: 00a0 off
Current status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.1 Hub, USB 2.10, 4 po
rts, ppps]
  Port 1: 0303 power lowspeed enable connect [03f0:0024 CHICONY HP Basic USB Key
board]
  Port 2: 0000 off
  Port 3: 0000 off
  Port 4: 0000 off
Sent power off request
New status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.1 Hub, USB 2.10, 4 ports,
 ppps]
  Port 1: 0000 off
  Port 2: 0000 off
  Port 3: 0000 off
  Port 4: 0000 off
nvidia@nvidia-desktop:~/uhubctl$ dmesg
[  831.184370] usb 2-1: usb_suspend_both: status 0
[  831.186463] usb usb2: usb_suspend_both: status 0
[  831.420349] usb 2-1: usb_suspend_both: status 0
[  831.421341] usb usb2: usb_suspend_both: status 0
[  831.467655] usb usb2: usb_suspend_both: status 0
[  831.517468] usb usb2: usb_suspend_both: status 0
[  831.748393] usb 2-1: usb_suspend_both: status 0
[  831.749372] usb usb2: usb_suspend_both: status 0
[  832.136364] usb 2-1: usb_suspend_both: status 0
[  832.137429] usb usb2: usb_suspend_both: status 0
[  834.014504] usb 1-2.1: USB disconnect, device number 7
[  834.103865] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[  834.123833] usb 1-2: usb_suspend_both: status 0
[  834.295996] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[  834.524172] usb 1-2.1: new low-speed USB device number 8 using tegra-xusb
[  834.563989] usb 1-2.1: New USB device found, idVendor=03f0, idProduct=0024
[  834.564058] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber
=0
[  834.564105] usb 1-2.1: Product: HP Basic USB Keyboard
[  834.564149] usb 1-2.1: Manufacturer: CHICONY
[  834.577721] input: CHICONY HP Basic USB Keyboard as /devices/70090000.xusb/us
b1/1-2/1-2.1/1-2.1:1.0/0003:03F0:0024.0005/input/input6
[  834.638996] hid-generic 0003:03F0:0024.0005: input,hidraw0: USB HID v1.11 Key
board [CHICONY HP Basic USB Keyboard] on usb-70090000.xusb-2.1/input0

Do you use Jetson Nano developer kit?

We tried 2 devices.
Jetson Nano Developer Kit B01
and
Jetson Nano module & carrier board designed by ourselves. Since we plan to use only one USB device, we didn’t put a USB hub chip on the carrier board.

Got same output from them.

Hi,
It looks like there’s single type-A port on the carrier board. If there’s a regulator supplying VBUS, you can try this to trigger re-enumeration:
Switch on and off usb ports programmatically on AGX - #5 by DaneLLL

I’m sorry. Is this a executable command?

~$ /sys/class/regulator/regulator.13# echo disabled > state
-bash: /sys/class/regulator/regulator.13#: No such file or directory

" /sys/class/regulator/regulator.13" is a directory path. Not a command…

Thanks. I should also use root.

echo disabled > state

the command seems powering down the regulator, because I notice the LED on my camera goes off. but It also made my Jetson Nano reboot immediately.

Hi,
regulator.13 is for Xavier developer kit. You would need to power off correct regulator per the carrier board. And the method is suggested only when the regulator supplies only USB rootport.

Isn’t it related to the Jetson Nano Module?
My circuit design refers to the official carrier board, only the USB hub part is deleted.
Where can I find the documents about these regulators?

Hi,
It is about VBUS pin of the type-A port on the carrier board. Please check if you can power off/on VBUS to trigger enumeration.

Hi DaneLLL,
Please check the schematic of my carrier board (USB port),
XEMA Jetson Nano Carrier Board V1.8.pdf (339.3 KB)
We use GPIO12 to control the VBUS of the USB A-port. I think this has the same effect as the solution you provided.
And that didn’t help in the problematic situation.
After all, re-plugging the USB doesn’t solve the problem either.
Is there any other way to solve this problem?

Seems your SY6280 EN is pulled high too soon by VDD_5V_IN

This is only a experimental version of my custom carrier board.
The problem described in this post was actually found on the official carrier board.
Re-plugging the USB doesn’t solve the problem.
After the problem of the USB enumeration occurs, the USB port is dead until the Jetson Nano is restarted.

Which jetpack version is in use?

Hi,
If the enumeration does not work after re-plugging the device, it may be an issue in signal quality. Please check our tuning guide to do compliance test. The default setting is for Jetson Nano developer kit and it may need to be adjusted for custom board.

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