L4T 32.1 USB Lane Mapping

Hi all,

  1. I am using L4T 32.1, and I’m trying to enable USB3 devices on pinnames: USB_SS0 and USB_SS1.

  2. I have configured ODMDATA to 0x7090000 so that I am using Configuration #4 as specified in the adaptation guide.

  3. Following (2), I have flashed the updated ODMDATA to the TX2 and verified UPHY_LANE0 to UPHY_LANE5 were set as desired for Configuration #4 using devmem2 command.

  4. However, I am still not able to use USB3. I chanced upon https://elinux.org/Jetson/TX2_USB. For L4T 32.1, I do not have tegra186-quill-p3310-1000-a00-plugin-manager.dtsi found under ~/JetPack_4.2_Linux_P3310/Linux_for_Tegra folder.

  5. I believe I have to edit some dts files, may I ask for guidance for enabling Configuration #4 and the associated dts files I need to edit in L4T 32.1?

Thank you so much folks.

Update:

  1. I downloaded the public source from Jetson Download Center for L4T 32.1. I am able to locate the files now.

  2. How do I regenerate the DTB from the updated tegra186-quill-power-tree-p3310-1000-a00-00.dtsi?

Thank you once again for your help and advice in advance!

Hi,
Please refer to
https://devtalk.nvidia.com/default/topic/1057885/jetson-tx2/usb-not-working-in-jetson-tx2-r32-2/post/5364464/#5364464
It is also eligible for r32.1

Hi DaneLLL,

Roger. These are the steps I am doing currently to get Configuration #4 (3x USB3.0) Setting:

1. Edit 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 = <&vdd_usb2_5v>;
+ vbus-2-supply = <&battery_reg>;
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>;
};

2. Edit hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi

=> Remove the specified 3x fragments sections

3. Edit hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts

4. Compile the kernel

5. Make sure ODMDATA = 0x7090000 at p2771-0000.conf.common.

Am I right in the above steps for L4T 32.1? I will report my outcome shortly.

Hi,
It looks not right. You should modify xhci@3530000 and xusb_padctl@3520000 in

#if TEGRA_BOOTARGUMENT_VERSION >= DT_VERSION_2

Thanks for your quick reply, there’s no “#if TEGRA_BOOTARGUMENT_VERSION >= DT_VERSION_2” under hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts.

Should I be performing these changes in tegra186-quill-p3310-1000-a00-00-base.dts instead and revert tegra186-quill-p3310-1000-c03-00-base.dts to the original form?

Thanks so much for the prompt reply!

Hi,
It should be good to modify tegra186-quill-p3310-1000-a00-00-base.dts. You can check the correctness through xxd:

nvidia@nvidia-desktop:~$ xxd /proc/device-tree/xhci@3530000/phy-names
00000000: 7573 6232 2d30 0075 7362 322d 3100 7573  usb2-0.usb2-1.us
00000010: 6232 2d32 0075 7362 332d 3000            b2-2.usb3-0.
nvidia@nvidia-desktop:~$ xxd /proc/device-tree/xusb_padctl@3520000/ports/usb3-1/nvidia\,usb2-companion
00000000: 0000 0001

Thanks DaneLLL, I will edit as per your guide and once I flashed, I will check the correctness. I assume I should be seeing “b2-2.usb3-0.usb3-1.usb3-2” for Configuration #4.