USB does not working on Jatson AGX Xavier

Hi,

I think below part is wrong. These two lines mean your usb3-0 and usb3-2 are both using the same usb2-0 port 0. Please correct it to match your design.

usb3-0 {
				nvidia,usb2-companion = <0x0>;
				status = "okay";
			};
			usb3-2 {
				nvidia,usb2-companion = <0>;
				status = "okay";

Hi WayneWWW

our design have two type A usb port. two usb pin is the same as xavier two type c usb.

after i modify, the error message still show on console.

what’s mean of this error message and how to fixed it?

our design have two type A usb port. two usb pin is the same as xavier two type c usb.
Yes, I understand. Every usb3 port needs one usb2 port to accompany.

Could you share what you have modified?

Hi WayneWWW

this is my modify

usb3-0 {
                                nvidia,usb2-companion = <0x0>;
                                status = "okay";
                        };
                        usb3-2 {
                                nvidia,usb2-companion = <1>;
                                status = "okay";
                        };
                        usb3-3 {
                                nvidia,usb2-companion = <3>;
                                nvidia,usb3-gen1-only= <1>;
                                status = "okay";
                        };

before i modify this dts. i can use command to see the usb device.

nvidia@jetson-0424218031082:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 005: ID 1c4f:000e SiGma Micro Genius KB-120 Keyboard
Bus 001 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 002: ID 8564:4100 Transcend Information, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
nvidia@jetson-0424218031082:~$
nvidia@jetson-0424218031082:~$
nvidia@jetson-0424218031082:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
nvidia@jetson-0424218031082:~$

and my conlose message will show this message

[  632.732282] tegra-xusb 3610000.xhci: Cannot set link state.
[  632.732495] usb usb2-port4: cannot disable (err = -32)
[  632.732645] tegra-xusb 3610000.xhci: Cannot set link state.
[  632.735440] usb usb2-port4: cannot disable (err = -32)
[  635.076627] usb 2-4: Device not responding to setup address.
[  635.284627] usb 2-4: Device not responding to setup address.
[  635.491763] usb 2-4: device not accepting address 39, error -71
[  635.491991] tegra-xusb 3610000.xhci: Cannot set link state.
[  635.492152] usb usb2-port4: cannot disable (err = -32)
[  636.979880] tegra-xusb 3610000.xhci: Cannot set link state.
[  636.980059] usb usb2-port4: cannot disable (err = -32)
[  636.980196] tegra-xusb 3610000.xhci: Cannot set link state.
[  636.980320] usb usb2-port4: cannot disable (err = -32)
[  639.324411] usb 2-4: Device not responding to setup address.
[  639.532323] usb 2-4: Device not responding to setup address.
[  639.739606] usb 2-4: device not accepting address 41, error -71
[  639.739818] tegra-xusb 3610000.xhci: Cannot set link state.
[  639.739970] usb usb2-port4: cannot disable (err = -32)
[  641.227678] tegra-xusb 3610000.xhci: Cannot set link state.
[  641.227941] usb usb2-port4: cannot disable (err = -32)
[  641.228113] tegra-xusb 3610000.xhci: Cannot set link state.
[  641.228248] usb usb2-port4: cannot disable (err = -32)
[  643.572176] usb 2-4: Device not responding to setup address.
[  643.780066] usb 2-4: Device not responding to setup address.
[  643.987293] usb 2-4: device not accepting address 43, error -71
[  643.987554] tegra-xusb 3610000.xhci: Cannot set link state.
[  643.987733] usb usb2-port4: cannot disable (err = -32)
[  645.475424] tegra-xusb 3610000.xhci: Cannot set link state.
[  645.475656] usb usb2-port4: cannot disable (err = -32)
[  645.475817] tegra-xusb 3610000.xhci: Cannot set link state.
[  645.475949] usb usb2-port4: cannot disable (err = -32)
[  647.819857] usb 2-4: Device not responding to setup address.
[  648.027794] usb 2-4: Device not responding to setup address.
[  648.235027] usb 2-4: device not accepting address 45, error -71
[  648.235223] tegra-xusb 3610000.xhci: Cannot set link state.
[  648.235366] usb usb2-port4: cannot disable (err = -32)
[  649.723499] tegra-xusb 3610000.xhci: Cannot set link state.
[  649.723736] usb usb2-port4: cannot disable (err = -32)
[  649.723914] tegra-xusb 3610000.xhci: Cannot set link state.
[  649.724035] usb usb2-port4: cannot disable (err = -32)
[  652.067748] usb 2-4: Device not responding to setup address.
[  652.275680] usb 2-4: Device not responding to setup address.
[  652.482879] usb 2-4: device not accepting address 47, error -71
[  652.483113] tegra-xusb 3610000.xhci: Cannot set link state.
[  652.483296] usb usb2-port4: cannot disable (err = -32)
[  653.971048] tegra-xusb 3610000.xhci: Cannot set link state.

Got it. I will check with other developer for this case.

Hi jim-liu,

Our developer does not see anything wrong in current device tree so we need below information from you.

  1. The failed device’s pid and vid
  2. Does the issue also happened on other HS/SS devices?
  3. Does the issue also happened on the other port especially USB3-3?

Please also get the full kernel message with xhci logs for further debugging
echo ‘module usbcore +p’ > /sys/kernel/debug/dynamic_debug/control
echo ‘module xhci_hcd +p’ > /sys/kernel/debug/dynamic_debug/control
echo 8 > /proc/sys/kernel/printk

Hi WayneWWW

this is the error message after i set the command.

how do i get other information for you?

nvidia@jetson-0424218031082:~$
nvidia@jetson-0424218031082:~$ [  558.214700] tegra-xusb 3610000.xhci: Port Status Change Event for port 8
[  558.214893] tegra-xusb 3610000.xhci: handle_port_status: starting port polling.
[  558.216015] hub 1-0:1.0: state 7 ports 4 chg 0000 evt 0010
[  558.216225] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x202e1
[  558.216363] tegra-xusb 3610000.xhci: Get port status returned 0x10101
[  558.217144] tegra-xusb 3610000.xhci: clear port connect change, actual port 3 status  = 0x2e1
[  558.217354] usb usb1-port4: status 0101, change 0001, 12 Mb/s
[  558.217505] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2e1
[  558.217631] tegra-xusb 3610000.xhci: Get port status returned 0x101
[  558.222605] tegra-xusb 3610000.xhci: Port Status Change Event for port 4
[  558.222756] tegra-xusb 3610000.xhci: resume root hub
[  558.222888] tegra-xusb 3610000.xhci: handle_port_status: starting port polling.
[  558.223132] usb usb2: usb wakeup-resume
[  558.223236] usb usb2: usb auto-resume
[  558.223489] hub 2-0:1.0: hub_resume
[  558.223660] tegra-xusb 3610000.xhci: get port status, actual port 0 status  = 0x2a0
[  558.223819] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  558.229861] tegra-xusb 3610000.xhci: get port status, actual port 1 status  = 0x2a0
[  558.237323] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  558.243751] tegra-xusb 3610000.xhci: get port status, actual port 2 status  = 0x2a0
[  558.251317] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  558.258016] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2e1
[  558.265666] tegra-xusb 3610000.xhci: Get port status returned 0x101
[  558.272101] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x21203
[  558.279742] tegra-xusb 3610000.xhci: Get port status returned 0x10203
[  558.286308] usb usb2-port4: status 0203 change 0001
[  558.291013] tegra-xusb 3610000.xhci: clear port connect change, actual port 3 status  = 0x1203
[  558.324320] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2e1
[  558.324478] tegra-xusb 3610000.xhci: Get port status returned 0x101
[  558.336297] tegra-xusb 3610000.xhci: xhci_hub_status_data: stopping port polling.
[  558.336503] tegra-xusb 3610000.xhci: xhci_hub_status_data: stopping port polling.
[  558.360343] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2e1
[  558.360590] tegra-xusb 3610000.xhci: Get port status returned 0x101
[  558.380735] tegra-xusb 3610000.xhci: Port Status Change Event for port 8
[  558.380891] tegra-xusb 3610000.xhci: handle_port_status: starting port polling.
[  558.392768] tegra-xusb 3610000.xhci: Port Status Change Event for port 4
[  558.392930] tegra-xusb 3610000.xhci: handle_port_status: starting port polling.
[  558.396388] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x202a0
[  558.396570] tegra-xusb 3610000.xhci: Get port status returned 0x10100
[  558.396784] tegra-xusb 3610000.xhci: clear port connect change, actual port 3 status  = 0x2a0
[  558.404424] hub 2-0:1.0: state 7 ports 4 chg 0010 evt 0000
[  558.404604] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x202c0
[  558.406532] tegra-xusb 3610000.xhci: Get port status returned 0x102c0
[  558.413642] tegra-xusb 3610000.xhci: clear port connect change, actual port 3 status  = 0x2a0
[  558.422103] usb usb2-port4: do warm reset
[  558.429409] tegra-xusb 3610000.xhci: Port Status Change Event for port 4
[  558.432873] tegra-xusb 3610000.xhci: handle_port_status: starting port polling.
[  558.440380] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  558.447841] tegra-xusb 3610000.xhci: Get port status returned 0x100
[  558.484300] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2802a0
[  558.484489] tegra-xusb 3610000.xhci: Get port status returned 0x3002a0
[  558.484662] usb usb2-port4: not warm reset yet, waiting 50ms
[  558.488502] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  558.488642] tegra-xusb 3610000.xhci: Get port status returned 0x100
[  558.524347] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  558.524501] tegra-xusb 3610000.xhci: Get port status returned 0x100
[  558.544323] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2802a0
[  558.544491] tegra-xusb 3610000.xhci: Get port status returned 0x3002a0
[  558.544657] usb usb2-port4: not warm reset yet, waiting 200ms
[  558.560359] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  558.560517] tegra-xusb 3610000.xhci: Get port status returned 0x100
[  558.560690] usb usb1-port4: debounce total 200ms stable 100ms status 0x100
[  558.560853] hub 1-0:1.0: state 7 ports 4 chg 0000 evt 0010
[  558.560981] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  558.561124] tegra-xusb 3610000.xhci: Get port status returned 0x100
[  558.584286] tegra-xusb 3610000.xhci: xhci_hub_status_data: stopping port polling.
[  558.752313] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2802a0
[  558.752477] tegra-xusb 3610000.xhci: Get port status returned 0x3002a0
[  558.752626] usb usb2-port4: not warm reset yet, waiting 200ms
[  558.960261] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2802a0
[  558.960481] tegra-xusb 3610000.xhci: Get port status returned 0x3002a0
[  558.960653] usb usb2-port4: not warm reset yet, waiting 200ms
[  559.168247] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2802a0
[  559.168415] tegra-xusb 3610000.xhci: Get port status returned 0x3002a0
[  559.168600] usb usb2-port4: not warm reset yet, waiting 200ms
[  559.168846] tegra-xusb 3610000.xhci: clear port reset change, actual port 3 status  = 0x802a0
[  559.169075] tegra-xusb 3610000.xhci: clear port warm(BH) reset change, actual port 3 status  = 0x2a0
[  559.169287] tegra-xusb 3610000.xhci: clear port link state change, actual port 3 status  = 0x2a0
[  559.169473] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  559.169615] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  559.169770] tegra-xusb 3610000.xhci: clear port connect change, actual port 3 status  = 0x2a0
[  559.169970] tegra-xusb 3610000.xhci: Cannot set link state.
[  559.170111] usb usb2-port4: cannot disable (err = -32)
[  559.170366] usb usb2-port4: status 02c0, change 0001, 10.0 Gb/s
[  559.170830] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  559.171427] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  559.212284] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  559.212459] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  559.248239] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  559.248389] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  559.284220] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  559.284385] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  559.320253] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  559.320417] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  559.320601] usb usb2-port4: debounce total 100ms stable 100ms status 0x2a0
[  559.320743] hub 2-0:1.0: state 7 ports 4 chg 0000 evt 0010
[  559.320876] tegra-xusb 3610000.xhci: get port status, actual port 3 status  = 0x2a0
[  559.321030] tegra-xusb 3610000.xhci: Get port status returned 0x2a0
[  559.321224] tegra-xusb 3610000.xhci: set port remote wake mask, actual port 0 status  = 0xe0002a0
[  559.321422] tegra-xusb 3610000.xhci: set port remote wake mask, actual port 1 status  = 0xe0002a0
[  559.321600] tegra-xusb 3610000.xhci: set port remote wake mask, actual port 2 status  = 0xe0002a0
[  559.321779] tegra-xusb 3610000.xhci: set port remote wake mask, actual port 3 status  = 0xe0002a0
[  559.322034] hub 2-0:1.0: hub_suspend
[  559.322297] usb usb2: bus auto-suspend, wakeup 1
[  559.322768] tegra-xusb 3610000.xhci: xhci_hub_status_data: stopping port polling.
[  559.328245] tegra-xusb 3610000.xhci: xhci_hub_status_data: stopping port polling.

