R28.1 How to change to PCIE config #4

Hi all

i read the Platform Adaptation and Bring-Up Guide to modify it.
i set the tegra210-jetson-cv-base-p2597-2180-a00.dts file as below but still not work.
i can change the config on R24.2.1.

pcie-controller@1003000 {
                nvidia,wake-gpio = <&gpio TEGRA_GPIO(A, 2) 0>;
                dvdd-pex-pll-supply = <&max77620_ldo1>;
                l0-dvddio-pex-supply = <&max77620_ldo1>;
                l1-dvddio-pex-supply = <&max77620_ldo1>;
                l2-dvddio-pex-supply = <&max77620_ldo1>;
                l3-dvddio-pex-supply = <&max77620_ldo1>;
                l4-dvddio-pex-supply = <&max77620_ldo1>;
                l5-dvddio-pex-supply = <&max77620_ldo1>;
                l6-dvddio-pex-supply = <&max77620_ldo1>;
                hvdd-pex-pll-e-supply = <&max77620_sd3>;
                l0-hvddio-pex-supply = <&max77620_sd3>;
                l1-hvddio-pex-supply = <&max77620_sd3>;
                l2-hvddio-pex-supply = <&max77620_sd3>;
                l3-hvddio-pex-supply = <&max77620_sd3>;
                l4-hvddio-pex-supply = <&max77620_sd3>;
                l5-hvddio-pex-supply = <&max77620_sd3>;
                l6-hvddio-pex-supply = <&max77620_sd3>;
                vddio-pex-ctl-supply = <&max77620_sd3>;
                status = "okay";

                pci@1,0 {
                        nvidia,num-lanes = <1>;
                        status = "okay";
                };

                pci@2,0 {
                        nvidia,num-lanes = <1>;
                        status = "okay";
                };
        };
pinctrl@7009f000 {
                status = "okay";
                pinctrl-0 = <&tegra_padctl_uphy_pinmux_default>;
                pinctrl-names = "default";
                tegra_padctl_uphy_pinmux_default: pinmux {
                        usb2-micro-AB-xusb {
                                nvidia,lanes = "otg-0";
                                nvidia,function = "xusb";
                                nvidia,port-cap =
                                        <TEGRA_PADCTL_PORT_OTG_CAP>;
                                nvidia,usb3-port-fake = <2>;
                        };
                        usb2-std-A-port0 {
                                 nvidia,lanes = "otg-2";
                                 nvidia,function = "xusb";
                                 nvidia,port-cap =
                                        <TEGRA_PADCTL_PORT_HOST_ONLY>;
                        };
                        usb3-std-A-port0 {
                                 nvidia,lanes = "uphy-lane-5";
                                 nvidia,function = "usb3";
                                 nvidia,usb3-port = <1>;
                                 nvidia,usb2-map = <2>;
                                 nvidia,port-cap =
                                        <TEGRA_PADCTL_PORT_HOST_ONLY>;
                        };
                        usb2-eth {
                                 nvidia,lanes = "otg-1";
                                 nvidia,function = "xusb";
                                 nvidia,port-cap =
                                        <TEGRA_PADCTL_PORT_HOST_ONLY>;
                        };
                        usb3-eth {
                                 nvidia,lanes = "uphy-lane-6";
                                 nvidia,function = "usb3";
                                 nvidia,usb3-port = <0>;
                                 nvidia,usb2-map = <1>;
                                 nvidia,port-cap =
                                        <TEGRA_PADCTL_PORT_HOST_ONLY>;
                        };
                        hsic {
                                 nvidia,lanes = "hsic-0";
                                 nvidia,function = "hsic";
                        };
                        pcie {
                                 nvidia,lanes = "uphy-lane-4";
                                 nvidia,function = "pcie";
                                 nvidia,pcie-controller = <0>;
                                 nvidia,pcie-lane-select =
                                        <TEGRA_PADCTL_PCIE_LANE_X1>;
                        };
                        pcie-m2 {
                                nvidia,lanes = "uphy-lane-0";
                                nvidia,function = "pcie";
                                nvidia,pcie-controller = <1>;
                                nvidia,pcie-lane-select =
                                        <TEGRA_PADCTL_PCIE_LANE_X1>;
                        };
                        sata {
                                 nvidia,lanes = "uphy-lane-7";
                                 nvidia,function = "sata";
                        };
                };
        };

but the system message still show

[ 4.945873] tegra-pcie 1003000.pcie-controller: probing port 0, using 4 lanes
[ 4.947975] tegra-pcie 1003000.pcie-controller: probing port 1, using 1 lanes

and i have two usb3.0 how do i add a usb3.0 for dts?

It is not clear what your requirement is. Do you want two PCIe ports in x1 configuration? if so, that is possible even with the default configuration.
BTW, possible combinations for PCIe controller-1 & 2 are 4_1 and 2_1 (first number indicates lane width of controller-0 and second number indicates lane width of controller-1) and you are trying to set 1_1 which is not a valid configuration and hence it is falling back to 4_1 which is default.

Hi vidyas

i want to change to config #4 ( PCIe#1_0 | empty | empty |USB_SS#2 | PCIe#0_0 | USB_SS#1 | SATA )

i change the pcie setting from 1 to 2 but still no work. and i have trace tegra_pcie_get_xbar_config this function. it’s always run X4X1.

    pci@1,0 {
                    nvidia,num-lanes = <2>;
                    status = "okay";
            };

tegra-pcie 1003000.pcie-controller: probing port 0, using 4 lanes
tegra-pcie 1003000.pcie-controller: probing port 1, using 1 lanes

I think you are editing either a wrong file or at a wrong place.
You can try de-compiling DTB file to DTS file and making your modifications there and then re-compiling it back to DTB.
DTB file in this case is tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb . I tried it and it works.
BTW, to realize config #4 (mentioned in #3), no need to edit PCIe node’s num-lanes entry. Editing ‘pinctrl@7009f000’ node correctly alone would do.
Even if PCIe root port is configured for x4, it doesn’t mind if only one lane is given… it is just that the link comes up in x1… thats all.

Hi vidyas
i modify the pinctrl@7009f000 node in tegra210-jetson-cv-base-p2597-2180-a00.dts
and i de-compiling DTB file to DTS file to check the setting.
this time i only add a usb3 node in pinctrl@7009f000 node

