AGX Orin usb reboot issue

Hi Nvidia,

想請問有關於AGX Orin usb的問題:

我們使用自己的carrier board在重新啟動系統時, 掛在usb2 hub上的所有裝置都會認不到

USB2/3配置如下 =>
usb2_3配置

(USB Type A *2 & M.2 Key-B都有用到usb2.0訊號,所以USB2_3有在外接一個2.0 HUB IC並掛在此HUB IC上)

目前我們試驗在出現問題時,如果將Key-B的power斷開或reset

掛在usb2.0 hub上的裝置就都可以認到

所以想請問可能的原因或除錯方向?

另外,我在Orin NX FAQ有看到這段

AGX Orin usb硬體是否也需要照此設計連接?

如果按照此設計,那我們所有的usb2-companion設定值都會是<3> (但這應該不是正確的設定? )

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

因為我目前懷疑可能是usb2-companion設定問題, 但有辦法在不修改硬體的前提做這段的確認嗎?

以下附上相關log與dts

tegra234-agx-orin.dtsi.txt (9.4 KB)
dmesg_boot.log (74.2 KB)
dmesg_reboot.log (68.2 KB)

我覺得先要有個基本認知… 你要請別人幫忙看usb問題 你就要給出線路圖或是至少block diagram大概講一下怎樣接線的

我從你的USB2/3配置表格中不太確定為何會有所有USB3都有 " nvidia,usb2-companion = <3>"的結論
請問一下線路到底怎樣接的?

Device tree就是要跟硬體線路搭配, 沒有辦法只從你這一些敘述中就知道要怎麼改…

了解, 目前接線大致如下:

請問你的意思是你的USB2的信號是從你的hub後面接出來給其他interface使用的嗎?

對,目前這顆usb2.0 hub上有接到兩個USB Type A、Key-B、m-PCIe

至於otg(USB2_0)、GPS(USB2_1)、Key-E(USB2_2)各自都是接到原生SoM USB2.0 訊號

對,目前這顆usb2.0 hub上有接到兩個USB Type A、Key-B、m-PCIe

這個設計是錯的 也沒有software solution.

devicetree裡面的 nvidia,usb2-companion 指的是原生SOM信號而且不能有重複.
我們的driver沒辦法控制USB HUB後面出來的信號 所以這種設計是沒辦法的

那我想在詢問一下,

若我們把USB Type A (UPHY_RX0/TX0) 與 M.2 Key-E交換

M.2 Key-B (UPHY_RX1/TX1) 與 GPS交換

至於另一組USB Type A (UPHY_RX20/TX20) 一樣保持在usb2.0 hub

也就是dts會調整成

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

這樣是否可行?

我沒有辦法看到實際的線路圖, 所以不能跟你說一定ok或不行

但如果你確定每個信號都是從Jetson SOM端出來而且沒有共用 (比方說不同的I/O用同一組USB2信號) 那這樣的設計應該是可以.

好,我們會先朝這個方向試試看