Problem flashing TX-2

Hi,
I was trying to use Jetpack-3.0 to flash OS images on TX-2. However, despite repeated attempts, the process gets stuck at the same point:

...
...
...
system.img built successfully. 
Existing tbcfile(/home/work/jetpack/64_TX2/Linux_for_Tegra_tx2/bootloader/cboot.bin) reused.
copying tbcdtbfile(/home/work/jetpack/64_TX2/Linux_for_Tegra_tx2/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb)... done.
copying cfgfile(/home/work/jetpack/64_TX2/Linux_for_Tegra_tx2/bootloader/t186ref/cfg/flash_l4t_t186.xml) to flash.xml... done.
Existing flasher(/home/work/jetpack/64_TX2/Linux_for_Tegra_tx2/bootloader/nvtboot_recovery_cpu.bin) reused.
Existing flashapp(/home/work/jetpack/64_TX2/Linux_for_Tegra_tx2/bootloader/tegraflash.py) reused.
./tegraflash.py --bl nvtboot_recovery_cpu.bin --sdram_config P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --odmdata 0x1090000 --applet mb1_recovery_prod.bin --cmd "flash;reboot"  --cfg flash.xml --chip 0x18 --misc_config tegra186-mb1-bct-misc-si-l4t.cfg --pinmux_config tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmic_config tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg --pmc_config tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --prod_config tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg --scr_config minimal_scr.cfg --br_cmd_config tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --dev_params emmc.cfg  --bins "mb2_bootloader nvtboot_recovery.bin; mts_preboot preboot_d15_prod_cr.bin; mts_bootpack mce_mts_d15_prod_cr.bin; bpmp_fw bpmp.bin; bpmp_fw_dtb tegra186-a02-bpmp-quill-p3310-1000-c01-00-te770d-ucm2.dtb; tlk tos.img; eks eks.img; bootloader_dtb tegra186-quill-p3310-1000-c03-00-base.dtb"  
saving flash command in /home/work/jetpack/64_TX2/Linux_for_Tegra_tx2/bootloader/flashcmd.txt
./tegraflash.py --bl nvtboot_recovery_cpu.bin --sdram_config P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --odmdata 0x1090000 --applet mb1_recovery_prod.bin --cmd "flash;reboot"  --cfg flash.xml --chip 0x18 --misc_config tegra186-mb1-bct-misc-si-l4t.cfg --pinmux_config tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmic_config tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg --pmc_config tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --prod_config tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg --scr_config minimal_scr.cfg --br_cmd_config tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --dev_params emmc.cfg  --bins "mb2_bootloader nvtboot_recovery.bin; mts_preboot preboot_d15_prod_cr.bin; mts_bootpack mce_mts_d15_prod_cr.bin; bpmp_fw bpmp.bin; bpmp_fw_dtb tegra186-a02-bpmp-quill-p3310-1000-c01-00-te770d-ucm2.dtb; tlk tos.img; eks eks.img; bootloader_dtb tegra186-quill-p3310-1000-c03-00-base.dtb"  
*** Flashing target device started. ***
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.0224 ] tegrasign_v2 --key None --getmode mode.txt
[   0.0236 ] Assuming zero filled SBK key
[   0.0381 ] 
[   0.0381 ] Generating RCM messages
[   0.0514 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 --download rcm mb1_recovery_prod.bin 0 0
[   0.0525 ] RCM 0 is saved as rcm_0.rcm
[   0.0765 ] RCM 1 is saved as rcm_1.rcm
[   0.0765 ] List of rcm files are saved in rcm_list.xml
[   0.0765 ] 
[   0.0766 ] Signing RCM messages
[   0.0800 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0810 ] Assuming zero filled SBK key
[   0.0859 ] 
[   0.0859 ] Copying signature to RCM mesages
[   0.0870 ] tegrarcm_v2 --chip 0x18 --updatesig rcm_list_signed.xml
[   0.0884 ] 
[   0.0884 ] Parsing partition layout
[   0.1054 ] tegraparser_v2 --pt flash.xml.tmp
[   0.1094 ] 
[   0.1094 ] Creating list of images to be signed
[   0.1252 ] tegrahost_v2 --chip 0x18 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
[   0.3439 ] 
[   0.3439 ] Generating signatures
[   0.3451 ] tegrasign_v2 --key None --list images_list.xml --pubkeyhash pub_key.key
[   0.3461 ] Assuming zero filled SBK key
[   0.5072 ] 
[   0.5072 ] Generating br-bct
[   0.5263 ] Updating dev and MSS params in BR BCT
[   0.5264 ] tegrabct_v2 --dev_param emmc.cfg --sdram P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --brbct br_bct.cfg --chip 0x18
[   0.5273 ] MB1 BCT version is : c
[   0.5441 ] Copying Sdram info from 0 to 1 set
[   0.5776 ] Copying Sdram info from 1 to 2 set
[   0.5776 ] Copying Sdram info from 2 to 3 set
[   0.5776 ] 
[   0.5776 ] Updating bl info
[   0.5786 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[   0.5805 ] 
[   0.5806 ] Updating Odmdata
[   0.5814 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 --updatefields Odmdata =0x1090000
[   0.5824 ] 
[   0.5824 ] Get Signed section bct
[   0.5833 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 --listbct bct_list.xml
[   0.5844 ] 
[   0.5844 ] Signing BCT
[   0.5853 ] tegrasign_v2 --key None --list bct_list.xml --pubkeyhash pub_key.key
[   0.5862 ] Assuming zero filled SBK key
[   0.5865 ] 
[   0.5865 ] Updating BCT with signature
[   0.5874 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 --updatesig bct_list_signed.xml
[   0.5885 ] 
[   0.5885 ] Generating coldboot mb1-bct
[   0.5894 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_cold_boot_bct.cfg --sdram P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --misc tegra186-mb1-bct-misc-si-l4t.cfg --scr minimal_scr.cfg --pinmux tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmc tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --pmic tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg --brcommand tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --prod tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[   0.5903 ] MB1 BCT version is : c
[   0.5904 ] Copying Sdram info from 0 to 1 set
[   0.5989 ] Copying Sdram info from 1 to 2 set
[   0.5991 ] Copying Sdram info from 2 to 3 set
[   0.5993 ] Packing sdram param for instance[0]
[   0.5994 ] Packing sdram param for instance[1]
[   0.5996 ] Packing sdram param for instance[2]
[   0.5997 ] Packing sdram param for instance[3]

[   0.6176 ] Parsing platform config file :tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg 
[   0.6181 ] Appending platform config data of size :- 2904

[   0.6185 ] Parsing platform config file :minimal_scr.cfg 
[   0.6187 ] Appending platform config data of size :- 12240

[   0.6401 ] Parsing platform config file :tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg 
[   0.6404 ] Appending platform config data of size :- 24

[   0.6406 ] Parsing platform config file :tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg 
[   0.6410 ] Appending platform config data of size :- 684

[   0.6413 ] Parsing platform config file :tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg 
[   0.6416 ] Appending platform config data of size :- 64
[   0.6416 ] 
[   0.6416 ] Parsing platform config file :tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg 
[   0.6416 ] Appending platform config data of size :- 1628
[   0.6416 ] 
[   0.6417 ] Updating mb1-bct with firmware information
[   0.6426 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_cold_boot_bct_MB1.bct --updatefwinfo flash.xml.bin
[   0.6443 ] 
[   0.6452 ] tegrahost_v2 --align mb1_cold_boot_bct_MB1.bct
[   0.6461 ] 
[   0.6470 ] tegrahost_v2 --appendsigheader mb1_cold_boot_bct_MB1.bct zerosbk
[   0.6480 ] 
[   0.6492 ] tegrasign_v2 --key None --list mb1_cold_boot_bct_MB1_sigheader.bct_list.xml
[   0.6501 ] Assuming zero filled SBK key
[   0.6524 ] 
[   0.6538 ] tegrahost_v2 --updatesigheader mb1_cold_boot_bct_MB1_sigheader.bct.encrypt mb1_cold_boot_bct_MB1_sigheader.bct.hash zerosbk
[   0.6549 ] 
[   0.6549 ] Generating recovery mb1-bct
[   0.6558 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_bct.cfg --sdram P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --misc tegra186-mb1-bct-misc-si-l4t.cfg --scr minimal_scr.cfg --pinmux tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmc tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --pmic tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg --brcommand tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --prod tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[   0.6567 ] MB1 BCT version is : c
[   0.6569 ] Copying Sdram info from 0 to 1 set
[   0.6657 ] Copying Sdram info from 1 to 2 set
[   0.6659 ] Copying Sdram info from 2 to 3 set
[   0.6661 ] Packing sdram param for instance[0]
[   0.6662 ] Packing sdram param for instance[1]
[   0.6664 ] Packing sdram param for instance[2]
[   0.6666 ] Packing sdram param for instance[3]

[   0.6668 ] Parsing platform config file :tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg 
[   0.6672 ] Appending platform config data of size :- 2904

[   0.6675 ] Parsing platform config file :minimal_scr.cfg 
[   0.6677 ] Appending platform config data of size :- 12240

[   0.6695 ] Parsing platform config file :tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg 
[   0.6699 ] Appending platform config data of size :- 24
[   0.6699 ] 
[   0.6699 ] Parsing platform config file :tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg 
[   0.6699 ] Appending platform config data of size :- 684
[   0.6699 ] 
[   0.6699 ] Parsing platform config file :tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg 
[   0.6699 ] Appending platform config data of size :- 64
[   0.6699 ] 
[   0.6699 ] Parsing platform config file :tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg 
[   0.6699 ] Appending platform config data of size :- 1628
[   0.6699 ] 
[   0.6699 ] Updating mb1-bct with firmware information
[   0.6708 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_bct_MB1.bct --updatefwinfo flash.xml.bin
[   0.6747 ] 
[   0.6756 ] tegrahost_v2 --align mb1_bct_MB1.bct
[   0.6766 ] 
[   0.6775 ] tegrahost_v2 --appendsigheader mb1_bct_MB1.bct zerosbk
[   0.6785 ] 
[   0.6797 ] tegrasign_v2 --key None --list mb1_bct_MB1_sigheader.bct_list.xml
[   0.6806 ] Assuming zero filled SBK key
[   0.6828 ] 
[   0.6842 ] tegrahost_v2 --updatesigheader mb1_bct_MB1_sigheader.bct.encrypt mb1_bct_MB1_sigheader.bct.hash zerosbk
[   0.6876 ] 
[   0.6876 ] Copying signatures
[   0.6885 ] tegrahost_v2 --chip 0x18 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[   0.6986 ] 
[   0.6986 ] Boot Rom communication
[   0.6996 ] tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml
[   0.7005 ] BootRom is not running
[   0.7985 ] 
[   5.8036 ] Retrieving board information
[   5.8050 ] tegrarcm_v2 --oem platformdetails chip chip_info.bin
[   5.8060 ] Applet version 01.00.0000
[   5.8805 ] Saved platform info in chip_info.bin
[   5.8817 ] Chip minor revision: 2
[   5.8823 ] 
[   5.8824 ] Sending BCTs
[   5.8834 ] tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
[   5.8844 ] Applet version 01.00.0000
[   5.9085 ] Sending bct_bootrom
[   5.9087 ] [................................................] 100%
[   5.9182 ] Sending bct_mb1
[   5.9243 ] [................................................] 100%
[ 2005.9306 ] 
Error: Return value 8
Command tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
Failed flashing t186ref.

Has anyone else encountered the same issue?
And can anyone help me in fixing this? I will be grateful for any help!

Thanks!

Hi skidro101,

Please make sure your hostPC should be Ubuntu 14.04 x64.

Please refer install guide:
http://docs.nvidia.com/jetpack-l4t/index.html#developertools/mobile/jetpack/l4t/3.0/jetpack_l4t_install.htm

My hostPC is running Ubuntu 16.04 x64. I used this system today for flashing the OS image and nvidia packages (via Jetpack installer) to Jetson TX-1 board and it went perfectly fine. It is only the TX-2 which is causing trouble.

Should I still try the Ubuntu 14.04 x64?

Just performed a clean install of Ubuntu 14.04 x64 on my hostPC and then tried running Jetpack to flash TX-2 again.
The problem still persists.

I gave up trying to flash my tx2 using the included cable, ubuntu 14.04, and a chicken sacrifice. The furthest I ever got was about

[ 0.6876 ] Copying signatures
[ 0.6885 ] tegrahost_v2 --chip 0x18 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[ 0.6986 ]
[ 0.6986 ] Boot Rom communication
[ 0.6996 ] tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml
[ 0.7005 ] BootRom is not running
[ 0.7985 ]
[ 5.8036 ] Retrieving board information
[ 5.8050 ] tegrarcm_v2 --oem platformdetails chip chip_info.bin
—< Here

Where it would just hang indefinitely. Though usually it would bomb out before then.

Ended up setting up the rootfs on an sd card. Updating the /boot stuff. Restarting and boot off the freshly minted sd card. Wiping mmcblk0p1, formatting it as ext4, copying the applied_binaries.sh + rootfs over. Then finishing up the rest of the jetpack installation skipping over the “flash unit, this will probably not work” step.

Thank you to whoever at nvidia came up with the idea to boot off the sdcard by default if it had a valid /boot. At least it gave me a venue to keep this thing updated.

@eousphoros

Thank you very much for the input. Regarding the later part of your answer about setting up an SD card for booting, can you please point out the document / resource I can look up to replicate this process with my TX-2 as well?

I saw that the flash script inside the jetpack installer has some option for sd card but I am not really sure on how to use that script.

I will be grateful for any help!
Thanks!

I’ll try, technical writing isn’t exactly a strong point.

  1. In 64_TX2/Linux_for_Tegra_tx2 there is a directory called rootfs. I believe you have got far enough in the installer that it should be mostly ready to use. My directory is about 3 GB

COMMANDS (HOST):
cd ~/${JETPACK_DIRECTORY}/64_TX2/Linux_for_Tegra_tx2
sudo du -sh ./rootfs

  1. In that same directory there is a script called apply_binaries.sh. Give that a run just to make sure all the nvidia stuff has been copied into rootfs and is linked properly.

COMMANDS (HOST):
sudo ./apply_binaries.sh

  1. tar up rootfs to speed up the transfer from your computer.

COMMANDS (HOST):
cd rootfs
sudo tar cf …/rootfs.tar .

  1. On the tx2 prepare the sd card. I was lazy and just cloned the emmc in its entirety to the sd card (This will require a fairly large sd card, I would say at least 64 GB, I used a 128 GB card)

COMMANDS (TX2):
sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4k status=progress
sudo sync
sudo mount /dev/mmcblk1p1 /mnt

  1. Now we need to update /mnt/boot/extlinux/extlinux.conf on the sd card. Here we will be changing root=/dev/mmcblk0p1 to root=/dev/mmcblk1p1

COMMANDS (TX2):
sudo vi /mnt/boot/extlinux/extlinux.conf
(Last line of the file, starts with APPEND, towards the end of the line you will find the root=/dev/mmcblk0p1 option. Change that)
:wq (save the file)

  1. Reboot

COMMANDS (TX2):
sudo reboot

  1. After the tx2 comes back up verify you are booting off the sd card now. / Should be mounted to /dev/mmcblk1p1. We can do this by using df -h /

COMMANDS (TX2):
df -h /

/dev/mmcblk1p1 28G 12G 15G 46% / (Should be mmcblk1p1, 28G, the other three numbers will be different)

  1. Prepare mmcblk0p1 for the new rootfs by using mkfs.ext4

COMMANDS (TX2):
sudo mkfs.ext4 /dev/mmcblk0p1
sudo mount /dev/mmcblk0p1 /mnt

  1. Copy and extract the prepared rootfs.tar to the tx2 from the host

COMMANDS (HOST):
scp rootfs.tar ${JETSON_IP}:~

COMMANDS (TX2):
tar xf rootfs.tar -C /mnt

  1. Verify everything looks sane.

COMMANDS (TX2):
ls /mnt
bin dev home lib mnt proc root sbin srv tmp var
boot etc media opt README.txt run snap sys usr
ls /mnt/boot
efi grub initrd tegra186-quill-p3310-1000-a00-00-dsi-hdmi-dp.dtb zImage
extlinux Image tegra186-quill-p3310-1000-a00-00-base.dtb tegra186-quill-p3310-1000-c03-00-base.dtb
(Might not look exactly like this but I would expect the dtb files, extlinux, Image, initrd to be there)

  1. Some things you may need to do.
    11a) /mnt/boot/extlinux is missing

COMMANDS (TX2):
sudo cp -Rp /boot/extlinux /mnt/boot
sudo vim /mnt/boot/extlinux/extlinux.conf
(change root=/dev/mmcblk1p1 back to root=/dev/mmcblk0p1 on the APPEND line)

11b) /mnt/boot/initrd is missing

COMMANDS (TX2):
sudo cp -Rp /boot/initrd /mnt/boot
(You can later regenerate this file by doing sudo mkinitramfs -o /boot/initrd.new; sudo mv /boot/initrd.new /boot/initrd)

11c) /mnt/boot/Image is missing
COMMANDS (TX2):
sudo cp -Rp /boot/Image /mnt/boot

  1. Once you are happy everything looks good power down the tx2, remove the sd card, and power it back up. Verify you are now booting of the internal storage again using df -h / (should be mmcblk0p1)

  2. Launch the jetpack installer, skip the flashing step and let it install the packages.

Hopefully this helps.

Cheers

Forgot to mention. At the end of this you will also end up with an “emergency recovery” sd card that I imagine will be handy to keep around.

Thank you very much, @eousphoros. Your instructions are very detailed and helpful.

I still have one very big problem. In the instructions you have stated, there are steps which have to be carried out on the TX-2 board (i.e. the ones marked with COMMAND (TX2)). However, my TX-2 board isn’t booting up at all. I can’t even say where in the boot process it is getting stuck because it is not printing anything on the monitor. I have tried a couple of different monitors (2 of which, I know work with TX-2 because I had tested them with this board when it arrived (before flashing)). The HDMI cable is fine because it is working with TX-1. So here lies my dilemma; I don’t know how to carry out the board specific steps for preparing the sd-card.

Can you please suggest a work-around if there is any?
And once again, thanks a lot for your help!

Well, if you have an sd card reader you could build it on your host. Before we get into that though, I would highly suggest spending the 15 bucks to get a serial cable.

Serial Console - NVIDIA Jetson TX1 - JetsonHacks is a good guide for getting that setup

Now that is out of the way

Download this file. It contains the partition table.

https://drive.google.com/file/d/0BxbtZ9qx1kX7V3VqYWlsMm5TUkU/view?usp=sharing partition.table

On your host, plugin the sd card. Identify the block device. You can probably figure it out using dmesg | grep mmc

Assuming your sd card is mmcblk0 on your host

sudo sfdisk /dev/mmcblk0 < partition.table (The file you downloaded above)
sudo mkfs.ext4 /dev/mmcblk0p1
mkdir sdcard
sudo mount /dev/mmcblk0p1 sdcard

Take the rootfs.tar you created in the above steps and extract it to you ./sdcard

tar xf rootfs.tar -C sdcard/

Download this file. It contains the /boot directory (Though just as an fyi. It includes a custom kernel I built enabling additional crypto support as the default one is pretty bare bones. It also includes an uncompressed initrd that saves a few seconds off the boot time)

https://drive.google.com/file/d/0BxbtZ9qx1kX7Nk1RYktld0pmMjQ/view?usp=sharing

You can either use that as is, or pull any files you might be missing. It can be extracted using

tar xvjpf boot.tar.bz2 -C ${some_dir}

Check to see how big sdcard/ is, should be 3GB+. Assuming it looks ok

sudo sync
sudo umount sdcard

With the TX2 powered down. Move the sdcard from your host to the TX2. Power it on, wait a few minutes and hopefully it comes up. If that doesn’t work I would suggest waiting till you can get a TTL serial cable and get that wired up to understand where in the boot process its failing.

Again, hope this helps.

Cheers

Not sure if you need these, but if the above doesn’t quite do it.

https://drive.google.com/file/d/0BxbtZ9qx1kX7T0R2c3RWU093dmM/view?usp=sharing

This includes the raw partition’s of the rest of the emmc

mkdir partitions
cd partitions
tar xf …/partitions.tar -C .

for file in *.bz2
do
bunzip2 $file
done

mmcblk0 being the sdcard in your host.

for file in *
do
dd if=$file of=/dev/mmcblk0${file} bs=4k status=progress
done

Thank you very much!
I’ll try the approach you have mentioned and report if it works.

Some notes which might help…

The apply_binaries.sh script even has a “-r” option to apply to a non-default location. Normally it automatically unpacks into the rootfs subdirectory where the sample rootfs is. You can apply this instead directly to an SD card as well when it is mounted on the host. If for example the host has an SD card mounted on “/mnt”, then this will work directly to SD after unpacking sample rootfs to “/mnt”:

sudo ./apply_binaries.sh -r /mnt

One word of caution unrelated to the SD: Video may work on a TX1 but still fail on a TX2 (or vice versa). It isn’t a question of whether the monitor is functional or not, it’s related to whether auto configuration succeeds, and if not auto configuration, if the default video mode is compatible by luck with the monitor. Never assume lack of video means boot failure…try things like ping and ssh (and as mentioned above serial console cable is extraordinarily efficient at getting to what’s really going on even when many parts of the system fail).

Thank you very much @eousphoros and @linuxdev for your valuable suggestions. I successfully prepared an sdcard; following the method outlined above. However, the problem still persists!

I got my hands on the USB2TTL debug cable; hooked it up with the board and the host machine and fired up the terminal. Below is the message I get on serial every time I power-up / reset the board (irrespective of whether the sdcard is inserted or not):

Welcome to minicom 2.7

OPTIONS: I18n
Compiled on Feb 7 2016, 13:37:27.
Port /dev/ttyUSB0, 13:14:18

Press CTRL-A Z for help on special keys

[0000.296] !!! Exception !!! [lr:0x40021a30, dfar:0x5fc1000, dfsr:0x1808]
[0000.303] MB1-BIT() boot status dump:
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[0000.331] Last seen error : 0x00000000

I am not sure how to interpret this message. Any help in debugging / fixing this would be highly appreciated!

Thanks!

It seems to be a machine-check exception, e.g., from initial hardware/firmware failing, or from some required setup not being completed before trying to run. It is possible something incorrect in a flash did this, but I’ve never seen it. Is there anything special about the host, e.g., VM? Does the host doing the flash have plenty of disk space left (e.g., “df -H -T” to view amount and type of disk space)? Have you tried completely deleting your flash software directory and starting with a fresh batch?

If there is nothing mysterious about the actual flash, it may be in need of RMA. Should that be the case RMA info is near the top of this:
[url]https://devtalk.nvidia.com/default/topic/793798/embedded-systems/some-jetson-web-links/[/url]

@linuxdev:

The hostPC is okay. I installed a fresh copy of Ubuntu 14.04 LTS on the internal SSD of my host machine and then carried out the Jetpack-flash procedure from there. There is more than 200 GB of free space on the disk so that is not an issue. And I did try to carry out the flash procedure from scratch multiple times, from different machines. Nothing has clicked so far…

I will try the RMA procedure next. Thank you for your valuable tips!

Hello,

Got my TX2 last Friday 4/14. Started the work on Tue trying to bring up the board with Jetpack 3 running it on a Ubuntu 16.04 LTS on a VM host.

Have run into the same problem as skidro101 described -
Error: Return value 8
173.Command tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
174.Failed flashing t186ref.

Have not tried the SD card workaround. But I think this should be a common problem anyone who wants to bring up TX2 will encounter.

Has NVIDIA Jetpack team been informed so as to work out a patch for its solution?

Thanks.

I think Ubuntu 14.04 is required for JetPack. Any x86_64 Linux PC works for just flash if you want to use command line.

Sometimes VMs work, sometimes they have problems. You might consider showing more of your log, though I’d suggest after switching to Ubuntu 14.04 on the VM host.

If interested in minimal command line:

# Within the unpacked driver package...
cd rootfs
sudo tar xjf /where/ever/it/is/Tegra186_Linux_R27.1.0_aarch64.tbz2
cd ..
sudo ./apply_binaries.sh
# Make sure JTX2 is in recovery mode with micro-B USBcable attached...
sudo ./flash.sh -S 28GiB jetson-tx2 mmcblk0p1

Just as a note, I flashed the TX2 using Ubuntu 16.04 x64 (not on a VM) directly to a TX2 on an Orbitty carrier board. I never used the development board even for flashing. I know it isn’t recommended or supported to use 16.04 but it worked fine for me.

Thanks for your help.

Have tried linuxdev’s steps; it worked to certain extents, but eventually failed for the flashing.
I have seen several problems the same as those occurred in the original automatic flashing process, as shown below, along with the Error message at the end.

I was using Ubuntu 16.04 x64 LTS as a VM client of VirtualBox host on Windows 7 PC. The TX2 was put into Force Recovery mode.

...

[ 0.4677 ] Copying signatures
[ 0.4686 ] tegrahost_v2 --chip 0x18 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[ 0.4836 ]
[ 0.4837 ] Boot Rom communication
[ 0.4847 ] tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml
???[ 0.4856 ] BootRom is not running
[ 0.5318 ]
[ 5.5375 ] Retrieving board information
[ 5.5442 ] tegrarcm_v2 --oem platformdetails chip chip_info.bin
[ 5.5483 ] Applet version 01.00.0000
[ 5.5734 ] Saved platform info in chip_info.bin
[ 5.5759 ] Chip minor revision: 2
[ 5.5838 ]
[ 5.5839 ] Sending BCTs
[ 5.5850 ] tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
[ 5.5858 ] Applet version 01.00.0000
[ 5.6059 ] Sending bct_bootrom
[ 5.6064 ] […] 100%
[ 5.6184 ] Sending bct_mb1
[ 5.6251 ] […] 100%
[ 5.9796 ]
[ 5.9797 ] Generating blob
[ 5.9808 ] tegrahost_v2 --align blob_nvtboot_recovery_cpu.bin

[ 6.3460 ] Sending bootloader and pre-requisite binaries
[ 6.3471 ] tegrarcm_v2 --download blob blob.bin
[ 6.3481 ] Applet version 01.00.0000
[ 6.3635 ] Sending blob
[ 6.3638 ] […] 100%
[ 6.8517 ]
[ 6.8559 ] tegrarcm_v2 --boot recovery
[ 6.8620 ] Applet version 01.00.0000
[ 6.8836 ]

[ 11.8866 ] Retrieving storage infomation
[ 11.8886 ] tegrarcm_v2 --oem platformdetails storage storage_info.bin
???[ 11.8906 ] Applet is not running on device. Continue with Bootloader
[ 11.9077 ]
[ 11.9102 ] tegradevflash_v2 --oem platformdetails storage storage_info.bin
???[ 11.9126 ] CPU Bootloader is not running on device.
Error: Return value 4
Command tegradevflash_v2 --oem platformdetails storage storage_info.bin
Failed flashing t186ref.

Thought? Much obliged!