About Flashing Multiple Tegra Devices ?

According to the Flashing Multiple Tegra Devices section from Tegra Linux Driver Package Development Guide - https://developer.nvidia.com/embedded/dlc/l4t-documentation-28-2-ga, We flash two Tegra Devices at the same time, it is ok. But flash three Tegra Devices at the same time, after 12 hours, it’s still running.

Our goal is to flash 30 Tegra Devices at the same time.

hello taoze_happy,

may I know the is there any suspicious failure message shown in the console side.
may I also know your environment setups.
thanks

My original testing was on a native Ubuntu 16.04 host.
I’m using 3 Jetson TX2 devices for testing. Two of them is ok. The aborted log is following:

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.0024 ] tegrasign_v2 --key None --getmode mode.txt
[ 0.0046 ] Assuming zero filled SBK key
[ 0.0126 ]
[ 0.0126 ] Generating RCM messages
[ 0.0149 ] tegrarcm_v2 --instance 1-2 --listrcm rcm_list.xml --chip 0x18 --download rcm mb1_recovery_prod.bin 0 0
[ 0.0171 ] RCM 0 is saved as rcm_0.rcm
[ 0.0180 ] RCM 1 is saved as rcm_1.rcm
[ 0.0180 ] List of rcm files are saved in rcm_list.xml
[ 0.0180 ]
[ 0.0181 ] Signing RCM messages
[ 0.0200 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0221 ] Assuming zero filled SBK key
[ 0.0263 ]
[ 0.0264 ] Copying signature to RCM mesages
[ 0.0287 ] tegrarcm_v2 --instance 1-2 --chip 0x18 --updatesig rcm_list_signed.xml
[ 0.0310 ]
[ 0.0311 ] Parsing partition layout
[ 0.0331 ] tegraparser_v2 --pt flash.xml.tmp
[ 0.0356 ]
[ 0.0356 ] Creating list of images to be signed
[ 0.0376 ] tegrahost_v2 --chip 0x18 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
[ 0.0398 ] File read failed
[ 0.0401 ]
Error: Return value 2
Command tegrahost_v2 --chip 0x18 --partitionlayout flash.xml.bin --list images_list.xml zerosbk

hello taoze_happy,

we will investigate this internally,
may I also know which JetPack release you’re working on?
thanks

JetPack 3.2

hello taoze_happy,

sorry for late reply,
could you please have a try to flash multiple tegra device at the same time with the scripts in the attachment, massflash.7z
thanks
massflash.7z (5.07 KB)

Attached the nvmassflashgen.sh for TX2.
Rename it as nvmassflashgen.sh

nvmassflashgen.sh.txt (19 KB)

hi Shane,
may i know which code did you update? we have converted your bash code into python, so i need to update python code accordingly

@jin
Download the massflash.7z replace the nvmassflashgen.sh by my attachment nvmassflashgen.sh.txt
And check the TX1_r28.2_Massflash.txt to know how to gen the mass flash image.

hi Shane,
I could restore two TX2s at the same time, but I found TX2 image was not restored to given version, but to original image using below cmds.

  1. ./flash.sh --no-flash jetson-tx2 mmcblk0p1
  2. ./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-c04.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 --scr_cold_boot_config mobile_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-c04-00-te770d-ucm2.dtb; tlk tos.img; eks eks.img; bootloader_dtb tegra186-quill-p3310-1000-c03-00-base.dtb” --instance 1-1

however, when I used cmd below, I could restore TX2 to given image.
./flash.sh -r -k APP jetson-tx2 mmcblk0p1

@jin
Not really understand your problem.
Do you want to flash multiple devices to and backup image?

sorry for misunderstanding, Shane. I want to restore TX2 using customized system.img.raw, but after using first command, I found my TX2 was restored to default image, not the image I want.

So you want to restore APP partition for multiple devices?
Have a check below link for if any step different.

https://devtalk.nvidia.com/default/topic/1026105/?comment=5218899

I don’t think we are the same issue. I didn’t hit restore failed. I can restore TX2 using “./flash.sh -r -k APP jetson-tx2 mmcblk0p1” each time, and the image is what i want, I mean I pre-installed lots of packages and software. However, when using cmds in “Flashing Multiple Tegra Devices”, after system was restored, the system was re-fresh to default, which means no pre-installed softare and packages found.
And My scenario is One host Ubuntu 16.04 which connected lots of TX2s, I need to restore random TX2 according to command.

So you want to restore backup image for multiple devices?
That should be an another story.

I think you can try the massflash.7z to gen the mass flash image and replace the system.img and flash multiple devices by nvmflash.sh.

hello jin.wu,

I think you might add “-r” options in the commands.

-r  |  Specifies to skip building and reuse existing system.img.

please kindly refer to Flashing and Booting the Target Device chapter.
thanks

hi Jerry,
do you mean to add “-r” when “./flash.sh -r
–no-flash jetson-tx2 mmcblk0p1”?

hello jin.wu,

since you already generate a customize system image. you’ll need “-r” options to reuse existing image.

however, I think your use-case is different with this topic.
your use-case is going to restore APP partition to any random TX2 devices.
I would suggest you summarize your testing result and file another new topic with appropriate title.
thanks