P3701-0004 使用自定义载板 USB 不工作

SOM:AGX Orin 32G/p3701-0004
SW: JP6.2/Jetson Linux 36.4.3/Linux Kernel 5.15.148

AGX Orin 32G SOM 使用 P3737 载板 USB 控制器和外设都工作正常,但是换用我们自定义的载板没有任何 USB 设备。

使用自定义载板做以下实验:

  • UEFi stage:USB 键盘可以正常工作
  • After Kernel boot done:任何 USB 设备都不工作
    • lsusb 没有任何输出
    • kernel log 没有任何 tegra-xusb 相关信息
    • /sys/kernel/debug/usb/devices 也没有任何信息
      我们的自定义载板跟 P3737 载板 USB 相关部分基本一样,完全兼容,都有使用 RTS5420,请问这可能是什么原因呢?

使用 P3737 载板 log/dts: kernel.txt (66.6 KB) extracted.dts.txt (395.9 KB)

使用自定义载板: kernel.txt (57.5 KB) extracted.dts.txt (777.0 KB)

please refer to document to modify the device tree.

我们的自定义载板跟 P3737 载板 USB 相关部分基本一样

I don’t think this is true. If you don’t have type C port as the one on p3737 devkit, then you have to modify the device tree.

自定义载板上也有 type C, 跟p3737 一样是用来烧录镜像的

Is your type C also using Cypress PD controller on your custom board?

查了下原理图,用的是 CYPD4226-40LQXIT 跟 p3737 是一样的,请问这个芯片需要单独烧录固件吗?

Just to clarify. If your hardware is not 100% same as NV devkit, then you need to modify the device tree.

I mean 100% here. Every GPIO and I2C need to be same pin. Anything that got changed would lead to usb driver init failure.

查了下原理图,用的是 CYPD4226-40LQXIT 跟 p3737 是一样的,请问这个芯片需要单独烧录固件吗?

Yes, this one has separate firmware to flash.

我们的自定义板只是在 P3737 基础上删除了部分用不到的电路,比如去掉一路 type c,去掉 pcie etc,pin 脚定义没有改变,请问这种情况也会导致 USB 驱动初始化失败吗?我在 kernel log里面找不到任何 tegra-xusb 的log。

Yes, it will.