pinctrl@7009f000 {
		compatible = "nvidia,tegra21x-padctl-uphy";
		reg = <0x0 0x7009f000 0x0 0x1000>;
		reg-names = "padctl";
		resets = <0x41 0x8e 0x41 0xcc 0x41 0xcd>;
		reset-names = "padctl", "sata_uphy", "pex_uphy";
		clocks = <0x41 0xd1 0x41 0xd2 0x41 0x107>;
		clock-names = "hsic_trk", "usb2_trk", "pll_e";
		interrupts = <0x0 0x31 0x4>;
		mboxes = <0x63>;
		mbox-names = "xusb";
		#phy-cells = <0x1>;
		status = "okay";
		vbus-0-supply = <0x64>;
		vbus-2-supply = <0x65>;
		vbus-3-supply = <0x66>;
		vddio-hsic-supply = <0x67>;
		avdd_pll_uerefe-supply = <0x68>;
		hvdd_pex_pll_e-supply = <0x69>;
		dvdd_pex_pll-supply = <0x6a>;
		hvddio_pex-supply = <0x69>;
		dvddio_pex-supply = <0x6a>;
		hvdd_sata-supply = <0x69>;
		dvdd_sata_pll-supply = <0x6b>;
		hvddio_sata-supply = <0x69>;
		dvddio_sata-supply = <0x6b>;
		vbus-1-supply = <0x6c>;
		pinctrl-0 = <0x6d>;
		pinctrl-names = "default";
		linux,phandle = <0x60>;
		phandle = <0x60>;

		prod-settings {
			#prod-cells = <0x4>;

			prod_c_bias {
				prod = <0x0 0x284 0x3f 0x3a>;
			};

			prod_c_bias_a02 {
				prod = <0x0 0x284 0x3f 0x38>;
			};

			prod_c_utmi0 {
				prod = <0x0 0x84 0x20 0x40>;
			};

			prod_c_utmi1 {
				prod = <0x0 0xc4 0x20 0x40>;
			};

			prod_c_utmi2 {
				prod = <0x0 0x104 0x20 0x40>;
			};

			prod_c_utmi3 {
				prod = <0x0 0x144 0x20 0x40>;
			};

			prod_c_ss0 {
				prod = <0x0 0xa60 0x30000 0x20000 0x0 0xa64 0xffff 0xfc 0x0 0xa68 0xffffffff 0xc0077f1f 0x0 0xa74 0xffffffff 0xfcf01368>;
			};

			prod_c_ss1 {
				prod = <0x0 0xaa0 0x30000 0x20000 0x0 0xaa4 0xffff 0xfc 0x0 0xaa8 0xffffffff 0xc0077f1f 0x0 0xab4 0xffffffff 0xfcf01368>;
			};

			prod_c_ss2 {
				prod = <0x0 0xae0 0x30000 0x20000 0x0 0xae4 0xffff 0xfc 0x0 0xae8 0xffffffff 0xc0077f1f 0x0 0xaf4 0xffffffff 0xfcf01368>;
			};

			prod_c_ss3 {
				prod = <0x0 0xb20 0x30000 0x20000 0x0 0xb24 0xffff 0xfc 0x0 0xb28 0xffffffff 0xc0077f1f 0x0 0xb34 0xffffffff 0xfcf01368>;
			};

			prod_c_hsic0 {
				prod = <0x0 0x344 0x1f 0x1c>;
			};

			prod_c_hsic1 {
				prod = <0x0 0x344 0x1f 0x1c>;
			};
		};

		pinmux {
			linux,phandle = <0x6d>;
			phandle = <0x6d>;

			usb2-micro-AB-xusb {
				nvidia,lanes = "otg-0";
				nvidia,function = "xusb";
				nvidia,port-cap = <0x3>;
				nvidia,usb3-port-fake = <0x2>;
			};

			usb2-std-A-port0 {
				nvidia,lanes = "otg-2";
				nvidia,function = "xusb";
				nvidia,port-cap = <0x1>;
			};

			usb3-std-A-port0 {
				nvidia,lanes = "uphy-lane-5";
				nvidia,function = "usb3";
				nvidia,usb3-port = <0x1>;
				nvidia,usb2-map = <0x2>;
				nvidia,port-cap = <0x1>;
			};

			usb2-eth {
				nvidia,lanes = "otg-1";
				nvidia,function = "xusb";
				nvidia,port-cap = <0x1>;
			};

			usb3-eth {
				nvidia,lanes = "uphy-lane-6";
				nvidia,function = "usb3";
				nvidia,usb3-port = <0x0>;
				nvidia,usb2-map = <0x1>;
				nvidia,port-cap = <0x1>;
			};

			usb3-e {
				nvidia,lanes = "uphy-lane-3";
				nvidia,function = "usb3";
				nvidia,usb3-port = <0x2>;
				nvidia,port-cap = <0x1>;
			};

			hsic {
				nvidia,lanes = "hsic-0";
				nvidia,function = "hsic";
			};

			pcie {
				nvidia,lanes = "uphy-lane-4";
				nvidia,function = "pcie";
				nvidia,pcie-controller = <0x0>;
				nvidia,pcie-lane-select = <0x1>;
			};

			pcie-m2 {
				nvidia,lanes = "uphy-lane-0";
				nvidia,function = "pcie";
				nvidia,pcie-controller = <0x1>;
				nvidia,pcie-lane-select = <0x1>;
			};

			sata {
				nvidia,lanes = "uphy-lane-7";
				nvidia,function = "sata";
			};
		};
	};

the message is

[    5.078359] tegra21x-padctl-uphy 7009f000.pinctrl: padctl mmio start 0x000000007009f000 end 0x000000007009ffff
[    5.092002] tegra21x-padctl-uphy 7009f000.pinctrl: TEGRA_FUSE_SKU_CALIB_0 0x71c6c0e
[    5.103299] tegra21x-padctl-uphy 7009f000.pinctrl: TEGRA_FUSE_USB_CALIB_EXT_0 0x4
[    5.141334] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-0 is used by XUSB
[    5.164297] tegra21x-padctl-uphy 7009f000.pinctrl: using UTMI port 0 for otg
[    5.215309] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-2 is used by XUSB
[    5.267370] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 5, set usb3_lanes = 0x20
[    5.323307] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 1 maps to USB2 port 2
[    5.363991] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-1 is used by XUSB
[    5.416891] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 6, set usb3_lanes = 0x60
[    5.473904] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 0 maps to USB2 port 1
[    5.543858] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 1, set pcie_lanes = 0x2
[    5.615963] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 2, set pcie_lanes = 0x6
[    5.688104] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 3, set pcie_lanes = 0xe
[    5.760286] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 4, set pcie_lanes = 0x1e
[    5.832575] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 0, set pcie_lanes = 0x1f
[    5.904895] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 7, set sata_lanes = 0x80
[    5.919269] usb-vbus1: supplied by vdd-3v3
[    5.928561] tegra21x-padctl-uphy 7009f000.pinctrl: Done tegra21x_padctl_uphy_probe
[    6.008182] tegra-pcie 1003000.pcie-controller: 4x1, 1x1 configuration
[    6.022756] tegra-pcie 1003000.pcie-controller: PCIE: Enable power rails

lane3 still to be pcie not usb3.0.

Please use the below patch and let us know the outcome

diff --git a/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts b/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
index d246119..772b770 100644
--- a/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
+++ b/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
@@ -513,12 +513,11 @@
 				 nvidia,function = "hsic";
 			};
 			pcie {
-				 nvidia,lanes =	"uphy-lane-1", "uphy-lane-2",
-						"uphy-lane-3", "uphy-lane-4";
+				 nvidia,lanes =	"uphy-lane-4";
 				 nvidia,function = "pcie";
 				 nvidia,pcie-controller = <0>;
 				 nvidia,pcie-lane-select =
-					<TEGRA_PADCTL_PCIE_LANE_X4>;
+					<TEGRA_PADCTL_PCIE_LANE_X1>;
 			};
 			pcie-m2 {
 				nvidia,lanes = "uphy-lane-0";
@@ -531,6 +530,20 @@
 				 nvidia,lanes = "uphy-lane-7";
 				 nvidia,function = "sata";
 			};
