USB Recovery Flash Protocol Documentation/Source Code available

Hello world;

Problem: Our nVidia TX2 boards are mounted deep inside the machines we sell. We 'd like to be able to reflash the boards without taking everything apart. My idea is to put a microcontroller board next to the TX board (some 32 bit ARM/MIPS SOC with Ethernet and OTG USB) which acts as an serial-to-ethernet gateway for the UART0 console and as USB-to-ethernet gateway for being able to flash the whole thing.

Is there documentation and/or source code for the recovery flashing procedure available? I’ve found something for older processors on github (https://github.com/NVIDIA/tegrarcm), but it seems not to apply to TX1/TX2.

Regards

Frank-Christian Krügel

hello fchk,

please try below if you’re able to enter commands to the board.

sudo reboot forced-recovery
flash the device

My problem is that I can’t put an USB cable inside for safety reasons. There are optical Ethernet connections to the modules. The goal would be a system that can be flashed only via Ethernet.

This is the background for my question for the USB flash protocol.

I have never used one, but there are USB-to-ethernet repeaters. I have no idea if these would actually have the performance characteristics to successfully flash. There are bridge chips as well which could be custom built into such a device without a lot of design issues (there are example designs of this sort of thing from both Microchip and FTDI if you don’t want to use something off the shelf).

Keep in mind that part of flash involves downloading a temporary fastboot.bin into the system. This fastboot.bin understands serial USB communications and is how the recovery mode part of the system talks to the outside world. Without some inside knowledge and highly modified fastboot I doubt there is any way to get around the use of USB…and even with such knowledge it would be a major update.

Would you be able to use USB if it is physically isolated internally to the system and converts to ethernet? The ethernet would be the part which wires to the outside world (presumably with optics).