How to open all USB 3.0 ports of TX2 Jetpack 4.6

Hi:
I want to enable all the USB ports of TX2.Jetpack version is 4.6.
Below are the USB pins I used:
20230614132026

Step1:ODMDATA

Linux_for_Tegra/p2771-0000.conf.common

image

Step 2:pinctrl@3520000

Linux_for_Tegra/source/public/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi
pinctrl@3520000 {
    vbus-0-supply = <&vdd_usb0_5v>;
    vbus-1-supply = <&vdd_usb1_5v>;
    
    vbus-2-supply = <&battery_reg>;//vbus-2-supply = <&vdd_usb2_5v>;
    vbus-3-supply = <&battery_reg>;
    vddio-hsic-supply = <&battery_reg>;
    avdd_usb-supply = <&spmic_sd3>;
    vclamp_usb-supply = <&spmic_sd2>;
    avdd_pll_erefeut-supply = <&spmic_sd2>;
};

step 3:

Linux_for_Tegra/source/public/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi

I delete “fragment-500-pcie-config”,“fragment-500-xusb-config” and “fragment-500-e3325-pcie”.

step 4:

Linux_for_Tegra/source/public/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
    pcie-controller@10003000 {
        status="okay";
        pci@1,0 {
            //nvidia,num-lanes = <4>;
            nvidia,num-lanes = <2>;
            nvidia,disable-clock-request;
            status="okay";
        };
        pci@2,0 {
            //nvidia,num-lanes = <0>;
            nvidia,num-lanes = <1>;
            status="okay";
        };
        pci@3,0 {
            nvidia,num-lanes = <1>;
            status="disabled";
        };
    };
xhci@3530000 {
    phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>,
            <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>,
            <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>,
            <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>,
            <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-1}>,
            <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>;
    phy-names = "usb2-0","usb2-1","usb2-2","usb3-0","usb3-1","usb3-2";
    nvidia,boost_cpu_freq = <1200>;
};
xusb_padctl@3520000 {
    ports {
        usb3-2 {
        nvidia,usb2-companion = <2>;
            status = "okay";
        };
    usb3-1 {
        nvidia,usb2-companion = <0>;
        status = "okay";
     };
    usb3-0 {
        nvidia,usb2-companion = <1>;
        status = "okay";
        };
    };
    };

After you finish updating the dtb.The result is:


Why is my device mounted on USB 2.0? How should I change it?

There are a lot of reasons why USB3 might drop back to USB2. However, if you run “lsusb -t” on a host PC where this works, or should work, does it show 5000M? If it does, then on both the Jetson and the Linux host PC, if you monitor “dmesg --follow”, what additional lines appear as you plug in the Jetson?

Note that device tree only allows USB functionality. The device tree does not set the device’s mode. If signal quality is not sufficient, and if the device is capable of running slower, then the device will throttle back on speed until it gets a reasonable signal. Things like cable quality, cable length, an unexpected differences can change the signal quality (we’re talking about square wave/pulse train RF). If the device is consuming too much bandwidth, then it might even throttle back for that, though I think it would still normally show USB3 (but it might not at times).

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