+			e3325-usb2-std-A {
+				nvidia,lanes = "otg-3";
+				nvidia,function = "xusb";
+				nvidia,port-cap =
+					<TEGRA_PADCTL_PORT_HOST_ONLY>;
+			};
+			e3325-usb3-std-A {
+				nvidia,lanes = "uphy-lane-3";
+				nvidia,function = "usb3";
+				nvidia,usb3-port = <2>;
+				nvidia,usb2-map = <3>;
+				nvidia,port-cap =
+					<TEGRA_PADCTL_PORT_HOST_ONLY>;
+			};
 		};
 	};
 
@@ -543,8 +556,10 @@
 			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(1)>,
 			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(1)>,
 			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(0)>,
-			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(0)>;
-		phy-names = "utmi-2", "usb3-1", "utmi-1", "usb3-0", "utmi-0";
+			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(0)>,
+			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(3)>,
+			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(2)>;
+		phy-names = "utmi-2", "usb3-1", "utmi-1", "usb3-0", "utmi-0", "utmi-3", "usb3-2";
 		nvidia,pmc-wakeup =
 			<&tegra_pmc
 				PMC_WAKE_TYPE_EVENT 39 PMC_TRIGGER_TYPE_HIGH>,

Hi vidyas

after i modify, the dtb file is as below.

pinctrl@7009f000 {
		compatible = "nvidia,tegra21x-padctl-uphy";
		reg = <0x0 0x7009f000 0x0 0x1000>;
		reg-names = "padctl";
		resets = <0x41 0x8e 0x41 0xcc 0x41 0xcd>;
		reset-names = "padctl", "sata_uphy", "pex_uphy";
		clocks = <0x41 0xd1 0x41 0xd2 0x41 0x107>;
		clock-names = "hsic_trk", "usb2_trk", "pll_e";
		interrupts = <0x0 0x31 0x4>;
		mboxes = <0x63>;
		mbox-names = "xusb";
		#phy-cells = <0x1>;
		status = "okay";
		vbus-0-supply = <0x64>;
		vbus-2-supply = <0x65>;
		vbus-3-supply = <0x66>;
		vddio-hsic-supply = <0x67>;
		avdd_pll_uerefe-supply = <0x68>;
		hvdd_pex_pll_e-supply = <0x69>;
		dvdd_pex_pll-supply = <0x6a>;
		hvddio_pex-supply = <0x69>;
		dvddio_pex-supply = <0x6a>;
		hvdd_sata-supply = <0x69>;
		dvdd_sata_pll-supply = <0x6b>;
		hvddio_sata-supply = <0x69>;
		dvddio_sata-supply = <0x6b>;
		vbus-1-supply = <0x6c>;
		pinctrl-0 = <0x6d>;
		pinctrl-names = "default";
		linux,phandle = <0x60>;
		phandle = <0x60>;

		prod-settings {
			#prod-cells = <0x4>;

			prod_c_bias {
				prod = <0x0 0x284 0x3f 0x3a>;
			};

			prod_c_bias_a02 {
				prod = <0x0 0x284 0x3f 0x38>;
			};

			prod_c_utmi0 {
				prod = <0x0 0x84 0x20 0x40>;
			};

			prod_c_utmi1 {
				prod = <0x0 0xc4 0x20 0x40>;
			};

			prod_c_utmi2 {
				prod = <0x0 0x104 0x20 0x40>;
			};

			prod_c_utmi3 {
				prod = <0x0 0x144 0x20 0x40>;
			};

			prod_c_ss0 {
				prod = <0x0 0xa60 0x30000 0x20000 0x0 0xa64 0xffff 0xfc 0x0 0xa68 0xffffffff 0xc0077f1f 0x0 0xa74 0xffffffff 0xfcf01368>;
			};

			prod_c_ss1 {
				prod = <0x0 0xaa0 0x30000 0x20000 0x0 0xaa4 0xffff 0xfc 0x0 0xaa8 0xffffffff 0xc0077f1f 0x0 0xab4 0xffffffff 0xfcf01368>;
			};

			prod_c_ss2 {
				prod = <0x0 0xae0 0x30000 0x20000 0x0 0xae4 0xffff 0xfc 0x0 0xae8 0xffffffff 0xc0077f1f 0x0 0xaf4 0xffffffff 0xfcf01368>;
			};

			prod_c_ss3 {
				prod = <0x0 0xb20 0x30000 0x20000 0x0 0xb24 0xffff 0xfc 0x0 0xb28 0xffffffff 0xc0077f1f 0x0 0xb34 0xffffffff 0xfcf01368>;
			};

			prod_c_hsic0 {
				prod = <0x0 0x344 0x1f 0x1c>;
			};

			prod_c_hsic1 {
				prod = <0x0 0x344 0x1f 0x1c>;
			};
		};

		pinmux {
			linux,phandle = <0x6d>;
			phandle = <0x6d>;

			usb2-micro-AB-xusb {
				nvidia,lanes = "otg-0";
				nvidia,function = "xusb";
				nvidia,port-cap = <0x3>;
				nvidia,usb3-port-fake = <0x2>;
			};

			usb2-std-A-port0 {
				nvidia,lanes = "otg-2";
				nvidia,function = "xusb";
				nvidia,port-cap = <0x1>;
			};

			usb3-std-A-port0 {
				nvidia,lanes = "uphy-lane-5";
				nvidia,function = "usb3";
				nvidia,usb3-port = <0x1>;
				nvidia,usb2-map = <0x2>;
				nvidia,port-cap = <0x1>;
			};

			usb2-eth {
				nvidia,lanes = "otg-1";
				nvidia,function = "xusb";
				nvidia,port-cap = <0x1>;
			};

			usb3-eth {
				nvidia,lanes = "uphy-lane-6";
				nvidia,function = "usb3";
				nvidia,usb3-port = <0x0>;
				nvidia,usb2-map = <0x1>;
				nvidia,port-cap = <0x1>;
			};

			hsic {
				nvidia,lanes = "hsic-0";
				nvidia,function = "hsic";
			};

			pcie {
				nvidia,lanes = "uphy-lane-4";
				nvidia,function = "pcie";
				nvidia,pcie-controller = <0x0>;
				nvidia,pcie-lane-select = <0x1>;
			};

			pcie-m2 {
				nvidia,lanes = "uphy-lane-0";
				nvidia,function = "pcie";
				nvidia,pcie-controller = <0x1>;
				nvidia,pcie-lane-select = <0x1>;
			};

			sata {
				nvidia,lanes = "uphy-lane-7";
				nvidia,function = "sata";
			};

			e3325-usb2-std-A {
				nvidia,lanes = "otg-3";
				nvidia,function = "xusb";
				nvidia,port-cap = <0x1>;
			};

			e3325-usb3-std-A {
				nvidia,lanes = "uphy-lane-3";
				nvidia,function = "usb3";
				nvidia,usb3-port = <0x2>;
				nvidia,usb2-map = <0x3>;
				nvidia,port-cap = <0x1>;
			};
		};
	};
	xusb@70090000 {
		compatible = "nvidia,tegra210-xhci";
		power-domains = <0x42>;
		reg = <0x0 0x70090000 0x0 0x8000 0x0 0x70098000 0x0 0x1000 0x0 0x70099000 0x0 0x1000>;
		interrupts = <0x0 0x27 0x4 0x0 0x31 0x4>;
		mboxes = <0x63>;
		mbox-names = "xusb";
		#stream-id-cells = <0x1>;
		iommus = <0x52 0x14>;
		status = "okay";
		clocks = <0x41 0x59 0x41 0x11d 0x41 0x9c 0x41 0x11f 0x41 0x122 0x41 0x11e 0x41 0xff 0x41 0xe9>;
		clock-names = "host", "falcon_src", "ss", "ss_src", "hs_src", "fs_src", "pll_u_480M", "clk_m";
		hvdd_usb-supply = <0x66>;
		avdd_pll_utmip-supply = <0x69>;
		vddio_hsic-supply = <0x67>;
		avddio_usb-supply = <0x6a>;
		dvdd_sata-supply = <0x6b>;
		avddio_pll_uerefe-supply = <0x68>;
		extcon-cables = <0x62 0x1>;
		extcon-cable-names = "id";
		#extcon-cells = <0x1>;
		phys = <0x60 0x12 0x60 0x1 0x60 0x11 0x60 0x0 0x60 0x10 0x60 0x13 0x60 0x2>;
		phy-names = "utmi-2", "usb3-1", "utmi-1", "usb3-0", "utmi-0", "utmi-3", "usb3-2";
		nvidia,pmc-wakeup = <0x5b 0x1 0x29 0x4 0x5b 0x1 0x2c 0x4>;
	};

