Jetson Orin nano devkit USB type-c port cannot communicate with device using USB 3.0

Hi,

On my Jetson Orin Nano Dev Kit, I found that the type-c port host mode cannot detect the devices compatible with USB 3.2 using USB 3.2, but accesses the devices using USB 2.0. According to the hardware spec, it should support USB 3.2[1].

Environment of the Jetson Orin Nano Dev Kit:

OS is booted on a SD card. The firmware was installed on the module using the following command in BSP[0]:

sudo ./flash.sh -k A_cpu-bootloader p3768-0000-p3767-0000-a0-qspi internal

When monitoring the serial console, I could see the firmware version is:

Jetson UEFI firmware (version 36.4.4-gcid-41062509 built on 2025-06-16T15:25:51+00:00)
$ cat /etc/nv_tegra_release 
# R36 (release), REVISION: 4.4, GCID: 41062509, BOARD: generic, EABI: aarch64, DATE: Mon Jun 16 16:07:13 UTC 2025
# KERNEL_VARIANT: oot
TARGET_USERSPACE_LIB_DIR=nvidia
TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia

When I plugged the USB disk drive on my pc:

:) tmp.KILQTbfrlU > lsusb 
Bus 004 Device 005: ID 346d:5678 USB Disk 32
:) tmp.KILQTbfrlU > lsusb -D /dev/bus/usb/004/005
Device: ID 346d:5678 USB Disk 32
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
...

You can see the device can support USB 3.2.
However, when I plugged the usb drive on the Jetson Orin Nano Dev Kit, it showed:

$ lsusb 
...
Bus 001 Device 005: ID 346d:5678 USB Disk 32
...
$ lsusb -D /dev/bus/usb/001/005 
Device: ID 346d:5678 USB Disk 32
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10

I also tried flipping the USB disk drive. The value of bcdUSB was still 2.10.
dmesg -w when plugging in the USB disk drive:

[  770.345616] fusb301 1-0025: fusb301_work_handler: int_sts[0x01]
[  770.346228] fusb301 1-0025: sts[0x11], type[0x10]
[  770.346565] fusb301 1-0025: fusb301_set_mode: mode (4)(4)
[  770.346901] fusb301 1-0025: fusb_update_state: a
[  770.950135] fusb301 1-0025: fusb301_set_mode: mode (1)(1)
[  770.950500] fusb301 1-0025: fusb_update_state: b
[  771.088934] fusb301 1-0025: fusb301_work_handler: int_sts[0x01]
[  771.089503] fusb301 1-0025: sts[0x11], type[0x10]
[  771.090297] fusb301 1-0025: fusb301_set_dfp_power: host current(1)
[  771.090307] fusb301 1-0025: fusb_update_state: 7
[  771.104341] tegra-xusb 3610000.usb: Firmware timestamp: 2023-02-10 03:48:10 UTC
[  772.315340] usb 1-1: new high-speed USB device number 7 using tegra-xusb
[  772.473062] usb-storage 1-1:1.0: USB Mass Storage device detected
[  772.473513] scsi host0: usb-storage 1-1:1.0
[  773.477986] scsi 0:0:0:0: Direct-Access     VendorC  ProductCode      3.00 PQ: 0 ANSI: 4
[  773.477986] scsi 0:0:0:0: Direct-Access     VendorC  ProductCode      3.00 PQ: 0 ANSI: 4
[  773.479803] sd 0:0:0:0: [sda] 62054400 512-byte logical blocks: (31.8 GB/29.6 GiB)
[  773.479979] sd 0:0:0:0: [sda] Write Protect is off
[  773.479988] sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00
[  773.479803] sd 0:0:0:0: [sda] 62054400 512-byte logical blocks: (31.8 GB/29.6 GiB)
[  773.479979] sd 0:0:0:0: [sda] Write Protect is off
ode773.480925] sd [  0:0.48:0:5] sd 0:0:0:0: [sda] No Caching mode page found
e cache: write through0:0: [sda] Assuming dnd

[  773.480942] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  773.499572]  sda: sda1
[  773.500642] sd 0:0:0:0: [sda] Attached SCSI removable disk
[  773.500642] sd 0:0:0:0: [sda] Attached SCSI removable disk

Any help is appreciated, thank you.

