Jetson TX1 u-boot does not support ethernet

Hi everyone,
I have Jetson TX1 and I surprise that u-boot of TX1 does not support ethernet. Even it can connect to internet by other way:
https://devtalk.nvidia.com/default/topic/1002908/jetson-tx1-u-boot-link-down/#5125227
But it still make me inconvenient on developing.
Are there anyone who know how to enable Ethernet port on Jetson TX1 (by u-boot command or change u-boot source code, …)? It very kind if some one can show me the way to solve this problem.

Thank in advance!!!
Best regards.

Hi Quang_OpenStack,

We are investigating it internally. Thanks.

Dear WayneWWW,
Is there any progress in solving this problem? I hope that it can be solved as soon as possible.
Thanks.

Hi Quang_OpenStack,

U-Boot for Jetson TX1 supports the legacy USB2 controller but does not support the XUSB controller. The USB Ethernet controller is connected to the XUSB controller.

Consequently the USB Ethernet is not supported.

I’ve tried using a ethernet dongle to connect USB OTG(micro usb) and run “usb start”. Then, u-boot can use ethernet.

Sorry for your inconvenience.

Dear WayneWWW,
Thank for your reply and show how to use ethernet on u-boot (I also shared the link on above comment about how to get ethernet with micro usb using USB to Ethernet adatapter)
But that is not my purpose when I post this topic. My target is to know how to enable the ethernet port (RJ-45 connector) on Jetson TX1.
It is very kind if you can show me the method to solve this problem.
Thank in advance.
Best regards

You would have to add support into U-Boot for the xusb controller (a different driver from usb controller). Without that it won’t be possible to use the integrated ethernet.

Dear linuxdev,
Could you please give me the information about xusb controller driver on Jetson TX1?
Thank in advance.
Best regards.

The information available would be from the xusb driver in the Linux kernel itself, or from the Technical Reference Manual (TRM). For the TRM, see (requires a login for most downloads):
https://developer.nvidia.com/embedded/downloads
…select “Product” as TX1, search for “technical reference manual”.

Kernel code does not necessarily translate directly to the boot loader, and programming for the boot loader can be quite different than on running system. It’s a steep learning curve. Do beware that any kind of device tree setup required to use the controller under Linux would need to be performed in U-Boot, so if you plan to do the port, I’d suggest starting with understanding how the device tree sets up xusb in the kernel and see if you can make the same settings in U-Boot (you wouldn’t need to have the driver ported just to test setting up device tree…but you would need the device tree to test the driver).

Hi WayneWWW,

Can you provide a list of USB Ethernet adapters tested and compatible with U-Boot on Jetson TX1 ?

Thanks in advance

This isn’t exactly a list, but in the U-Boot source you can go to subdirectory “drivers/usb/eth/”, then basically grep for the “PRODUCT_ID” and “VENDOR_ID” of various drivers (which of course only matters if that driver was enabled during U-Boot build)…then you could cross-reference those with an internet search of which vendor and product correspond to that. lsusb lists those numbers, and this is what drivers use to determine if they can work for that device.

Different driver authors may list PRODUCT_ID and VENDOR_ID with different names, but the actual hex values are unique.

We don’t have a list for it, but I’ve tried AX88772 adapter and worked.

Do you mean this one : https://plugable.com/products/usb2-otge100/ ?

Hi linuxdev,

I already knew that, but merchant sites never indicate the VID:PID pair for those adapters and don’t even always indicate the internal chipset, and there’s also the problem of the connector. I’ve already had problems with mechanically incompatible micro USB connectors (A or B or AB, I don’t remember exactly).

Thanks anyway

Given the findings above, am I understanding correctly that it is not possible to boot via a USB-to-eth dongle plugged into the standard USB port?

One must use a micro-to-standard dongle + the eth dongle in the micro-usb port?

It is not possible to use a USB dongle with a port in USB3 mode…the controller is different than the USB2 controller, and thus different drivers…only the USB2 driver is in U-Boot. In the case of the dev board this implies normally using the micro-USB port. It is possible to force the full-sized port into USB2 mode, but this is easy from Linux, and difficult from U-Boot…it isn’t worthwhile.

Both are not supported, but some ethernet dongles may work in micro-usb port.