the console message is

[    0.455827] RPC: Registered named UNIX socket transport module.
[    0.455853] RPC: Registered udp transport module.
[    0.455874] RPC: Registered tcp transport module.
[    0.455894] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.456136] Trying to unpack rootfs image as initramfs...
[    0.467231] host1x 50000000.host1x: initialized
[    0.468943] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    0.472118] futex hash table entries: 1024 (order: 5, 131072 bytes)
[    0.472251] audit: initializing netlink subsys (disabled)
[    0.472310] audit: type=2000 audit(0.467:1): initialized
[    0.484421] ntfs: driver 2.1.32 [Flags: R/O].
[    0.484917] fuse init (API version 7.23)
[    0.487404] io scheduler noop registered (default)
[    0.487438] io scheduler deadline registered
[    0.487763] io scheduler cfq registered
[    0.493133] tegra21x-padctl-uphy 7009f000.pinctrl: padctl mmio start 0x000000007009f000 end 0x000000007009ffff
[    0.493181] tegra21x-padctl-uphy 7009f000.pinctrl: TEGRA_FUSE_SKU_CALIB_0 0x71c6c0e
[    0.493215] tegra21x-padctl-uphy 7009f000.pinctrl: TEGRA_FUSE_USB_CALIB_EXT_0 0x4
[    0.494725] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-0 is used by XUSB
[    0.494761] tegra21x-padctl-uphy 7009f000.pinctrl: using UTMI port 0 for otg
[    0.494790] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-2 is used by XUSB
[    0.494828] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 5, set usb3_lanes = 0x20
[    0.494873] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 1 maps to USB2 port 2
[    0.494907] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-1 is used by XUSB
[    0.494943] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 6, set usb3_lanes = 0x60
[    0.494984] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 0 maps to USB2 port 1
[    0.495030] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 1, set pcie_lanes = 0x2
[    0.495077] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 2, set pcie_lanes = 0x6
[    0.495124] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 3, set usb3_lanes = 0x68
[    0.495171] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 4, set pcie_lanes = 0x16
[    0.495217] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 0, set pcie_lanes = 0x17
[    0.495265] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 7, set sata_lanes = 0x80
[    0.495684] tegra21x-padctl-uphy 7009f000.pinctrl: mailbox is not ready yet
[    0.496735] tegra-pwm 7000a000.pwm: PWM clk can sleep in ops
[    0.497841] tegra-dfll-pwm 70110000.pwm: DFLL pwm-rate: 12800000
[    0.498668] Adding domain pcie-pd to PM domain mc-clk-pd
[    0.503408] tegra-pcie 1003000.pcie-controller: 4x1, 1x1 configuration
[    0.503469] tegra-pcie 1003000.pcie-controller: failed to get PHY: -517
[    0.503495] tegra-pcie 1003000.pcie-controller: failed to get PHYs: -517
[    0.507152] tsec 54500000.tsec: initialized
[    0.508489] tsec 54100000.tsecb: initialized
[    0.511329] nvdec 54480000.nvdec: initialized
[    0.516639] falcon 54340000.vic: initialized
[    0.518280] falcon 544c0000.nvenc: initialized
[    0.519660] falcon 54380000.nvjpg: initialized
[    0.521651] DC OR NODE connected to /host1x/sor1
[    0.521744] display board info: id 0xffff, fab 0x0
[    0.521799] panel_select fail by _node_status
[    0.521859] display board info: id 0xffff, fab 0x0
[    0.521907] panel_select fail by _node_status
[    0.522088] tegradc tegradc.1: DT parsed successfully

i put the two wifi module to test pcie lane and usb3.0 to test usb port.
i can’t find the usb device from TX1 lane 3.

nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$ lspci
00:01.0 PCI bridge: NVIDIA Corporation Device 0fae (rev a1)
00:02.0 PCI bridge: NVIDIA Corporation Device 0faf (rev a1)
01:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821AE 802.11ac PCIe Wireless Network Adapter
02:00.0 Network controller: Intel Corporation Wireless 7260 (rev bb)
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
    |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/5p, 480M
nvidia@tegra-ubuntu:~$

Hi Jim,
Could you confirm if you’re using E3325 which provides one USB3.0 standard-A port and on PCIe_x1 socket on M.2?
If so, then per my understanding, only one of them could be enabled as they’re sharing the same Lane 0 on M.2, and one GPIO need to be set to select it’s USB3.0 or PCIe_x1 being used.

Please see if following patch could help:

diff --git a/kernel-dts/jetson-platforms/tegra210-comms-p2530-0930.dtsi b/kernel-dts/jetson-platforms/tegra210-comms-p2530-0930.dtsi
index b06e2ac..de96d3f 100644
--- a/kernel-dts/jetson-platforms/tegra210-comms-p2530-0930.dtsi
+++ b/kernel-dts/jetson-platforms/tegra210-comms-p2530-0930.dtsi
@@ -24,6 +24,14 @@
 			label = "wlan-default-output-high-h0",
 				"wlan-default-output-high-i0";
 		};
+
+		wlan-default-output-low {
+			gpio-hog;
+			output-low;
+			gpios = <
+				TEGRA_GPIO(I, 2) 0
+				>;
+		};
 	};
 
 	bluedroid_pm { /* BT BCM43340 in P2530 Compute Module */
diff --git a/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts b/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
index fb5c46b..21166c2 100644
--- a/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
+++ b/kernel-dts/tegra210-jetson-cv-base-p2597-2180-a00.dts
@@ -590,7 +590,7 @@
 				nvidia,function = "xusb";
 				nvidia,port-cap =
 					<TEGRA_PADCTL_PORT_OTG_CAP>;
-				nvidia,usb3-port-fake = <2>;
+				nvidia,usb3-port-fake = <3>;
 			};
 			usb2-std-A-port0 {
 				 nvidia,lanes = "otg-2";
@@ -625,12 +625,11 @@
 				 nvidia,function = "hsic";
 			};
 			pcie {
-				 nvidia,lanes =	"uphy-lane-1", "uphy-lane-2",
-						"uphy-lane-3", "uphy-lane-4";
+				 nvidia,lanes =	"uphy-lane-4";
 				 nvidia,function = "pcie";
 				 nvidia,pcie-controller = <0>;
 				 nvidia,pcie-lane-select =
-					<TEGRA_PADCTL_PCIE_LANE_X4>;
+					<TEGRA_PADCTL_PCIE_LANE_X1>;
 			};
 			pcie-m2 {
 				nvidia,lanes = "uphy-lane-0";
@@ -638,11 +637,26 @@
 				nvidia,pcie-controller = <1>;
 				nvidia,pcie-lane-select =
 					<TEGRA_PADCTL_PCIE_LANE_X1>;
+				status = "disabled";
 			};
 			sata {
 				 nvidia,lanes = "uphy-lane-7";
 				 nvidia,function = "sata";
 			};
