Custom carrier board, USB DeviceTree Changes?

Hello everybody,

I’m using the Jetson Nano, and i have a custom carrier board. Everything works fine except the usb. We are using only USB2, the pins for USB3 are not connected. (See Images below)
image


Some Info:

cat /etc/nv_tegra_release 
# R32 (release), REVISION: 6.1, GCID: 27863751, BOARD: t210ref, EABI: aarch64, DATE: Mon Jul 26 19:20:30 UTC 2021

Output of “sudo lsusb -v” can be seen attached below.
lsusbOutput.txt (5.1 KB)

So my main problem is, only the two USB Hubs are showing up. If i plug an USN Stick on USB0 , nothign happends at all!

Do i miss something obvious?

I read this forum post: Jetson nano custom carrier board usb not working without a hub - #13 by WayneWWW , do i understand that correctly that because we don’t use USB3.0 on our carrier board it is possible that USB2.0 is not working and i need to modify the device tree?

Any help is appreciated. If i miss some important information let me know.

PS. I did flash the board over the USB0, so that is working.

If the usb3 does not exist, then you need to disable it and that needs to modify the device tree.

If the original vbus is different from your case, then you need to modify device tree too.

And the common way to debug issue is checking the dmesg.

Is your usb0 port a micro AB port? Just confused by there is a type A memory stick.

Thanks for the fast answer :)
usb0 port is connected to a micro AB port and a USB Type A port.
Okay will try to figure out how to disable it.

My current guess is to modify this file: tegra210-porg-p3448-common.dtsi
Somewhere in here:

xusb_padctl@7009f00 {
    ...
}

err… I don’t quite sure what does that mean connect to a micro AB port and a USB type A port. This sounds not what we can support. Did you ever check our hardware design guide?

Thank you again for the fast answer.
I have to be honest here. Hardware is not my area of expertise. The hardware(carrier board) developed another team member. My task is to create the image. I check with our hardware expert.

Any comment on if the specific file i mentioned above and the specifc part of the file would be the correct area to disable usb3? :)

PS. usb0 is according to the device tree as otg configured. I don’t see why a usb AB connector and a usb type A connector should be a problem.
PSS. I will try to disable usb3 in the location i mentioned above then flash the device tree again. Let’s see if that will change anything :)

Just make it easier to understand, tegra does not support a pin connected to two different usb ports…

We suggest you can directly just make a otg port which supports both host and device mode instead of what you are doing now…

Have your hardware team measured/probe the USB lines signals? They should help on this to make sure hardware connection has no problem first.

Yes, I’m pretty sure ( as in if they say the hardware is fine i believe them) that the hardware is fine.

I disable usb3-0 in xusbpadctl@7009f000 , ports … and flash DTB again, now if run “lsusb” nothing can be seen anymore, not even the two hubs.

Just to let you guys know. Needed to set the USB0 from “otg” to “host”. Now it works as expected.
Thank for the help :D

PS. Weirdly enough USB0 is also used for flashing and still works. I would have expected that it wouldn’t work anymore after setting USB0 to host.

Flashing does not require the dtb. DTB is for kernel to use.

When your board is in recovery mode, there is no kernel running at all. It will directly trigger the usb0 to device mode.

I am just wondering why your design separate two ports here. You don’t need to use your micro usb port and your type A port at the same time?

We still have some functions depend on the usb0 when it works as device mode. If you use current dtb, those functions won’t work anymore. It is also weird that you just make a port which has no functionality after system is up…

Sorry for the late respond( had weekend) and thank you for your answer.

Makes sense.

No we don’t need both ports at the same time. I assume we have both just for convenience, so the end-user can use a normal USB Stick but also micro-usb cable.

Can you clarifiy which functionality needs device mode support?

For example,

  1. The headless configuration requires the help of device mode.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/flashing.html#wwpID0E02C0HA

→ Headless Mode Flow in oem-config

Also, usb device mode provides a virtual console as 192.168.55.1. This is the default interface that sdkmanager is using to install sdk to the board.

  1. The initrd flash requires to use usb device mode. But since you are using nano board, it does not matter at this moment. This only affects TX2 and Xavier series.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/flashing.html#wwpID0E0PI0HA

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