Could you also try other usb super device?

Ok, this time I used another USB super device. When I plugged the device on the Type-C port, it didn’t appear in lsusb.

$ cat dmesg-plug-type-c 
# Plug in
[ 2092.841407] fusb301 1-0025: fusb301_work_handler: int_sts[0x01]
[ 2092.842170] fusb301 1-0025: sts[0x21], type[0x10]
[ 2092.842519] fusb301 1-0025: fusb301_set_mode: mode (4)(4)
[ 2092.842865] fusb301 1-0025: fusb_update_state: a
[ 2093.451534] fusb301 1-0025: fusb301_set_mode: mode (1)(1)
[ 2093.451873] fusb301 1-0025: fusb_update_state: b
[ 2093.589353] fusb301 1-0025: fusb301_work_handler: int_sts[0x01]
[ 2093.589919] fusb301 1-0025: sts[0x21], type[0x10]
[ 2093.590735] fusb301 1-0025: fusb301_set_dfp_power: host current(1)
[ 2093.590741] fusb301 1-0025: fusb_update_state: 7

#Unplug

[ 2165.468478] fusb301 1-0025: fusb301_work_handler: int_sts[0x02]
[ 2165.468489] fusb301 1-0025: fusb301_detach: type[0x10] chipstate[0x07]
[ 2165.469664] fusb301 1-0025: fusb301_set_mode: mode (32)(32)
[ 2165.470006] fusb301 1-0025: fusb_update_state: 1

$ lsusb 
Bus 002 Device 002: ID 0bda:0489 Realtek Semiconductor Corp. 4-Port USB 3.0 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 17ef:608d Lenovo Optical Mouse
Bus 001 Device 006: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 001 Device 002: ID 0bda:5489 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

When I plugged the device on a USB-A port, it was shown in lsusb and correctly registered as a USB 3.2 device:

[ 2211.558215] usb 2-1.3: new SuperSpeed Plus Gen 2x1 USB device number 4 using tegra-xusb
[ 2211.587506] usb-storage 2-1.3:1.0: USB Mass Storage device detected
[ 2211.587911] scsi host0: usb-storage 2-1.3:1.0
[ 2212.616161] scsi 0:0:0:0: Direct-Access     Fanxiang FF520            0205 PQ: 0 ANSI: 6
[ 2213.121455] sd 0:0:0:0: [sda] 500118192 512-byte logical blocks: (256 GB/238 GiB)
[ 2213.122940] sd 0:0:0:0: [sda] Write Protect is off
[ 2213.122951] sd 0:0:0:0: [sda] Mode Sense: 47 00 00 08
[ 2213.124158] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2213.144749]  sda: sda1 sda2 sda3
[ 2213.149533] sd 0:0:0:0: [sda] Attached SCSI disk

$ lsusb 
Bus 002 Device 004: ID 152d:0583 JMicron Technology Corp. / JMicron USA Technology Corp. JMS583Gen 2 to PCIe Gen3x2 Bridge
Bus 002 Device 002: ID 0bda:0489 Realtek Semiconductor Corp. 4-Port USB 3.0 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 17ef:608d Lenovo Optical Mouse
Bus 001 Device 006: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 001 Device 002: ID 0bda:5489 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

What device is in use? And is there any type C to A adapter there?

This one?

This is the device:

JMicron Technology Corp. / JMicron USA Technology Corp. JMS583Gen 2 to PCIe Gen3x2 Bridge

This is a usb drive having both type-a male port and type-c male port.

So when you use that type C male port connect to Orin Nano devkit, it cannot detect the device?

No. When I use the type-c male port connect to the type-c female port on the Orin Nano devkit, lsusb on the Orin Nano devkit does not show the device. However, when I plugged the usb disk drive type-c male port on my pc, lsusb shows the device.

:) tmp.NOIDh6gKLU > lsusb --tree -v
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 1: Dev 8, If 0, Class=Mass Storage, Driver=uas, 10000M
        ID 152d:0583 JMicron Technology Corp. / JMicron USA Technology Corp. JMS583Gen 2 to PCIe Gen3x2 Bridge

Such issue may need to use USB analyzer to check.

Do you have such tool here that can dump out the USB bus trace?