+			e3325-usb2-std-A {
+				nvidia,lanes = "otg-3";
+				nvidia,function = "xusb";
+				nvidia,port-cap =
+					<TEGRA_PADCTL_PORT_HOST_ONLY>;
+			};
+			e3325-usb3-std-A {
+				nvidia,lanes = "uphy-lane-0";
+				nvidia,function = "usb3";
+				nvidia,usb3-port = <2>;
+				nvidia,usb2-map = <3>;
+				nvidia,port-cap =
+					<TEGRA_PADCTL_PORT_HOST_ONLY>;
+			};
 		};
 	};
 
@@ -663,8 +677,10 @@
 			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(1)>,
 			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(1)>,
 			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(0)>,
-			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(0)>;
-		phy-names = "utmi-2", "usb3-1", "utmi-1", "usb3-0", "utmi-0";
+			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(0)>,
+			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(3)>,
+			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(2)>;
+		phy-names = "utmi-2", "usb3-1", "utmi-1", "usb3-0", "utmi-0", "utmi-3", "usb3-2";
 #endif
 		nvidia,pmc-wakeup =
 			<&tegra_pmc

Here are the lane settings seen in kernel log with above patch:

[    5.188568] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 5, set usb3_lanes = 0x20
[    5.188607] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 6, set usb3_lanes = 0x60
[    5.188628] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 4, set pcie_lanes = 0x10
[    5.188670] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 7, set sata_lanes = 0x80
[    5.188682] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 0, set usb3_lanes = 0x61

I saw USB3.0 working porperly on M.2 with this patch, but PCIe_x1 on M.2 won’t work,

Hi BH

from your information, M.2 and usb3.0 only can choose one option.

in the document the interface of TX2 as you say, the M.2(peic) and usb3.0 only one option can choose.
but TX1 i think the config 4 can work on my carrier board because i can work on R24.2.1.
i use lane0 and lane4 for my pcie and lane3 and lane5 for my usb3.0.

i don’t know R28.1 can support any config or what but i test the patch from vidyas but it is not work.

i will test your patch and reply to you. thanks your information

Hi vidyas
i followed your step and check many times but the result still not work.
how do you verify the setting is change to config#3?

every time i copy the new tegra210-jetson-cv-base-p2597-2180-a00.dtb and new tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb to /boot and /boot/dtb
But my console log always show as below,only set lane5 and lane6 for usb3

[    4.741946] tegra21x-padctl-uphy 7009f000.pinctrl: padctl mmio start 0x000000007009f000 end 0x000000007009ffff
[    4.755564] tegra21x-padctl-uphy 7009f000.pinctrl: TEGRA_FUSE_SKU_CALIB_0 0x71c6c0e
[    4.766841] tegra21x-padctl-uphy 7009f000.pinctrl: TEGRA_FUSE_USB_CALIB_EXT_0 0x4
[    4.779494] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-0 is used by XUSB
[    4.788412] tegra21x-padctl-uphy 7009f000.pinctrl: using UTMI port 0 for otg
[    4.797545] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-2 is used by XUSB
[    4.806444] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 5, set usb3_lanes = 0x20
[    4.818632] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 1 maps to USB2 port 2
[    4.830697] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-1 is used by XUSB
[    4.839931] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 6, set usb3_lanes = 0x60
[    4.852752] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 0 maps to USB2 port 1
[    4.865248] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 1, set pcie_lanes = 0x2
[    4.878103] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 2, set pcie_lanes = 0x6
[    4.890966] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 3, set pcie_lanes = 0xe
[    4.903936] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 4, set pcie_lanes = 0x1e
[    4.917041] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 0, set pcie_lanes = 0x1f
[    4.930140] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 7, set sata_lanes = 0x80
[    4.943918] usb-vbus1: supplied by vdd-3v3
[    4.952888] tegra21x-padctl-uphy 7009f000.pinctrl: Done tegra21x_padctl_uphy_probe
[    4.968307] tegra-pcie 1003000.pcie-controller: 4x1, 1x1 configuration
[    4.977791] tegra-pcie 1003000.pcie-controller: PCIE: Enable power rails
[    4.987612] clk_cbus_round_rate: no gbus parent
[    4.994748] tegra_gpu_edp gpu_edp: unable to get max GPU freq
[    5.004216] tegra-pcie 1003000.pcie-controller: probing port 0, using 4 lanes
[    5.005232] gk20a 57000000.gpu: GPCPLL initial settings: NA mode, M=1, N=34, P=3
[    5.010749] tegra-ahci 70027000.sata: Missing devslp-active state
[    5.011691] tegra-ahci 70027000.sata: AHCI 0001.0301 32 slots 2 ports 3 Gbps 0x1 impl platform mode
[    5.011702] tegra-ahci 70027000.sata: flags: 64bit ncq sntf pm led pmp pio slum part deso sadm apst
[    5.017093] scsi host0: tegra_ahci
[    5.021792] scsi host1: tegra_ahci
[    5.022047] ata1: SATA max UDMA/133 mmio [mem 0x70027000-0x70028fff] port 0x100 irq 370
[    5.022051] ata2: DUMMY
[    5.025722] tegra-xudc-new 700d0000.xudc: USB charger detection disabled
[    5.025802] tegra-xudc-new 700d0000.xudc: device mode on
[    5.027399] tegra_core_action core_dvfs_cdev_floor: Tegra CORE DVFS 'floor cooling device' registered
[    5.028972] tegra_core_action core_dvfs_cdev_cap: Tegra CORE DVFS 'cap cooling device' registered
[    5.029383] tegra_dfll_action dfll-cdev-cap: Tegra DFLL 'cap cooling device' registered

Hi BH
your step is change to config 3 , but i need to change to config 4.

Hi vidyas

i use flash.sh to update my dtb. and the result as below

  1. tegra210-jetson-cv-base-p2597-2180-a00.dts
