Jetson Xavier USB3 port not working

I have been using the Jetson Xavier for the last few weeks and everything seemed fine. Today attempted to use both USB-C connections, but the port above the power jack doesn’t seem to be working.
When I attach it to the host computer and run lsusb I don’t see any NVidia Corp. device, however the USB-C connector on the other side I do. Is there any reason this USB port wouldn’t be working by default? Even when I attempt to manually re-flash the device using this port, Jetpack just states Could not detect Nvidia Jetson device connected to USB.

Update: I plugged in a usb2 keyboard into the port and it seemed to work fine. So it just seems that usb3 connections aren’t enabled for this port.

Update 2: Even the usb port that is working doesn’t seem to be connecting properly. I’m trying to create communicate over usb3.1 between a windows host computer and the jetson xavier (See https://stackoverflow.com/questions/57392737/why-does-windows-report-transfer-speeds-of-850mbps-over-a-10gbps-usb3-1-gen2-rnd). However, when I check the device manager on windows I see that the connection is USB3.0 not 3.1 (Imgur: The magic of the Internet).

If you are using lsusb from another Linux computer to look for a device on the USB port of the Xavier, then there will be no response unless that port has a virtual USB gadget programmed for the port (a device mode function). I would not expect lsusb to show a device on the USB3 port other than the type-C next to the header.

So to clarify, are you trying to use the connector near the power connector for flash or for other virtual device reasons? If so, then you can’t do that, but plugging in keyboards or USB3 cameras should work (in that case the port is in host mode and does not need any gadget programmed).

FYI, if a faster device has issues with signal quality (or if the port doesn’t support the faster mode), then the device can fall back to USB2 or slower. The trick here is that the device itself must support slower protocols, and not all USB3 devices do this. ZED stereo cameras are an example…they need the full bandwidth and “lsusb” doesn’t return information on the parts of the camera which require USB3 if the port isn’t in USB3 mode.

What I want to do is communicate between the jetson Xavier and a windows host computer using the tcp/ip protocol. I have a server running on the host computer that needs to send data to the xavier at about a rate of 5.6gbps. I had hoped that as the both the host computer and the xavier have usb3.1 gen2 ports, I would be able to get close to 10gbps. However, windows reports that it is only reaching 851mbps. Is this because it is being treated as a usb2 connection?

I wanted to use the usb-c port by the power connector as I thought it was the only one that supported the 10gbps transfer speeds, but it seems I was wrong. I was also concerned the port was broken, but I was wrong about that too.

In the l4t usb read me on the jetson xavier it states that the usb can be used as an ethernet connection to a windows host computer. Why does this connection not use the full 10gbps? Is there a way to enable the ethernet connection as a usb3.1 connection to reach the full speed?

If you are logged in to the Xavier and run “lsusb -t”, then the occurrence of “480M” at the end is the 480Mbit/s of USB2, 5000M would be USB3.1 gen. 1 (5000Mbit/s), and USB3.1 gen. 2 (10000Mbit/s) would show as “10000M”. Items physically connected would each indicate what their actual speed is. Virtual devices are a bit more complicated, but if you connect the USB-C to a host PC running Linux, and then run “lsusb -t”, you should see the indicator for that as well. Sorry, I can’t test that myself, my motherboard only goes to USB3.1 gen. 1.

I also don’t know what limitations there might be for the virtual network device.

Regardless, if you run “sudo nvpmodel -m 0” and then “sudo jetson_clocks”, then performance will be maxed out and this is the only time bad performance would actually be measurable. Make sure to max out clocks prior to any speed tests.