Hi, before trying to use the USB analyzer. I would like to know if this issue can be reproduced on your side. I have two devkit carrier boards, both of them have this issue.

Thank you.

Such issue requires to use specific device to test.

Even I can reproduce issue with another USBSS device, it does not mean the final fix would fix your case.
And maybe I cannot reproduce similar issue either. Lots of kinds of cases.

I just tested a USB SS device on the type C port, and it could be detected as usb3.0.

Is this a developer’s kit? If it is a third party carrier board, then it could be a device tree issue. Also, your device ID appears to be “152d:0583”; use that to produce a log file of the fully verbose lsusb (double check that I named the correct ID):
sudo lsusb -d 152d:0583 -vvv 2>&1 | tee log_verbose.txt

Note that sudo is required for fully verbose. Sometimes you see this on a fully function USB port if verbosity is being rejected due to lack of being user root:
Couldn't open device, some information will be missing

Also, is this device self-powered, or is it using power from the USB connector? Sometimes a power issue will cause reverting to a lower speed.

Hi @linuxdev @WayneWWW,

I found that the issue was solved when I switch an Jetson Orin Nano Module (I have two). The usb disk drive can be correctly detected as a USB 3 device when connected to the Type-C port. Thank you for your help and patience.

$ lsusb --tree -v
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
        ID 0bda:0489 Realtek Semiconductor Corp. 
    |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
        ID 346d:5678  
$ lsusb -D /dev/bus/usb/002/003
Device: ID 346d:5678 USB Disk 32
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
...

Hi, I just realised the two modules I have are a Jetson Orin Nano Devkit module and a Jetson Orin NX module. When I used Jetson Orin NX module with the Jetson Orin Nano Devkit carrier board, the type-c port can detect the USB3.2 device. However, the type-c port can only use USB2.0 with the USB3.2 device with the Jetson Orin Nano Devkit module. I’m wondering if this is because of the limit of the Jetson Orin Nano Devkit module.

No, there is no such limit. I think you could try more USB device first and also cable.

Any time you see “Couldn't open device, some information will be missing” in lsusb use sudo. Often that information just isn’t available for an individual user.

I’m not sure if you’re saying to close the topic or not, but do beware that some devices require a certain amount of bandwidth be reserved or available for them to work (devices I know of are some cameras and all isochronous mode devices). If a device is capable of USB3, and also capable of USB2, but too much bandwidth is consumed by other devices for USB3 to work, then the device will revert back to USB2. Some cameras (notably stereo Zed cameras, but others as well) do not allow USB2 mode and can only work in USB3 mode. For these USB3-only devices, if there is not enough bandwidth available, then that camera will drop out completely. Sharing bandwidth includes everything on a HUB combined, and not all ports on a computer (including a Jetson) are actually different independent root hubs.

Mass storage devices would probably all allow USB2 mode, and if they drop out, then it is from some other reason other than bandwidth. You would really need the fully verbose log (I gave the command in the previous post, and this can be attached to the forum thread) to know more about full capabilities. If the device is dropping out due to other devices, then you’d need to get that log when that device shows up by removing other devices (temporarily).

Hi, thanks for your patience, and thanks for sharing the knowledge about the USB device bandwidth. This is the output of sudo lsusb -d 346d:5678 -vvv 2>&1 | tee log-verbose.txt:

can't get debug descriptor: Resource temporarily unavailable

Bus 001 Device 019: ID 346d:5678 USB Disk 20
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x346d 
  idProduct          0x5678 
  bcdDevice            3.20
  iManufacturer           1 USB
  iProduct                2 Disk 20
  iSerial                 3 FC047651175E4
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x0016
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000006
      BESL Link Power Management (LPM) Supported
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   3
      Lowest fully-functional device speed is SuperSpeed (5Gbps)
    bU1DevExitLat           0 micro seconds
    bU2DevExitLat           0 micro seconds
Device Status:     0x0000
  (Bus Powered)

I see the device is capable of the original 5000 Mb/s USB 3 standard (or USB3.1 gen. 1). Because it uses bulk transfer it won’t detach when bandwidth is too limited, but other devices might still detach if those other devices require a certain bandwidth and the ID 1d6b:0003 device is consuming bandwidth. A buffer could still fill if not read fast enough (causing an error or timeout; depends on the driver implementation).