pinctrl@7009f000 {
		status = "okay";
		pinctrl-0 = <&tegra_padctl_uphy_pinmux_default>;
		pinctrl-names = "default";
		tegra_padctl_uphy_pinmux_default: pinmux {
			usb2-micro-AB-xusb {
				nvidia,lanes = "otg-0";
				nvidia,function = "xusb";
				nvidia,port-cap =
					<TEGRA_PADCTL_PORT_OTG_CAP>;
				nvidia,usb3-port-fake = <2>;
			};
			usb2-std-A-port0 {
				 nvidia,lanes = "otg-2";
				 nvidia,function = "xusb";
				 nvidia,port-cap =
					<TEGRA_PADCTL_PORT_HOST_ONLY>;
			};
			usb3-std-A-port0 {
				 nvidia,lanes = "uphy-lane-5";
				 nvidia,function = "usb3";
				 nvidia,usb3-port = <1>;
				 nvidia,usb2-map = <2>;
				 nvidia,port-cap =
					<TEGRA_PADCTL_PORT_HOST_ONLY>;
			};
			usb2-eth {
				 nvidia,lanes = "otg-1";
				 nvidia,function = "xusb";
				 nvidia,port-cap =
					<TEGRA_PADCTL_PORT_HOST_ONLY>;
			};
			usb3-eth {
				 nvidia,lanes = "uphy-lane-6";
				 nvidia,function = "usb3";
				 nvidia,usb3-port = <0>;
				 nvidia,usb2-map = <1>;
				 nvidia,port-cap =
					<TEGRA_PADCTL_PORT_HOST_ONLY>;
			};
			hsic {
				 nvidia,lanes = "hsic-0";
				 nvidia,function = "hsic";
			};
			pcie {
				 nvidia,lanes =	"uphy-lane-4";
				 nvidia,function = "pcie";
				 nvidia,pcie-controller = <0>;
				 nvidia,pcie-lane-select =
					<TEGRA_PADCTL_PCIE_LANE_X1>;
			};
			pcie-m2 {
				nvidia,lanes = "uphy-lane-0";
				nvidia,function = "pcie";
				nvidia,pcie-controller = <1>;
				nvidia,pcie-lane-select =
					<TEGRA_PADCTL_PCIE_LANE_X1>;
			};
			sata {
				 nvidia,lanes = "uphy-lane-7";
				 nvidia,function = "sata";
			};
			e3325-usb2-std-A {
				nvidia,lanes = "otg-3";
				nvidia,function = "xusb";
				nvidia,port-cap =
					<TEGRA_PADCTL_PORT_HOST_ONLY>;
			};
			e3325-usb3-std-A {
				nvidia,lanes = "uphy-lane-3";
				nvidia,function = "usb3";
				nvidia,usb3-port = <2>;
				nvidia,usb2-map = <3>;
				nvidia,port-cap =
					<TEGRA_PADCTL_PORT_HOST_ONLY>;
			};
		};
	};

	xusb@70090000 {
		status = "okay";
		extcon-cables = <&vbus_gpio_extcon 1>;
		extcon-cable-names = "id";
		#extcon-cells = <1>;
		phys =	<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(2)>,
			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(1)>,
			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(1)>,
			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(0)>,
			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(0)>,
			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_UTMI_P(3)>,
			<&tegra_padctl_uphy TEGRA_PADCTL_UPHY_USB3_P(2)>;
		phy-names = "utmi-2", "usb3-1", "utmi-1", "usb3-0", "utmi-0", "utmi-3", "usb3-2";
		nvidia,pmc-wakeup =
			<&tegra_pmc
				PMC_WAKE_TYPE_EVENT 41 PMC_TRIGGER_TYPE_HIGH>,
			<&tegra_pmc
				PMC_WAKE_TYPE_EVENT 44 PMC_TRIGGER_TYPE_HIGH>;
	};
  1. console log
