Jetson orin nx Jetpack6.0(R36.3.0)

version:jetson orin nx Jetpack6.0(R36.3.0)
我们使用了一个USB转固态RTL9210,接在jetson orin nx的USB3上了,这一路USB是3.0的,但是实际读出来是2.0的速率,如下测试:
1、lsusb 查看

2、dd命令测试

硬件连接:


请问这个software还要修改哪里?才能切换到usb3.0协议呢?

這一個的usb2是接到jetson端的哪裡?

没明白说的USB2是什么?我们9210模块接到的是jetson usb3通道上,但是目前看走的是2.0协议,速率达不到,如何才能走3.0协议呢?

所有的usb3裝置都還是要有一個usb2 data lane一起接著.
請問這個usb2 data lane你是接到Jetson的哪一個lane上面?

沒有所謂"我要切usb3.0還是usb2.0協議". 你的device tree寫對就會自己走去usb3.0 speed.
教你怎麼寫之前得先把你硬體線路問清楚

硬件上是这样接的,
usb1

device tree在哪写走usb3.0 speed.呢?

https://docs.nvidia.com/jetson/archives/r36.4/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html?highlight=universal%20bus#porting-the-universal-serial-bus

詳細文件在這

簡單來說幾個地方要確認

padctl@3520000
usb@3610000
usb@3550000

麻烦您看下这样对吗?需要改那个节点呢
padctl@3520000 {
status = “okay”;

		pads {
			usb2 {
				lanes {
					usb2-0 {
						nvidia,function = "xusb";
						status = "okay";
					};

					usb2-1 {
						nvidia,function = "xusb";
						status = "okay";
					};

					usb2-2 {
						nvidia,function = "xusb";
						status = "okay";
					};
				};
			};

			usb3 {
				lanes {
					usb3-0 {
						nvidia,function = "xusb";
						status = "okay";
					};

					usb3-1 {
						nvidia,function = "xusb";
						status = "okay";
					};
				};
			};
		};

		ports {
			/* recovery port */
			usb2-0 {
				mode = "otg";
				vbus-supply = <&vdd_5v0_sys>;
				status = "okay";
				usb-role-switch;
			};

			/* hub */
			usb2-1 {
				mode = "host";
				vbus-supply = <&vdd_1v1_hub>;
				status = "okay";
			};

			/* M.2 Key-E */
			usb2-2 {
				mode = "host";
				vbus-supply = <&vdd_5v0_sys>;
				status = "okay";
			};

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

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

usb@3610000 {
status = “okay”;

		phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
		       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
		       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
		       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
		       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
		phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0",
			    "usb3-1";
	};

usb@3550000 {
status = “okay”;

		phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
		       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
		phy-names = "usb2-0", "usb3-0";
	};

这是默认的,我是需要添加什么吗?

是需要我添加usb3-2吗

沒有 你就把你沒用到的usb移掉. USBSS0對應到的就是usb3-0. USB1_D對應到的就是usb2-1

power supply部分如果不是always-on. 就得改那個vbus-supply


我理解这个原因是不是在ports节点的usb3-0节点中,没添加vbus-supply导致的呢?

vbus-supply是不是要和我的hardware对应上呢?这个怎么添加呢

  1. status 設成disabled就可以了

  2. 因為usb3一定得有一個usb2 lane搭… 所以vbus-supply加在對應的usb2-x的port底下就可以了…

  3. vbus-supply是不是要和我的hardware对应上呢?这个怎么添加呢

是的. 就是基本的linux regulator framework.

vbus-supply这里改了没作用,麻烦给点思路怎么改

你們的電路設計是always on嗎

1、肯定是always on吧,如果不是的话那2.0也识别不到了吧。

2、我还做了一些测试,用你们devkit外挂usb硬盘读出来2.0。
3、我们载板对应你们devkit的hub。

如果是某個特定裝置在NV devkit上只能抓到usb2.0
那請你開個新topic來討論這件事

在NV devkit上發生的跟你們板子上發生的不一定是同一件事請.
昨天還有另外一個用戶隨便接一個裝置在devkit上還跑出來usb3.1.
如果跑出usb2的速度, 比較有機會是特定裝置才會複製到的問題.

另外, 這裡事情不是憑感覺. 請你就問你們的硬體設計這個到底是不是always-on 5v.

如果不是的話(包括不是5v)就要調整.是的話就也不需要調整了

好的,先不说NV devkit的问题。
模块的硬件设计都是3.3V供的电。


您说的always-on 5v?指的是这里吗