We try update my custom board Xavier AGX from 4.6.2 to 5.0.2.
Although I encountered some difficulties with USB OTG, I solved it by reading the examples.
However, I found that my USB speed only supports 2.0 and won’t use the 3.0 speed, but I do have a root port hub for 3.0.
Because devkit does not have this problem, I studied the Device Tree, but I have not been able to find out which parts need to be modified.
Could you please give me some direction?
DeviceTree about USB.
post.dts (4.5 KB)
Do you mean you have a type-A port and when a USB3 device is connected, it only can be enumerated as a USB2(highspeed) device?
Yes, exactly that.
I have set up nvidia, usb-companion according to tegra124-xusb-padctl.txt in Documentation, so that usb3 can be compared to a set of usb2.
usb2-3 is our USB Type-A, so I set the nvidia and usb-companion of usb3-3 to 3. There should be no problem with this, right?
Digression, in the Bring-Up Guide version 1.2 of Downloader Center Xavier AGX, some content (OTG) is no longer applicable to Jetpack 5.0.2.
We infer the following information based on devkit DeviceTree, circuit diagram and website information
UPHY 1: usb3-2
UPHY 6: usb3-0
UPHY 11: usb3-3
Our USB-A 3.0 uses UPHY 11 and USB2-3, so set nvidia and usb2-companion of usb3-3 to <3>, but this Port will still recognize USB 3.0 devices as 2.0.
I’m now trying to confirm against the TRM, what are the register that can be read to confirm this?
Or let us know if our information about UPHY is wrong.
I have another module at hand to burn the Jetpack 4.6.2 version. Using our past DeviceTree, the USB can recognize the 3.0 device normally. I plan to find out the reason by looking for the register status of the two.
Generally we check correctness of the device tree. Please run xxd command to check if the setting meets the hardware layout. Reference command:
nvidia@ubuntu:/proc/device-tree$ xxd xusb_padctl@3520000/ports/usb3-2/nvidia,us
One deviation from Jetpack 4 to Jetpack 5 is the dtbo files. Please ensure you execute this steps correctly:
Kernel Customization — Jetson Linux<br/>Developer Guide 34.1 documentation
6. For the device tree, replace the files in `Linux_for_Tegra/kernel/dtb/` with a copy from:
You would need to copy not only dtb files but also dtbo files.
Regarding the upgrade of JetPack 4 to JetPack 5, you should not worry about the difference of dtsi, because we directly use the BSP Source of JetPack 5 for development.
Without changing the include of tegra194-p2888-0001-p2822-0000.dts, gradually add the original Jetpack 4 settings.
Except for OTG and some variable names that need to be modified, in fact, except for the speed problem of USB 3.0, the rest of the interfaces can work. Of course, this requires longer verification and testing.
Regarding the test results using xxd just now, nvidia, usb2-companion are consistent with the DeviceTree I set.
If you boot up the system and can see the device tree is correct. usb2-3 is enabled, set to host mode, and has vbus pin configured. usb3-3 is enabled and companioned with usb2-3. Then the device tree looks fine for a USB3 type-A port. For next, please try to disable and then enable regulator to trigger re-enumeration:
Switch on and off usb ports programmatically on AGX - #5 by DaneLLL
To see if it can be enumerated as USB3 device. Your regulator may be different from Xavier developer kit so please disable/enable the one supplying to the usb2-3/usb3-3 port.
I found the regulator used by usb2-3, but there is no state in it.
Although there is power/control, whether I enter off or disabled for it, it is regarded as an invalid parameter
The screen is as shown in the photo below.
We tried to replace other Xavier AGX modules with BSP version 5.0.2, and found out that the speed of USB 3.0 can be supported!
I tried the 32G and 64G versions here, and the USB function can work normally at the speed of 3.0. It seems that there is a problem with the Xavier AGX module I tested before.
Please close this question, your assistance is greatly appreciated!