TX2 wont flash - failed bootloader

I have been attempting to flash the TX2 on the Nvidia development board but get to the same error every time. I have tried fresh installs of the JetPack software and attempted multiple times though command line.

The error that keeps appearing is: CPU bootloader not running on device.

None of the ./flash.sh commands will make it past this step in connecting so it seems like its an issue with the board and not the host or USB?

I have been using all the cables that came with the development kit. Using lsusb command the device is found and looking at the logs it appears there is some successful communication occurring (lines 37-40).

The host appears to be correctly configured and has plenty of power to do the job.

  • Native 64bit ubuntu LTS
  • Intel® Xeon® CPU E5-2643 0 @ 3.30GHz × 16
  • 80 GB RAM
  • Gallium 0.4 on AMD CEDAR

I’ve searched a lot of the other forms and the only place ive really seen this issue or similar is with VMs but this is on native Ubuntu.

Below is the log file output:

###############################################################################
# L4T BSP Information:
# R28 (release), REVISION: 2.1, GCID: 11272647, BOARD: t186ref, EABI: aarch64, 
# DATE: Thu May 17 07:29:06 UTC 2018
###############################################################################
# Target Board Information:
# Name: jetson-tx2, Board Family: t186ref, SoC: Tegra 186, 
# OpMode: production, Boot Authentication: , 
###############################################################################
./tegraflash.py --chip 0x18 --applet "/Desktop/Racecar/64_TX2/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin" --cmd "dump eeprom boardinfo cvm.bin" --skipuid 
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
 
[   0.0033 ] Generating RCM messages
[   0.0058 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 --download rcm /Desktop/Racecar/64_TX2/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin 0 0
[   0.0079 ] RCM 0 is saved as rcm_0.rcm
[   0.0089 ] RCM 1 is saved as rcm_1.rcm
[   0.0089 ] List of rcm files are saved in rcm_list.xml
[   0.0089 ] 
[   0.0089 ] Signing RCM messages
[   0.0111 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0130 ] Assuming zero filled SBK key
[   0.0213 ] 
[   0.0214 ] Copying signature to RCM mesages
[   0.0238 ] tegrarcm_v2 --chip 0x18 --updatesig rcm_list_signed.xml
[   0.0270 ] 
[   0.0271 ] Boot Rom communication
[   0.0295 ] tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml --skipuid
[   0.0317 ] RCM version 0X180001
[   0.0331 ] Boot Rom communication completed
[   1.0404 ] 
[   1.0433 ] tegrarcm_v2 --isapplet
[   1.0457 ] Applet version 01.00.0000
[   1.0654 ] 
[   1.0682 ] Retrieving EEPROM data
[   1.0684 ] tegrarcm_v2 --oem platformdetails eeprom cvm /Desktop/Racecar/64_TX2/Linux_for_Tegra/bootloader/cvm.bin
[   1.0709 ] Applet version 01.00.0000
[   1.1058 ] 00000000000a0111: 
[   1.1283 ] 
[   1.1312 ] tegradevflash_v2 --oem platformdetails eeprom cvm /Desktop/Racecar/64_TX2/Linux_for_Tegra/bootloader/cvm.bin
[   1.1335 ] CPU Bootloader is not running on device.
[   1.1380 ] 
Error: Return value 4
Command tegradevflash_v2 --oem platformdetails eeprom cvm /Desktop/Racecar/64_TX2/Linux_for_Tegra/bootloader/cvm.bin
Reading board information failed.

Out of ideas to try so anything I haven’t tried would be appreciated.

  • Alex

Is the host specifically Ubuntu 16.04? Most of what you’ve posted seems to be correct, but different Ubuntu versions may not work as expected.

There was one case of a failure which seemed like a hardware issue, but the factory had left a jumper on next to the power button which shouldn’t be there (this kept the “force recovery” button down at all times). When you look at the power button, near the two green LEDs, there will be a row of four 2-pin headers along the row of buttons…and another a bit further back from the power button. Make sure none of those have jumpers (the headers should be “open”).

Also, if you have a serial console connected, try without this connected (a stray keystroke during U-Boot stage will cause it to drop into a shell instead of continuing).

The host is ubuntu 14.04.

There are no jumpers on the dev board. And there is no serial console connected, the only connections on the dev board is power and USB0.

Originally only Ubuntu 14.04 was supported, but 16.04 was added at a later release. I doubt 14.04 is a problem, it should work.

Was this command line or JetPack? If command line, then driver package unpack should be without sudo, but sample rootfs unpack and apply_binaries.sh should be with sudo. If via JetPack, then you’d need to run this entirely as non-sudo, but would be prompted for a password when needed. Aside from sudo issues, I can’t see much which might interfere with this stage of flash.

If you have the option of switching to Ubuntu 16.04 or trying a different host you might do that, but so far it seems this “should” work (I can’t guarantee it). Any way of trying a different host and getting the same result would imply it is time for RMA.

If you want to RMA you can search for “RMA” near the top of this:
https://devtalk.nvidia.com/default/topic/793798/embedded-systems/some-jetson-web-links/

That specific log file was JetPack but the same errors and logs appeared for both JetPack and command line. I followed all the correct sudo uses thought the process each time I attempted. I will try a different host if I can find another to put ubuntu on.

Thanks for the RMA link.

I am using a ubuntu 16.04.6 VM and trying to flash jetson TX2 with jetpack 4.2 via sdkmanager. I keep getting the following errors. Any advice?

[ 37.3418 ] tegrarcm_v2 --isapplet
[ 37.3825 ]
[ 37.3837 ] tegradevflash_v2 --iscpubl
[ 37.3843 ] CPU Bootloader is not running on device.
[ 37.3986 ]
[ 38.4021 ] tegrarcm_v2 --isapplet
[ 38.4313 ]
[ 38.4322 ] tegradevflash_v2 --iscpubl
[ 38.4406 ] CPU Bootloader is not running on device.
[ 38.4476 ]
[ 39.4498 ] tegrarcm_v2 --isapplet
[ 39.4512 ]
[ 39.4549 ] tegradevflash_v2 --iscpubl
[ 39.4562 ] CPU Bootloader is not running on device.
[ 39.4812 ]
Error: None of the bootloaders are running on device. Check the UART log.
Failed flashing t186ref.
Info: [ Component Install Finished with Error ]
Error: NV_L4T_FLASH_TX2_WITH_OS_IMAGE_COMP command sudo ./flash.sh jetson-tx2 mmcblk0p1 finished with error

Info: [ 360.00 KB used. Disk Avail: 20.61 GB ]
Info: [ NV_L4T_FLASH_TX2_WITH_OS_IMAGE_COMP Install took 8m7s ]

VMs are not supported. Sometimes they can work, but usually need extra setup to make sure the USB always passes to the VM. During flash the USB will disconnect and reconnect, and if the VM fails to get complete ownership at all times, then flash fails.

I installed the virtualbox extension required to enable the USB and verified that I can see the jetson via the lsusb command on ubuntu. Is there anything else I can do to ensure a stable usb connection?

The USB disables and enables during flash, and so you have to make sure that removal and reconnecting of the device always results in the device going to the VM. I do not know what to set to be sure of that, but lsusb only shows what is visible at the moment…lsusb doesn’t notify you if that device is lost and reattached or lost and never comes back.

As a corollary, the VM host o/s can never see the device.