Hi Sir/Madam,
We want to set config 4 our carrier board and we try it. But we could not make it.
We follow the https://elinux.org/Jetson/TX2_USB and https://developer.ridgerun.com/wiki/index.php?title=Compiling_Jetson_TX1/TX2_source_code instructions to use config#4 USB lane mapping. But we could not do it. The steps are that we follow;
- After installation, we download the kernel source code as said in https://developer.ridgerun.com/wiki/index.php?title=Compiling_Jetson_TX1/TX2_source_code. We get the sources folder that contain dts files.
- We set ODMDATA=0x7090000 in /JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/p2771-0000.conf.common
- We apply the instructions that are given https://devtalk.nvidia.com/default/topic/1030635/jetson-tx2/tx2-config-4-for-usb-lane-mapping/post/5243174/#5243174
We mean;
- Apply
xhci@3530000 { phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>, <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>, <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>, <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>, <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>, <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(2)>; phy-names = "utmi-0", "utmi-1","utmi-2", "usb3-0", "usb3-1", "usb3-2"; };
to /JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts /JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dtstegra186-quill-p3310-1000-c03-00-base.dts /JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi</li>
- Apply
pinctrl@3520000 { pinmux { usb2-micro { nvidia,lanes = "otg-0"; nvidia,function = "xusb"; nvidia,port-cap = <TEGRA_PADCTL_PORT_OTG_CAP>; }; usb3-micro { nvidia,lanes = "usb3-0"; nvidia,function = "xusb"; nvidia,port-cap = <TEGRA_PADCTL_PORT_OTG_CAP>; }; usb2-1 { nvidia,lanes = "otg-1"; nvidia,function = "xusb"; nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>; }; usb2-2 { nvidia,lanes = "otg-2"; nvidia,function = "xusb"; nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>; }; usb3-1 { nvidia,lanes = "usb3-1"; nvidia,function = "xusb"; nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>; }; usb3-2 { nvidia,lanes = "usb3-2"; nvidia,function = "xusb"; nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>; }; }; };
to
/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts - Apply
pcie-controller@10003000 { status = "okay"; pci@1,0 { nvidia,num-lanes = <1>; status = "okay"; }; pci@2,0 { nvidia,num-lanes = <1>; status = "okay"; }; pci@3,0 { nvidia,num-lanes = <1>; status = "disabled"; }; };
to
/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts - Apply
usb_cd { status = "okay"; phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>; phy-names = "otg-phy"; }; xotg { status = "okay"; phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>; phy-names = "otg-usb2"; }; xudc@3550000 { status = "okay"; phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>, <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>; phy-names = "usb2", "usb3"; emc-frequency = <150000000>; };
to
/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-a00-00-base.dts - Apply
gpio@2200000 { status = "okay"; sdmmc-wake-support-input { status = "okay"; }; sdmmc-wake-support-output { status = "okay"; }; pcie0_lane2_mux { status = "disabled"; }; };
to
/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts - We clean pcie-controller@10003000 and pinctrl@3520000 in /JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
- We set vbus-2-supply to <&battery_reg> in /JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi
- We comment out "fragment-500-pcie-config", "fragment-500-xusb-config" and "fragment-500-e3325-pcie" in /JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-plugin-manager/tegra186-quill-p3310-1000-a00-plugin-manager.dtsi
- Apply
- Then we follow build kernel section in https://developer.ridgerun.com/wiki/index.php?title=Compiling_Jetson_TX1/TX2_source_code step by step.
- Finally we apply all steps in flashing tegra title in https://developer.ridgerun.com/wiki/index.php?title=Compiling_Jetson_TX1/TX2_source_code. We flash by sudo ./flash.sh -r -d kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb -K kernel/Image jetson-tx2 mmcblk0p1.
For the default installation, the result of lsusb -t as follows;
nvidia@tegra-ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
|__ Port 1: Dev 6, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 7, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
|__ Port 2: Dev 8, If 0, Class=Hub, Driver=hub/4p, 480M
After we apply the changes that we mentioned above, the result of lsusb -t on development board as follows;
nvidia@tegra-ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
The result of lsusb -t on our carrier board as follows;
nvidia@tegra-ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
We wonder about can we see the changes on tx2 development board either the changes on our designed carrier board?
What are we missing? What are we doing wrong?
Also, we attach all files that we changed.
tegra186-quill-p3310-1000-c03-00-base.dts.txt (2.87 KB)
tegra186-quill-power-tree-p3310-1000-a00-00.dtsi.txt (8.81 KB)
tegra186-quill-p3310-1000-a00-00-base.dts.txt (5.93 KB)
p2771-0000.conf.common.txt (8.34 KB)
bootlog_flashing.txt (30.5 KB)
tegra186-quill-p3310-1000-a00-plugin-manager.dtsi.txt (6.89 KB)