nvidia@jetson-0424218031082:~$
nvidia@jetson-0424218031082:~$

Hi etta,

lsusb can give out the PID and VID of failure devices.

Question 2 and 3 are just general problem to ask you to try other HS/SS devices and on the other usb port (usb 3-3).

What is your concern here?

Hi WayneWWW
I have the same problem with USB .That is all USB ports do not work.It looks like the same problem with the topic.Can you tell me how to salve the problem finally?
My Problem:
All USB ports do not work.There is also not pd controller on my board.

Hi 544485316,

We will release new adaptation guide for this issue recently.

I have a fast way to passby the otg and make USB work.
You can just change the mode of usb2-0 to “host” in xusb_padctl@3520000.

Hi WayneWWW,
could you share one device tree that can make USB work (one or more ports can work) without USB PD controller on the official carrier board ?

I have the same problem that the Jetson Xavier is not recognized over usb.
I’m running Ubuntu 18.04 on my host. I connect the Xavier with the included USB-C to USB3.0 cable. I use the USB-C connector on the front, next to the power LED. I connect the USB3.0 to a USB3.0 port on my desktop. I start the Xavier (from power off) into recovery mode by holding down the middle button, then also holding down the power button, and I release both.

lsusb is not listing the device. If I run dmesg --follow and replug the usb cable, I get