[    4.739916] tegra21x-padctl-uphy 7009f000.pinctrl: padctl mmio start 0x000000007009f000 end 0x000000007009ffff
[    4.739927] tegra21x-padctl-uphy 7009f000.pinctrl: TEGRA_FUSE_SKU_CALIB_0 0x71c6c0e
[    4.739936] tegra21x-padctl-uphy 7009f000.pinctrl: TEGRA_FUSE_USB_CALIB_EXT_0 0x4
[    4.741301] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-0 is used by XUSB
[    4.741311] tegra21x-padctl-uphy 7009f000.pinctrl: using UTMI port 0 for otg
[    4.741319] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-2 is used by XUSB
[    4.741335] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 5, set usb3_lanes = 0x20
[    4.741352] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 1 maps to USB2 port 2
[    4.741359] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-1 is used by XUSB
[    4.741374] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 6, set usb3_lanes = 0x60
[    4.741389] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 0 maps to USB2 port 1
[    4.741407] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 4, set pcie_lanes = 0x10
[    4.741428] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 0, set pcie_lanes = 0x11
[    4.741450] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 7, set sata_lanes = 0x80
[    4.741457] tegra21x-padctl-uphy 7009f000.pinctrl: UTMI-3 is used by XUSB
[    4.741470] tegra21x-padctl-uphy 7009f000.pinctrl: uphy_lane = 3, set usb3_lanes = 0x68
[    4.741484] tegra21x-padctl-uphy 7009f000.pinctrl: USB3 port 2 maps to USB2 port 3
[    4.742297] usb-vbus1: supplied by vdd-3v3
[    4.744921] tegra21x-padctl-uphy 7009f000.pinctrl: Done tegra21x_padctl_uphy_probe
[    4.747653] tegra-pcie 1003000.pcie-controller: 4x1, 1x1 configuration
[    4.747881] tegra-pcie 1003000.pcie-controller: PCIE: Enable power rails
[    4.748595] clk_cbus_round_rate: no gbus parent
[    4.748602] tegra_gpu_edp gpu_edp: unable to get max GPU freq
[    4.748978] tegra-pcie 1003000.pcie-controller: probing port 0, using 4 lanes
[    4.749235] tegra-ahci 70027000.sata: Missing devslp-active state
[    4.750169] tegra-pcie 1003000.pcie-controller: probing port 1, using 1 lanes
[    4.750374] tegra-ahci 70027000.sata: AHCI 0001.0301 32 slots 2 ports 3 Gbps 0x1 impl platform mode
[    4.750386] tegra-ahci 70027000.sata: flags: 64bit ncq sntf pm led pmp pio slum part deso sadm apst
[    4.751060] gk20a 57000000.gpu: GPCPLL initial settings: NA mode, M=1, N=34, P=3
[    4.760050] scsi host0: tegra_ahci
[    4.764581] scsi host1: tegra_ahci
[    4.764824] ata1: SATA max UDMA/133 mmio [mem 0x70027000-0x70028fff] port 0x100 irq 370
[    4.764828] ata2: DUMMY
[    4.768004] tegra-xudc-new 700d0000.xudc: USB charger detection disabled
[    4.768180] tegra-xudc-new 700d0000.xudc: entering ELPG
[    4.768797] tegra21x-padctl-uphy 7009f000.pinctrl: trying to assert IDDQ while XUSB partitions are on
[    4.769179] tegra-xudc-new 700d0000.xudc: entering ELPG done
[    4.769825] tegra_core_action core_dvfs_cdev_floor: Tegra CORE DVFS 'floor cooling device' registered
[    4.771533] tegra_core_action core_dvfs_cdev_cap: Tegra CORE DVFS 'cap cooling device' registered
[    4.771964] tegra_dfll_action dfll-cdev-cap: Tegra DFLL 'cap cooling device' registered
[    4.772657] tegra_dfll_action dfll-cdev-floor: Tegra DFLL 'floor cooling device' registered
[    4.775623] xhci-tegra 70090000.xusb: UTMI port 0 has OTG_CAP
[    4.775625] xhci-tegra 70090000.xusb: No USB3 port has OTG_CAP
[    4.779219] xhci-tegra 70090000.xusb: Direct firmware load for tegra21x_xusb_firmware failed with error -2
[    4.779221] xhci-tegra 70090000.xusb: Falling back to user helper
[    4.781898] input: gpio-keys as /devices/gpio-keys/input/input2
[    4.823106] tegra_rtc 7000e000.rtc: setting system clock to 2000-01-01 01:26:53 UTC (946690013)
[    4.827357] vi 54080000.vi: vi_probe: ++
[    4.833286] vi 54080000.vi: initialized
[    4.835757] vi 54080000.vi: all channel register failed
[    4.836626] Disable partitions left on by BL
[    4.836628]   disb
[    4.846128] DRAM derating cdev registered.
[    4.846951] vdd-cpu-fixed: disabling
[    4.846961] vdd-cam-hv: disabling
[    4.847047] avdd-ts-hv: disabling
[    4.847112] vdd-ts: disabling
[    4.847177] max77620-gpio7: disabling
[    4.847339] lcd-bl-en: disabling
[    4.847343] en-vdd-cam: disabling
[    4.847346] aux-3v3: disabling
[    4.847348] snsr_pm: disabling
[    4.847350] vdd-disp-3v0: disabling
[    4.847352] vdd-fan: disabling
[    4.847354] usb-vbus1: disabling
[    4.847355] en-vdd-ts-1v8: disabling
[    4.847356] en-vdd-ts-hv-3v3: disabling
[    4.847358] en-vdd-disp-3v3: disabling
[    4.847473] en-mdm-pwr-3v7: disabling
[    4.847474] en-vdd-disp-1v8: disabling
[    4.847584] en-vdd-cam-hv-2v8: disabling
[    4.847586] rtl-5v0: disabling
[    4.847588] en-usb-vbus2: disabling
[    4.847590] en-vdd-cam-1v2: disabling
[    4.847591] en-vdd-vcm-2v8: disabling
[    4.848470] ALSA device list:
[    4.848473]   #0: tegra-hda at 0x70038000 irq 348
[    4.848474]   #1: tegra-snd-t210ref-mobile-rt565x
[    5.087254] ata1: SATA link down (SStatus 0 SControl 300)
[    5.170281] tegra-pcie 1003000.pcie-controller: link 0 down, retrying
[    5.374592] EXT4-fs (mmcblk0p1): couldn't mount as ext3 due to feature incompatibilities
[    5.384702] EXT4-fs (mmcblk0p1): couldn't mount as ext2 due to feature incompatibilities
[    5.581249] tegra-pcie 1003000.pcie-controller: link 0 down, retrying
[    5.772065] EXT4-fs (mmcblk0p1): 13 orphan inodes deleted
[    5.778080] EXT4-fs (mmcblk0p1): recovery complete
[    5.790719] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
[    5.800042] VFS: Mounted root (ext4 filesystem) on device 179:1.
[    5.809678] devtmpfs: mounted
[    5.813633] Freeing unused kernel memory: 1208K (ffffffc001175000 - ffffffc0012a3000)
[    5.826501] Freeing alternatives memory: 76K (ffffffc0012a3000 - ffffffc0012b6000)
[    5.891023] systemd[1]: System time before build time, advancing clock.
[    5.914509] random: systemd: uninitialized urandom read (16 bytes read, 95 bits of entropy available)
[    5.927293] systemd[1]: systemd 229 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN)
[    5.948503] systemd[1]: Detected architecture arm64.
[    5.965074] systemd[1]: Set hostname to <tegra-ubuntu>.
[    5.981331] random: systemd: uninitialized urandom read (16 bytes read, 97 bits of entropy available)
[    5.985488] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 98 bits of entropy available)
[    5.985564] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 98 bits of entropy available)
[    5.985583] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 98 bits of entropy available)
[    5.985702] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 98 bits of entropy available)
[    6.002711] random: lvm2-activation: uninitialized urandom read (4 bytes read, 100 bits of entropy available)
[    6.014213] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 100 bits of entropy available)
[    6.014331] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 100 bits of entropy available)
[    6.014441] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 100 bits of entropy available)
[    6.045223] tegra-pcie 1003000.pcie-controller: link 0 down, retrying
[    6.047205] tegra-pcie 1003000.pcie-controller: link 0 down, ignoring
[    6.047392] tegra-pcie 1003000.pcie-controller: PCI host bridge to bus 0000:00
[    6.047396] pci_bus 0000:00: root bus resource [mem 0x13000000-0x1fffffff]
[    6.047399] pci_bus 0000:00: root bus resource [mem 0x20000000-0x3fffffff pref]
[    6.047402] pci_bus 0000:00: root bus resource [bus 00-ff]
[    6.047404] pci_bus 0000:00: root bus resource [io  0x1000-0xffff]
[    6.047668] pci 0000:00:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    6.048190] pci 0000:00:02.0: BAR 8: assigned [mem 0x13000000-0x130fffff]
[    6.048195] pci 0000:01:00.0: BAR 0: assigned [mem 0x13000000-0x13001fff 64bit]
[    6.048216] pci 0000:00:02.0: PCI bridge to [bus 01]
[    6.048221] pci 0000:00:02.0:   bridge window [mem 0x13000000-0x130fffff]
[    6.048348] pcieport 0000:00:02.0: Signaling PME through PCIe PME interrupt
[    6.048350] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[    6.299889] systemd[1]: Listening on udev Control Socket.
[    6.307428] systemd[1]: Listening on Journal Socket.
[    6.314279] systemd[1]: Created slice System Slice.
[    6.324934] systemd[1]: Starting Load Kernel Modules...
[    6.332020] systemd[1]: Listening on udev Kernel Socket.
[    6.339619] systemd[1]: Listening on Syslog Socket.
[    6.346385] systemd[1]: Listening on Journal Socket (/dev/log).
[    6.354288] systemd[1]: Created slice system-getty.slice.
[    6.361601] systemd[1]: Reached target Swap.
[    6.368560] systemd[1]: Starting Remount Root and Kernel File Systems...
[    6.377309] systemd[1]: Listening on LVM2 metadata daemon socket.
[    6.386101] systemd[1]: Mounting Debug File System...
[    6.393226] systemd[1]: Created slice User and Session Slice.
[    6.401134] systemd[1]: Listening on Journal Audit Socket.
[    6.409399] systemd[1]: Starting Create list of required static device nodes for the current kernel...
[    6.421652] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[    6.433311] systemd[1]: Starting Journal Service...
[    6.440308] systemd[1]: Reached target Encrypted Volumes.
[    6.447796] systemd[1]: Reached target Slices.
[    6.454341] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    6.462611] systemd[1]: Reached target Remote File Systems (Pre).
[    6.470834] systemd[1]: Listening on LVM2 poll daemon socket.
[    6.478619] systemd[1]: Reached target User and Group Name Lookups.
[    6.487172] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    6.497804] systemd[1]: Reached target Remote File Systems.
[    6.506162] systemd[1]: Started Braille Device Support.
[    6.513863] systemd[1]: Listening on Device-mapper event daemon FIFOs.
[    6.523184] systemd[1]: Starting Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling...
[    6.538815] systemd[1]: Mounted Debug File System.
[    6.546577] systemd[1]: Started Load Kernel Modules.
[    6.554103] systemd[1]: Started Remount Root and Kernel File Systems.
[    6.563373] systemd[1]: Started Create list of required static device nodes for the current kernel.
[    6.588774] systemd[1]: Started LVM2 metadata daemon.
[    6.597040] systemd[1]: Starting Create Static Device Nodes in /dev...
[    6.606794] systemd[1]: Starting Load/Save Random Seed...
[    6.617307] systemd[1]: Starting udev Coldplug all Devices...
[    6.626805] systemd[1]: Mounting Configuration File System...
[    6.635782] systemd[1]: Starting Apply Kernel Variables...
[    6.644479] systemd[1]: Mounting FUSE Control File System...
[    6.654192] systemd[1]: Mounted Configuration File System.
[    6.662019] systemd[1]: Mounted FUSE Control File System.
[    6.669746] systemd[1]: Started Journal Service.
[    6.715033] systemd-journald[210]: Received request to flush runtime journal from PID 1
[    6.899219] random: nonblocking pool is initialized
[    6.935283] cfg80211: World regulatory domain updated:
[    6.941258] cfg80211:  DFS Master region: unset
[    6.947183] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[    6.960250] xhci-tegra 70090000.xusb: cannot find firmware....retry after 1 second
[    6.960638] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    6.960640] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    6.960642] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[    6.960645] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[    6.960648] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[    6.960651] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[    6.960653] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[    6.960655] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[    7.179056] dhd_module_init in
[    7.185066] found wifi platform device bcmdhd_wlan
[    7.194475] Power-up adapter 'DHD generic adapter'
[    7.201335] wifi_platform_set_power = 1
[    7.407219] wifi_platform_bus_enumerate device present 1
[    7.423470] wifi_platform_bus_enumerate device present 0
[    7.423890] F1 signature read @0x18000000=0x17214354
[    7.439551] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x2
[    7.448141] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[    7.457112] wifi_platform_prealloc: failed to alloc static mem section 7
[    7.464875] wifi_platform_get_mac_addr
[    7.471759] CFG80211-ERROR) wl_setup_wiphy : Registering Vendor80211
[    7.496710] wl_create_event_handler(): thread:wl_event_handler:1c0 started
[    7.504786] CFG80211-ERROR) wl_event_handler : [    7.504930] dhd_attach(): thread:dhd_watchdog_thread:1c2 started
[    7.504959] dhd_attach(): thread:dhd_dpc:1c3 started
[    7.504990] dhd_attach(): thread:dhd_rxf:1c4 started
[    7.504995] dhd_deferred_work_init: work queue initialized
[    7.505212] Dongle Host Driver, version 1.201.82 (r)
[    7.505212] Compiled in drivers/net/wireless/bcmdhd on Jul 20 2017 at 00:39:01
[    7.505522] tegra_sysfs_register
[    7.505553] Register interface [wlan0]  MAC: 00:04:4b:8f:c0:c5
[    7.505553]
[    7.505556] dhd_prot_ioctl : bus is down. we have nothing to do
[    7.505645] sdhci-tegra sdhci-tegra.1: Tuning already done, restoring the best tap value : 46
[    7.506680] wifi_platform_set_power = 0