Incidentally, this device should never be able to run at 10000M (10 Gb/s), its own specs show it supports 5000M (5 Gb/s):

    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)

Is this device self-powered, or does it draw power from the USB wire? Not meeting power requirements can cause a slower USB mode.

Basically, this device might lose USB3 5000M mode if:

  • The upstream does not support at least USB3 5000M. This, in turn, can be from:
    • Not be plugged into a port capable of 5000M.
    • Signal quality being insufficient. This can be common with cheap cables, but USB3 cables tend not suffer from this as much as micro-USB for USB2 or slower.
    • Power draw of this device plus others on that root HUB cannot support the power draw (USB2 is not required to put out as much power; if all devices revert from USB3 to USB2 on a root HUB, then the root HUB does not need to provide as much power). As a HUB itself, the same is true of its outputs as a supplier (source) to other consumers (sinks) of power.

Regarding a port’s capabilities, this changes depending on the controller, the physical wiring, and the device tree (which more or less commands the controller configuration). Signal quality is external to the port and can have many causes of problems.

This could be very important: If you monitor “dmesg --follow”, and all else remains the same, but you have booted without this device on USB, and then plug in the device, what shows up specifically as the new log messages which resulted from the plugin? The lsusb details discuss what the device is, but the plugin event tells us something about what the driver thinks. If no driver loads, then the problem is different than loading at 5000M or 480M (480M on a port known to support 5000M might point towards power as an issue or signal quality; the log might distinguish between the two).

Hi,

The device is self-powered, it’s a USB drive.

When I booted without this device on USB, and then plugged in the device, the new log messages which resulted from the plugin is:

[   54.224855] fusb301 1-0025: fusb301_work_handler: int_sts[0x01]
[   54.225430] fusb301 1-0025: sts[0x11], type[0x10]
[   54.225921] fusb301 1-0025: fusb301_set_mode: mode (4)(4)
[   54.226254] fusb301 1-0025: fusb_update_state: a
[   54.849893] fusb301 1-0025: fusb301_set_mode: mode (1)(1)
[   54.850235] fusb301 1-0025: fusb_update_state: b
[   54.987850] fusb301 1-0025: fusb301_work_handler: int_sts[0x01]
[   54.988425] fusb301 1-0025: sts[0x11], type[0x10]
[   54.989245] fusb301 1-0025: fusb301_set_dfp_power: host current(1)
[   54.989251] fusb301 1-0025: fusb_update_state: 7
[   55.001928] tegra-xusb 3610000.usb: Firmware timestamp: 2023-02-10 03:48:10 UTC
[   56.276080] usb 1-1: new high-speed USB device number 3 using tegra-xusb
[   56.433077] usb-storage 1-1:1.0: USB Mass Storage device detected
[   56.433358] scsi host0: usb-storage 1-1:1.0
[   57.442292] scsi 0:0:0:0: Direct-Access     VendorC  ProductCode      3.20 PQ: 0 ANSI: 4
[   57.442292] scsi 0:0:0:0: Direct-Access     VendorC  ProductCode      3.20 PQ: 0 ANSI: 4
[   57.445313] sd 0:0:0:0: [sda] 61440000 512-byte logical blocks: (31.5 GB/29.3 GiB)
-byte logica.44l blocks: (31.50: /29.3 GiBCacProtect is o00 512ff
 0:0:0 57.44564 Wrsd 0:0:0:0: [sda]          [   5g mode pa06]found
[  umi 57ng .44551cac2] sd 0:0 th0: gh
Mode Sense: 03 00 00 00
[   57.445644] sd 0:0:0:0: [sda] No Caching mode page found
[   57.445648] sd 0:0:0:0: [sda] Assuming drive cache: write through
[   57.462944] sd 0:0:0:0: [sda] Attached SCSI removable disk
[   57.460499]  sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8 sda9 sda10 sda11 sda12 sda13 sda14 sda15
[   57.462944] sd 0:0:0:0: [sda] Attached SCSI removable disk

lsusb --tree -v:

$ lsusb --tree -v
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
        ID 0bda:0489 Realtek Semiconductor Corp. 
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        ID 346d:5678  
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        ID 0bda:5489 Realtek Semiconductor Corp.