Usb 3.0 device port


As we know Jetson Nano has one USB 2.0 OTG/Device port.
Also we know that USBSS lanes are assigned to USB2.0 -1 port and make him USB 3.0 port.
As per my understanding property from common dtsi,
nvidia,usb2-companion = <1>;
used to assign USBSS lanes to any one of USB2.0 port to make him USB 3.0 port.
I want to change USB 2.0 - 0 port which is OTG port into USB 3.0 - 0 OTG port.
I made changes in dtsi by changing property companion.
Its observed that USBSS lanes are disconnected from USB 2.0 -1 port but still they are not assigned to USB 2.0 - 0 port.
Please guide me on this.

Honestly, I don’t know what you are doing here. Trying to enable USB3-0 on usb2-0 device mode port ? Could you clarify what is your hardware design now?

nvidia,usb2-companion = <1>;
used to assign USBSS lanes to any one of USB2.0 port to make him USB 3.0 port.

It is not “any of usb2.0 port” either. It has to match your hardware design…


Thanks a lot for reply.

Actually I was trying the USB 3.0 OTG/Device port checking with temporary USB 3.0 type A cable.
Cables VBUS , D- , D+,GND signals are connected to USB 2.0 - 0 port (device mode) and RX+/- and TX+/- signals are connected to USB 3.0 port connections.
I verified Device port USB 3.0 wiring connections. Its as per recommeded.

please refer to the design guide document for the correct design.

Hello WayneWWW,

I refer design guideline of Nvidia Jetson Nano for USB 3.0 connections.

Please check attached DTSI changes I made to make USB 2.0 - 0 device port to USB 3.0 device port.

usb3dev.txt (2.8 KB)
After this changes I observed that current USB 3.0 port which was made by combining USB 2.0 - 0 port and USB SS port connect to any USB 3.0 host port following usb debug is observed on host system

[ 1387.356828] usb 1-3.1: USB disconnect, device number 7
[ 1387.897110] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[ 1388.009868] usb 1-3.1: new low-speed USB device number 12 using tegra-xusb
[ 1388.036379] usb 1-3.1: New USB device found, idVendor=1c4f, idProduct=0002
[ 1388.036392] usb 1-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1388.036397] usb 1-3.1: Product: USB Keyboard
[ 1388.036401] usb 1-3.1: Manufacturer: SIGMACHIP
[ 1388.041291] input: SIGMACHIP USB Keyboard as /devices/70090000.xusb/usb1/1-3/1-3.1/1-3.1:1.0/0003:1C4F:0002.0008/input/input9
[ 1388.098481] hid-generic 0003:1C4F:0002.0008: input,hidraw0: USB HID v1.10 Keyboard [SIGMACHIP USB Keyboard] on usb-70090000.xusb-3.1/input0
[ 1388.114904] input: SIGMACHIP USB Keyboard as /devices/70090000.xusb/usb1/1-3/1-3.1/1-3.1:1.1/0003:1C4F:0002.0009/input/input10
[ 1388.157872] usb 1-2: new high-speed USB device number 13 using tegra-xusb
[ 1388.174203] hid-generic 0003:1C4F:0002.0009: input,hidraw1: USB HID v1.10 Device [SIGMACHIP USB Keyboard] on usb-70090000.xusb-3.1/input1
[ 1388.190927] usb 1-2: New USB device found, idVendor=0955, idProduct=7020
[ 1388.190932] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1388.190936] usb 1-2: Product: Linux for Tegra
[ 1388.190939] usb 1-2: Manufacturer: NVIDIA
[ 1388.190941] usb 1-2: SerialNumber: 1421921001700
[ 1388.200819] rndis_host 1-2:1.0 usb1: register ‘rndis_host’ at usb-70090000.xusb-2, RNDIS device, fa:1c:a2:cf:d3:fc
[ 1388.204328] usb-storage 1-2:1.4: USB Mass Storage device detected
[ 1388.204520] scsi host0: usb-storage 1-2:1.4
[ 1388.232190] cdc_ncm 1-2:1.5 usb2: register ‘cdc_ncm’ at usb-70090000.xusb-2, CDC NCM, 32:2f:e1:10:2e:42
[ 1388.389978] IPv6: ADDRCONF(NETDEV_UP): usb2: link is not ready
[ 1388.391021] IPv6: ADDRCONF(NETDEV_UP): usb2: link is not ready
[ 1388.399978] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[ 1388.443512] cdc_ncm 1-2:1.5 usb2: 425 mbit/s downlink 425 mbit/s uplink
[ 1388.475511] cdc_ncm 1-2:1.5 usb2: 425 mbit/s downlink 425 mbit/s uplink
[ 1388.507573] IPv6: ADDRCONF(NETDEV_CHANGE): usb2: link becomes ready

USB 3.0 device port connections I made as follows

That mean Nano is been detected by host but as USB 2.0 device not as USB 3.0 device.

One more thing I want to mention here that I was going through Nvidia Adaptation guide

In USB porting section I have observed that there is xhci node to be declare to define USB 3.0 combination.

But in overall dtsi I have never seen xhci node.
Shall we need to add this node to make USB2.0 port to USB 3.0 ?
Please guide me on this.

Xhci driver is usb host mode driver.

Xudc is usb device mode driver.

Make sure you really understand the meaning from the document…


As I said I was trying to make convert USB2.0-0 device port into USB 3.0 device port for that with above dtsi changes I manually combine USB2.0-0 ports signal and USB-SS signal in one USB 3.0 cable.
Previously I was making some mistakes while wiring this cable. I correct that cable connection now when I connect my device port cable to the host usb 3 port I am getting following logs on host side.
usb_host2809.txt (1.9 KB)

Now SOM is not getting detected but at least host trying to recognized SOM as USB 3.0 device.

usb 2-1: Device not responding to setup address.

indicate that host detected USB 3 device but its not getting some address.

I am missing something? Please guide me on this.


Any suggestion?

Any suggestion on query?

I can’t help much, but those errors could be related to signal quality. This, in turn, could be related to how the traces are routed (or errors in copper). I don’t know exactly where you would do this, but perhaps as close as possible to the actual module you might be able to examine it with a USB 3 logic analyzer and see if the signal is actually on the traces you expect. If you see the actual traffic with the analyzer, then you probably have at least most of the device tree correct. After that you’d need to check if actual signal quality appears to be within reason. It can be rather difficult to debug simply with the kernel log messages. Sorry, I don’t have much more in the way of any useful advice.

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