[    7.589262] tsk Enter, tsk = 0xffffffc07a7a1a70
[    7.918459] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    7.925362]
[    7.925362] Dongle Host Driver, version 1.201.82 (r)
[    7.925362] Compiled in drivers/net/wireless/bcmdhd on Jul 20 2017 at 00:39:01
[    7.944093] wl_android_wifi_on in
[    7.948437] wifi_platform_set_power = 1
[    7.960992] xhci-tegra 70090000.xusb: Firmware timestamp: 2016-11-24 02:31:08 UTC, Version: 50.18 release
[    7.974363] xhci-tegra 70090000.xusb: xHCI Host Controller
[    7.974383] xhci-tegra 70090000.xusb: new USB bus registered, assigned bus number 1
[    7.975276] xhci-tegra 70090000.xusb: hcc params 0x0184f525 hci version 0x100 quirks 0x00010810
[    7.975304] xhci-tegra 70090000.xusb: irq 319, io mem 0x70090000
[    7.975430] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    7.975433] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    7.975436] usb usb1: Product: xHCI Host Controller
[    7.975438] usb usb1: Manufacturer: Linux 4.4.38-tegra xhci-hcd
[    7.975440] usb usb1: SerialNumber: 70090000.xusb
[    7.976015] hub 1-0:1.0: USB hub found
[    7.976148] hub 1-0:1.0: 5 ports detected
[    7.991256] xhci-tegra 70090000.xusb: xHCI Host Controller
[    7.991266] xhci-tegra 70090000.xusb: new USB bus registered, assigned bus number 2
[    7.991462] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[    7.991465] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    7.991468] usb usb2: Product: xHCI Host Controller
[    7.991470] usb usb2: Manufacturer: Linux 4.4.38-tegra xhci-hcd
[    7.991472] usb usb2: SerialNumber: 70090000.xusb
[    7.992076] hub 2-0:1.0: USB hub found
[    7.992212] hub 2-0:1.0: 4 ports detected
[    8.226895] mmc1: queuing unknown CIS tuple 0x80 (5 bytes)
[    8.287226] usb 1-4: new full-speed USB device number 2 using xhci-tegra
[    8.303966] usb 2-1: new SuperSpeed USB device number 2 using xhci-tegra
[    8.314383] usb 1-4: feature bit otg_vbus_off set
[    8.319877] usb 1-4: New USB device found, idVendor=8087, idProduct=07dc
[    8.327475] usb 1-4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    8.337115] xhci-tegra 70090000.xusb: tegra_xhci_mbox_work mailbox command 6
[    8.345207] usb 2-1: New USB device found, idVendor=0955, idProduct=09ff
[    8.353248] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[    8.361332] usb 2-1: Product: USB 10/100/1000 LAN
[    8.366953] usb 2-1: Manufacturer: Nvidia
[    8.372334] usb 2-1: SerialNumber: 000001000000
[    8.380763] xhci-tegra 70090000.xusb: tegra_xhci_mbox_work mailbox command 6
[    8.397583] sdhci-tegra sdhci-tegra.1: Tuning already done, restoring the best tap value : 46
[    8.408352] F1 signature read @0x18000000=0x17214354
[    8.419330] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x2
[    8.426308] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[    8.486905] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[    8.500061] usb 2-1: reset SuperSpeed USB device number 2 using xhci-tegra
[    8.535860] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[    8.542459] wifi_platform_get_mac_addr
[    8.547667] Firmware up: op_mode=0x0005, MAC=00:04:4b:8f:c0:c5
[    8.559420] dhd_preinit_ioctls pspretend_threshold for HostAPD failed  -23
[    8.571244] Firmware version = wl0: Sep 14 2016 11:38:27 version 7.35.221.18 (r657725) FWID 01-9001dfb5
[    8.583170] dhd_interworking_enable: failed to set WNM info, ret=-23
[    8.589704] tegra_sysfs_on
[    8.652735] r8152 2-1:1.0 eth0: v2.03.3 (2015/01/29)
[    8.662739] r8152 2-1:1.0 eth0: This product is covered by one or more of the following patents:
[    8.662739]          US6,570,884, US6,115,776, and US6,327,625.
[    8.662739]
[    8.763417] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

Ubuntu 16.04 LTS tegra-ubuntu ttyS0
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
    |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
    |__ Port 3: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/5p, 480M
    |__ Port 4: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 3, If 0, Class=Wireless, Driver=, 12M
        |__ Port 2: Dev 3, If 1, Class=Wireless, Driver=, 12M
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$ lspci
00:02.0 PCI bridge: NVIDIA Corporation Device 0faf (rev a1)
01:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
nvidia@tegra-ubuntu:~$
nvidia@tegra-ubuntu:~$

i can see the usb storage from lane3 and lane5 but the lane4 pcie port is fail to bring up.
how to fix this issue?
R28.1 can support config 4 ?

Hi,etta
I have the same problem.
Have you made any new progress?

More discussions at https://devtalk.nvidia.com/default/topic/1025927