Orin usb3.0 type A not working for custom carrier board USB

orin module USB3_N/P (G10,G11) ,UPHY_TX1/UPHY_RX1 ----->usb3.0 type A ports

Can only recognize USB 2.0

device-tree:

pads {

                            usb2 {
                                    clocks = <0x03 0xa5>;
                                    clock-names = "trk";

                                    lanes {

                                            usb2-0 {
                                                    nvidia,function = "xusb";
                                                    status = "okay";
                                                    #phy-cells = <0x00>;
                                                    phandle = <0x103>;
                                            };

                                            usb2-1 {
                                                    nvidia,function = "xusb";
                                                    status = "okay";
                                                    #phy-cells = <0x00>;
                                                    phandle = <0x106>;
                                            };

                                            usb2-2 {
                                                    nvidia,function = "xusb";
                                                    status = "okay";
                                                    #phy-cells = <0x00>;
                                                    phandle = <0x107>;
                                            };

                                            usb2-3 {
                                                    nvidia,function = "xusb";
                                                    status = "okay";
                                                    #phy-cells = <0x00>;
                                                    phandle = <0x108>;
                                            };
                                    };
                            };
                           usb3 {

                                        lanes {

                                                usb3-0 {
                                                        nvidia,function = "xusb";
                                                        status = "okay";
                                                        #phy-cells = <0x00>;
                                                        phandle = <0x109>;
                                                };

                                                usb3-1 {
                                                        nvidia,function = "xusb";
                                                        status = "okay";
                                                        #phy-cells = <0x00>;
                                                        phandle = <0x104>;
                                                };

                                        };
                                };
                        };

                        ports {

                                usb2-0 {
                                        status = "okay";
                                        vbus-supply = <0x101>;
                                        mode = "otg";
                                        usb-role-switch;
                                };

                                usb2-1 {
                                        status = "okay";
                                        vbus-supply = <0x101>;
                                        mode = "host";
                                };

                                usb2-2 {
                                        status = "okay";
                                        vbus-supply = <0x101>;
                                        mode = "host";
                                };

                                usb2-3 {
                                        status = "okay";
                                        vbus-supply = <0x101>;
                                        mode = "host";
                                };

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

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

                        };


why ?

— 🤖 This is an automated AI response. I’m here to help, but please verify important details! —

The issue you’re experiencing with your custom carrier board and the Jetson AGX Orin module, where the USB3.0 type A port is not working and can only recognize USB 2.0 devices, is likely due to the device tree configuration.

In the provided device tree snippet, the USB3.0 lanes are not properly configured. The usb3-0 and usb3-1 lanes are defined, but their nvidia,function property is set to "xusb", which is incorrect for USB3.0 lanes.

To fix this issue, you need to update the device tree to properly configure the USB3.0 lanes. You can refer to the Jetson AGX Orin device tree documentation and the NVIDIA-provided device tree files for guidance.

Additionally, ensure that the USB3.0 signals are properly routed on your custom carrier board, and that the USB3.0 port is properly connected to the Jetson AGX Orin module.

If you’re still experiencing issues after updating the device tree and verifying the board design, you may want to try using a USB bus analyzer to debug the USB signals and identify any potential issues.

— We support team will also look into your issue to have further suggestions soon. please stay tuned. —

Do you have full USB schematic to share?

USB schematic!

Is this a pure type A port?

Yes, it is

Is there any error in dmesg when issue happened?

I didn’t find any errors, here is the kernel log about USB:

[ 0.155816] usbcore: registered new interface driver usbfs
[ 0.155837] usbcore: registered new interface driver hub
[ 0.155852] usbcore: registered new device driver usb
[ 0.276825] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 0.277074] ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
[ 0.277638] usbcore: registered new interface driver usb-storage
[ 4.044861] usbcore: registered new interface driver usbhid
[ 4.044867] usbhid: USB HID core driver
[ 4.111169] usbcore: registered new interface driver snd-usb-audio
[ 6.940073] tegra-xusb 3610000.usb: Adding to iommu group 3
[ 6.957485] tegra-xusb 3610000.usb: Firmware timestamp: 2023-02-10 03:48:10 UTC
[ 6.957494] tegra-xusb 3610000.usb: xHCI Host Controller
[ 6.957506] tegra-xusb 3610000.usb: new USB bus registered, assigned bus number 1
[ 6.958235] tegra-xusb 3610000.usb: hcc params 0x0180ff05 hci version 0x120 quirks 0x0000000000010810
[ 6.958255] tegra-xusb 3610000.usb: irq 127, io mem 0x03610000
[ 6.958366] tegra-xusb 3610000.usb: xHCI Host Controller
[ 6.958369] tegra-xusb 3610000.usb: new USB bus registered, assigned bus number 2
[ 6.958372] tegra-xusb 3610000.usb: Host supports USB 3.1 Enhanced SuperSpeed
[ 6.959550] hub 1-0:1.0: USB hub found
[ 6.961007] hub 2-0:1.0: USB hub found
[ 7.295215] usb 1-3: new high-speed USB device number 2 using tegra-xusb
[ 7.447231] hub 1-3:1.0: USB hub found
[ 7.835386] usb 1-3.2: new high-speed USB device number 3 using tegra-xusb
[ 8.042955] hub 1-3.2:1.0: USB hub found
[ 8.355388] usb 1-3.2.1: new low-speed USB device number 4 using tegra-xusb
[ 8.492744] input: PixArt Dell MS116 USB Optical Mouse as /devices/platform/bus@0/3610000.usb/usb1/1-3/1-3.2/1-3.2.1/1-3.2.1:1.0/0003:413C:301A.0001/input/input0
[ 8.493038] hid-generic 0003:413C:301A.0001: input,hidraw0: USB HID v1.11 Mouse [PixArt Dell MS116 USB Optical Mouse] on usb-3610000.usb-3.2.1/input0
[ 8.595226] usb 1-3.2.2: new low-speed USB device number 5 using tegra-xusb
[ 8.734351] input: SONiX USB Keyboard as /devices/platform/bus@0/3610000.usb/usb1/1-3/1-3.2/1-3.2.2/1-3.2.2:1.0/0003:0C45:760B.0002/input/input1
[ 8.792239] hid-generic 0003:0C45:760B.0002: input,hidraw1: USB HID v1.11 Keyboard [SONiX USB Keyboard] on usb-3610000.usb-3.2.2/input0
[ 8.795858] input: SONiX USB Keyboard Consumer Control as /devices/platform/bus@0/3610000.usb/usb1/1-3/1-3.2/1-3.2.2/1-3.2.2:1.1/0003:0C45:760B.0003/input/input2
[ 8.855474] input: SONiX USB Keyboard System Control as /devices/platform/bus@0/3610000.usb/usb1/1-3/1-3.2/1-3.2.2/1-3.2.2:1.1/0003:0C45:760B.0003/input/input3
[ 8.856138] hid-generic 0003:0C45:760B.0003: input,hidraw2: USB HID v1.11 Device [SONiX USB Keyboard] on usb-3610000.usb-3.2.2/input1
[ 32.023124] tegra-xudc 3550000.usb: Adding to iommu group 50

The following is the kernel log of a USB 3.2 USB flash drive inserted into this socket:

[ 231.843581] usb 1-4: new high-speed USB device number 6 using tegra-xusb
[ 231.999107] usb-storage 1-4:1.0: USB Mass Storage device detected
[ 232.000836] scsi host0: usb-storage 1-4:1.0
[ 233.009163] scsi 0:0:0:0: Direct-Access SanDisk SanDisk 3.2 Gen1 DL17 PQ: 0 ANSI: 6
[ 233.010207] sd 0:0:0:0: [sda] 126124032 512-byte logical blocks: (64.6 GB/60.1 GiB)
[ 233.010604] sd 0:0:0:0: [sda] Write Protect is off
[ 233.010615] sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
[ 233.011004] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn’t support DPO or FUA
[ 233.279150] sd 0:0:0:0: [sda] Attached SCSI removable disk

Is the same USB device able to work as super speed when you put it on the type A hub on devkit?

This device is USB 3.2 and works normally when placed on another device

You may need to review the hardware design there. Or find out if you have analyzer to dump the usb bus trace.

I suspect it’s a problem with the device tree, or maybe the lanes are using UPHY0_TX1/UPHY0-RX1 and cannot pair with USB3?

Don’t know what are you trying to say here.

UPHY0_TX1/UPHY0-RX1 is the USB3 signal itself. There is nothing call it could not pair to itself.

Do you mean that the UPHY of USB3.0 can be combined with any USB2.0 (0-3) N/P?

Yes, that is why device tree has the usb2 companion node to assign usb2 lanes.

okay!

May I ask if the signal quality has decreased due to a quality issue with the USB 3.0 cable? Can the quality be improved by modifying the UPHY driver current or using other methods? Thank you!

You could follow the tuning guide document first and see if adjust register could help your case or not.

I have tried modifying the drive current, but it did not work

What is the document network HTTP address?

thk!

Please find the Jetson AGX Orin Series Modules Tuning and Compliance Guide from download center.