USB3 is not performing as expected

Hello, I am working on jetson orin nano with custom carrier board.

On our board we have two independent USB3 ports:
The first one is Jetson port USB1 together with SuperSpeed signals from USBSS1.
The second one is Jetson port USB2 together with SuperSpeed signals from USBSS2.

I have some changes in device tree.

Jetson Orin Nano Baseb bard which has USB 3.2 Gen 2:

Theoretical Speed: 10 Gbps (1250 MB/s)

Test Results:

Write Speed: ~765 MB/s

Read Speed: ~1660 MB/s

The write speed is within the 1250 MB/s range, while the read speed again exceeds the 1250 MB/s rangece. Here the test subject (USB stick) is connected over two USB 3.0 adapters and the USB-stick its self USB 3.0.

Without changing the device-tree:

Write Speed: ~20 MB/s
Read Speed: ~23 MB/s

Should not it I get more speed ?

Below is the device changes I have done:

xhci@3760000 {
		compatible = "nvidia,tegra234-xhci-vf4";
		reg = <0x00 0x3760000 0x00 0x40000>;
		interrupts = <0x00 0x18 0x04>;
		nvidia,xusb-padctl = <0x2b5>;
		interconnects = <0x03 0x4a 0x03 0x4b>;
		interconnect-names = "dma-mem\0dma-mem";
		iommus = <0x51 0x1d>;
		dma-coherent;
		status = "disabled";
		phandle = <0x46b>;
	};
xusb_padctl@3520000 {
		compatible = "nvidia,tegra234-xusb-padctl";
		reg = <0x00 0x3520000 0x00 0x20000 0x00 0x3540000 0x00 0x10000>;
		reg-names = "padctl\0ao";
		interrupts = <0x00 0xa7 0x04>;
		resets = <0x02 0x72>;
		reset-names = "padctl";
		status = "okay";
		vclamp-usb-supply = <0x4c>;
		avdd-usb-supply = <0x2b2>;
		phandle = <0x2b5>;

		pads {

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

				lanes {

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

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

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

					usb2-3 {
						status = "disabled";
						#phy-cells = <0x00>;
					};
				};
			};

			usb3 {

				lanes {

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

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

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

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

		ports {

			usb2-0 {
				status = "okay";
				mode = "host";
				vbus-supply = <0x2b3>;
				usb-role-switch;

				connector {
					compatible = "usb-b-connector\0gpio-usb-b-connector";
					label = "micro-USB";
					type = "micro";
					vbus-gpio = <0x06 0x99 0x01>;
				};
			};

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

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

			usb2-3 {
				status = "disabled";
			};

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

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

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

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

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

			prod {
				prod = <0x00 0x284 0x38 0x38 0x00 0x288 0x3fff000 0x51e000>;
			};
		};
	};

Hi,
If your custom board has different design from developer kit, please refer to adaptation guide to modify device tree accordingly:

Jetson AGX Orin Platform Adaptation and Bring-Up — NVIDIA Jetson Linux Developer Guide

And do compliance test to ensure the signal quality if good:

Jetson Download Center | NVIDIA Developer

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