Restore from naked eMMC on Jetson TX1

Hi everyone,
If I mistakenly removed all the partitions on the eMMC of Jetson TX1 development kit and eMMC becomes naked one.

So, if I put it into Force Recovery mode, can I restore the device?
Thank in advance.

Yes, an ordinary flash will restore all of it. You can either use JetPack or the driver package plus sample rootfs. JetPack also does package management, but is intended to run on an Ubuntu 14.04 PC host (or to some extent Ubuntu 16.04)…driver package plus sample rootfs is command line flash only and runs on any x86_64 Linux (beware of VMs, they tend to have USB issues…but this isn’t an issue of which flavor of Linux host distribution is used).

Dear linuxdev,
Did you mean that RBL of Jetson TX1 have already contain driver to initialize micro-USB so that we still can flash naked eMMC of Jetson Tx1 through micro-USB?

All flash software runs through the micro-USB connector. When the Jetson is put in recovery mode it becomes a custom device which is understood by the driver package. Ethernet does not take part in flash…ethernet is used for extra package management after a flash is complete and reboot has taken place. Only flash is required to restore all partitions.

Hi linuxdev,
You mean that, host computer still can recognize naked eMMC through micro-USB in recovery mode?
If it is right, in recovery mode, driver for micro-USB and eMMC is loaded, isn’t it?

Actually, we are developing customized Jetson TX2 carrier board.
If we remove micro-USB, could we flash eMMC through normal USB?

The Jetson becomes a bare metal custom device in recovery mode and has no need of any eMMC functionality so far as getting to the point of being able to load partitions. eMMC does of course have to be functional for boot and for actual flash, but the recovery mode is something of an independent minimalist system.

On the carrier board only the micro-USB connector can be used for flash. I think in part this is because this is an OTG port…it can accept a type-A or type-B connector. When a type-A is inserted the host mode is supported…when a type-B is inserted, device mode is supported. The full-sized-A connector has no ability to use a type-B connector, so it isn’t possible to turn the Jetson into a device for flashing based on that physical connector. This does not mean that a full-sized-B connector or second connector could not be added, but if you use only a pure type-A, it isn’t possible.

One alternative you might have is a header which has the D+/D- data pair set up as a dedicated device mode port. Not sure what the details would be, but without some provision for this you are in trouble unless you use JTAG to program (and this would make life much more complicated).

Another alternative is to boot to a secondary media, e.g., SD card, and then use dd to write partitions. However, this is not a very good way to work with production hardware.

Someone else may be able to give details on which controllers and lanes are capable of being used for recovery mode USB port.

Hi, linuxdev
Thank so much for your opinion, it helps me a lot