[ 7404.494007] usb 1-1: new full-speed USB device number 54 using xhci_hcd
[ 7404.622065] usb 1-1: device descriptor read/64, error -71
[ 7404.857933] usb 1-1: device descriptor read/64, error -71
[ 7405.094047] usb 1-1: new full-speed USB device number 55 using xhci_hcd
[ 7405.221978] usb 1-1: device descriptor read/64, error -71
[ 7405.457955] usb 1-1: device descriptor read/64, error -71
[ 7405.566099] usb usb1-port1: attempt power cycle
[ 7406.218030] usb 1-1: new full-speed USB device number 56 using xhci_hcd
[ 7406.218312] usb 1-1: Device not responding to setup address.
[ 7406.426352] usb 1-1: Device not responding to setup address.
[ 7406.633924] usb 1-1: device not accepting address 56, error -71
[ 7406.762036] usb 1-1: new full-speed USB device number 57 using xhci_hcd
[ 7406.762213] usb 1-1: Device not responding to setup address.
[ 7406.970049] usb 1-1: Device not responding to setup address.
[ 7407.177956] usb 1-1: device not accepting address 57, error -71
[ 7407.178027] usb usb1-port1: unable to enumerate USB device

where the address is counting up to 127, but no address works. Any hints on how I can solve this?

