A603 carrier board: One USB type A ports locked at USB 2.0 speed

There are two USB type A ports on the A603, and the spec says “2xUSB3.0 Type A (Integrated USB2.0)”. But I’m finding that one of the ports seems to be restricted to USB 2.0 speeds. When I use lsusb with my camera plugged into port 1, I get this:

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 1: Dev 3, If 0, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 1: Dev 3, If 1, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 1: Dev 3, If 2, Class=Miscellaneous Device, Driver=, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
    |__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M

But when I connect it to port 1, I see this instead:

/:  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 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 9, If 0, Class=Miscellaneous Device, Driver=, 480M
        |__ Port 1: Dev 9, If 1, Class=Miscellaneous Device, Driver=, 480M
        |__ Port 1: Dev 9, If 2, Class=Miscellaneous Device, Driver=, 480M

Since they’re supposed to both work at high speed, can anyone tell me why one of them won’t? I haven’t done anything to restrict the speed. Is there some way I can unlock this? What does it mean when it says “integrated USB2.0”?

Thanks.

1 Like

Hi @theosib
I found the same problem with my A603. Did you get any new information about it? Or found workaround to unlock the second port?

Hi there,
It’s the ZIF socket that’s the integrated USB3 & USB 2.0
Be sure you have the correct wiring for the port.

HTH
GL :slight_smile: PJ :v:

Hello, what version of JP are you using. We’ll check it for detail.
BTW, would you please sending me the dmesg log?

dmesg > dmesg_603.log

Hi Seraphna,
here the dmesgs you requested.

First try: Camera inserted in the bottom USB3

image

Dmesg:
dmesg_603_bottom_usb3.zip (16,0 KB)

nvidia@nvidia-orin-rt:~/librealsense/build/tools/enumerate-devices$ ./rs-enumerate-devices
Device info:
Name : Intel RealSense T265
Serial Number : 230322111425
Firmware Version : 0.2.0.951
Physical Port : 2-1-2
Product Id : 0B37
Usb Type Descriptor : 3.1
Product Line : T200

Stream Profiles supported by Tracking Module
Supported modes:
stream resolution fps format
Fisheye 1 848x800 @ 30Hz Y8
Fisheye 2 848x800 @ 30Hz Y8
Gyro N/A @ 200Hz MOTION_XYZ32F
Accel N/A @ 62Hz MOTION_XYZ32F
Pose N/A @ 200Hz 6DOF

Second try: Camera inserted in the top USB3

Dmesg:
dmesg_603_top_usb3.zip (16,1 KB)

nvidia@nvidia-orin-rt:~/librealsense/build/tools/enumerate-devices$ ./rs-enumerate-devices
01/03 10:44:59,656 ERROR [281473253271808] (tm-boot.h:39) Error booting T265
01/03 10:45:02,668 ERROR [281473253271808] (tm-boot.h:39) Error booting T265
No device detected. Is it plugged in?

If I unplug it and replug it to the same USB port:

nvidia@nvidia-orin-rt:~/librealsense/build/tools/enumerate-devices$ ./rs-enumerate-devices
Device info:
Name : Intel RealSense T265
Serial Number : 230322111425
Firmware Version : 0.2.0.951
Physical Port : 1-3.1-6
Product Id : 0B37
Usb Type Descriptor : 2.1
Product Line : T200

Stream Profiles supported by Tracking Module
Supported modes:
stream resolution fps format
Fisheye 1 848x800 @ 30Hz Y8
Fisheye 2 848x800 @ 30Hz Y8
Gyro N/A @ 200Hz MOTION_XYZ32F
Accel N/A @ 62Hz MOTION_XYZ32F
Pose N/A @ 200Hz 6DOF

Tested with a Orin NX + A603 where I flashed Jetpack 5.1.2 and the drivers you provided.

Hello, you can give this BSP (Driver Package) a try. It is the latest compilation from us. Please see if it can solve your issue.

Hi Seraphina,
The files in the zip you provided are equal to the BSP in the A603 Seeedstudio you provided and I’ve already tried them in the test above.

It is different from the BSP given by the Wiki, it just has the same name. This is the latest BSP we compiled at the end of February

Hi Seraphina, could you double check? The files in the archive are dated August 2023 and the readable files have the same content.

Also the Image is the same as A603-Orin-NX-Nano-JP5.1.2.zip

gorgo@razer:/home/gorgo/ORIN_RT_5_1_2/Drivers/A603-Orin-NX-Nano-JP5.1.2/Linux_for_Tegra/kernel$ diff Image ~/Downloads/603_jp512-2402/603_jp512/Linux_for_Tegra/kernel/Image
[No output == No differ]

Hi @Gorgo
We have confirmed with our engineers again, and this is our latest BSP (Board Support Package) file. In order to optimize performance, the BSP will only have slight differences compared to the previous version. Please try this BSP file and see if it can resolve your issue.

Hi,

We’re seeing the same issue, with the BSP from the wiki and the one copied here. Has there been any update to this?

This has been our latest BSP that can solve the problem. Has a replacement been attempted?

Yes. For what its worth, the BSP in the google drive link does appear to be byte-to-byte identical to the one that I downloaded from the wiki. I went ahead and tried both anyway.

@swolfsonds I agree with you. In our case it didn’t solve the problem

@swolfsonds @Gorgo
Thank you for your feedback! We will conduct further investigation into this situation.

Has there been any update on this issue?
Alternatively, is there a schematic available for the A603? With a schematic, I may be able to determine the required device tree modifications.

Sorry, the A603 schematic is not open source. We are still working on our side to reproduce and fix the problem. Thanks for your patience!

@Gorgo @swolfsonds
Could you please send me the information from your “lsusb -l” command, if it’s convenient for you? I want to check if the USB camera is recognized as a USB 3.0 device.

Hi @Seed_Seraphine

This is lsusb with the camera attached to this port:

image

At boot

nvidia@nvidia-orin-rt:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  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 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 480M
    |__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M

If I plut it out and in again:

nvidia@nvidia-orin-rt:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  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 4: Dev 5, If 0, Class=Vendor Specific Class, Driver=, 480M
    |__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M

While this is lsusb on the other port:

At boot

nvidia@nvidia-orin-rt:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  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 3: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 480M
    |__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M

If I plug it out and in again:

nvidia@nvidia-orin-rt:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  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 3: Dev 5, If 0, Class=Vendor Specific Class, Driver=, 480M
    |__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M