I have JETSON tx1 and tx2,when I boot with tx1 and P2597_B04,the system boot Ok! But when I boot with tx2 and P2597_B04,the usb3.0 don't work!

I have JETSON tx1 and tx2 two pcs.
when I boot with tx1 and P2597_B04,the system run Ok!
But when I boot with tx2 and P2597_B04,the usb3.0 don’t work!
I want to know,DO I need to configure somethings?

Which L4T version? “head -n 1 /etc/nv_tegra_release”.

On the non-working USB3 side, what is “cat /proc/cmdline”?

By P2597_B04, are you saying developer carrier board?

I don’t understand what you mean.
The P2597_B04 is carrier board for JETSOM TX1,I want to run system with TX2.

For the TX2, what does this command result in?

head -n 1 /etc/nv_tegra_release

For the TX2, what does this command result in?

cat /proc/cmdline

For the TX2, what does this command result in?

lsusb -t

when I input cat /proc/cmdline,It output

fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c003fd androidboot.security=non-secure tegraid= ddr_die=2048M@2048M ddr_die=2048M@4096M section=256M memtype=0 usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 debug_uartport=lsport,0 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff2bf000 nvdumper_reserved=0xff23f000 core_edp_mv=1125 core_edp_ma=4000 gpt android.kerneltype=normal androidboot.touch_vendor_id=0 androidboot.touch_panel_id=63 androidboot.touch_feature=0 androidboot.bootreason=pmc:software_reset,pmic:0x0 net.ifnames=0 root=/dev/mmcblk0p1 rw rootwait

when I input lsusb -t

/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=tegra-ehci/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/4p, 5000M
|__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xhci/5p, 480M
|__ Port 3: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M

According to the above “lsusb -t” USB3 works on “bus 02”, but I believe this is not the full-sized type-A port (meaning it seems to confirm your USB is in USB2 mode when it could be USB3 if adjusted). The edit I think might work for kernel command line does not.

Can someone verify the following?

  • The full-sized USB type-A port defaults to USB2 mode on R28.1 for a TX1.
  • The kernel command line option "usb_port_owner_info=0" would need to change to get USB3 on this port.
  • Changing kernel command line to this in the APPEND argument of extlinux.conf does not succeed (adding any edit to this in extlinux.conf is ignored).
  • Probably one of the hidden partitions needs to be edited/flashed in order to accomplish "usb_port_owner_info=0" edits.
  • However the edit is accomplished, would "usb_port_owner_info=2" be the correct edit, or has this changed?
  • Bus 2, running at 5000M, is internal to the TX1, and not exposed via neither the type-A USB connector, nor the micro-OTG connector.

I have another problem,when I look through Jetson_TX2_OEM_Product_DesignGuide_v20170501 ,there is a QSPI_IO2, I can’t find it in Jetson TX2 Connector (8x50) Pin Out Matrix

QSPI_IO2 is internal pin of module, not exposed to carrier board.

‘usb_port_owner_info=2’ would be correct (0=usb1, 1=usb2, 2=usb3), but I believe the extlinux.conf file is totally ignored as of L4T 28.1.

To make changes to USB lane mapping, you now need to modify dts (or dtsi) files, at least, and rebuild the kernel. The documentation on this is challenging, and it is unclear if other steps are needed. There are lots of posts about it, with no clear answers, so it is not just an isolated problem.

I would have expected someone (nvidia, jetsonhacks) to come up with a simple solution by now, but so far we haven’t found anything.

Hi Qbrt, please refer to http://elinux.org/Jetson/TX2_DTB
@Haijun also shares steps in detail https://devtalk.nvidia.com/default/topic/1001443/jetson-tx2/extlinux-conf-fdt-no-longer-used-for-dtb-file-specification-/post/5204520/#5204520

Thanks @DaneLLL

The answer for me appears to be in http://elinux.org/Jetson/TX2_USB, which relies on http://elinux.org/Jetson/TX2_DTB. Luckily, this is not a USB lane change, just a single setting change.

I knew of these already, but they are poorly written, and my initial attempts to implement the fix were unsuccessful. I pieced together the correct steps from @Haijun’s post and many others. This should not require so much detective work.

through the test of the TX2, I find that, when I test the tx2 in P2597_B04,all the USB ports is bad,When the system boot, It pointed out that"usb phy is not available yet",I don’t know why ?