Hi mab1992,

I am not sure if this issue is same. Are you using a custom carrier board and you still have a type C but no PD controller?

I am not sure what those things mean, but I could resolve the issue by pressing the reset button, after pressing the combination for the recovery mode.

So

  1. press and hold force recovery
  2. press and hold power
  3. release both
  4. press reset

Then it was recognized and I could ping it.

Hi mab1992,

It does not make sense.

step 1,2,3 put the device into recovery mode for flash. However, the reset button just reboot the device so the step 1,2,3 are in vain. The only step working here is the reset button…

Hi,

It’s been a while since this thread was ended, but I bumped into same questions and still can’t make the USB work.
In my design I have two type A USB3 connectors, connected directly to the Xavier connector.
I also have a micro-usb connector dedicated for recovery.
I followed the instructions in the following link, but still can’t make it work:
https://elinux.org/Jetson/FAQ/BSP/Remove_TypeC
Can you explain the regulator part? I have a power switch which is connected to GPIO22 (pin F54), exactly as mentioned in the DG. I saw that the power didn’t pass so I enabled it manually - what happens in this case?
For the recovery USB, I didn’t connect the ID pin - I saw this on the evaluation board - is this correct?

Thank you very much,

Efi

please file new topic for your issue. I think it is related to board design. The software change in dtb should not take effect during flash.

HI,
I met the same problem.our carry board just used the usb2.0 port 1 2 3 as usb host.And we just remove the PD controler. Except this,all things is the same to dev-kit.Could you share me the dtsi file.
Thank you

Our solution was colse I2C2_GP2 (link PD controller) on BSP then can be solve this issue.

 Bill