I’ve been trying to clone the image as follows, using a known-good SoM.
sudo ./tegraflash.py --bl cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd “read APP my_backup_image_APP.img”
but this always fails with sending ebt, verification failed, return value 4.
I was able to clone the eMMC using the flash.sh tool instead, as per Flashing Support — Jetson Linux<br/>Developer Guide 34.1 documentation.
sudo ./flash.sh -r -k APP -G backup.img jetson-nano-devkit-emmc mmcblk0p1
This tool is located in work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra of the Yocto toolchain build directory. I believe it comes from the NVIDIA SDK Manager.
I then mounted the image:
mkdir /media/backup
mount backup.img /media/backup
cd /media/backup
This process does not work on the target Jetson module which has the SDRAM initialisation failure during boot. The log is
user@PC:~/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra$ sudo ./flash.sh -r -k APP -G backup.img jetson-nano-devkit-emmc mmcblk0p1
###############################################################################
# L4T BSP Information:
# R32 , REVISION: 5.2
###############################################################################
# Target Board Information:
# Name: jetson-nano-devkit-emmc, Board Family: t210ref, SoC: Tegra 210,
# OpMode: production, Boot Authentication: ,
# Disk encryption: disabled ,
###############################################################################
./tegraflash.py --chip 0x21 --applet "/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/nvtboot_recovery.bin" --skipuid --cmd "dump eeprom boardinfo cvm.bin"
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.0108 ] Generating RCM messages
[ 0.0115 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[ 0.0120 ] RCM 0 is saved as rcm_0.rcm
[ 0.0123 ] RCM 1 is saved as rcm_1.rcm
[ 0.0123 ] List of rcm files are saved in rcm_list.xml
[ 0.0123 ]
[ 0.0124 ] Signing RCM messages
[ 0.0129 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0134 ] Assuming zero filled SBK key
[ 0.0168 ]
[ 0.0168 ] Copying signature to RCM mesages
[ 0.0174 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0184 ]
[ 0.0185 ] Boot Rom communication
[ 0.0190 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0194 ] RCM version 0X210001
[ 0.0735 ] Boot Rom communication completed
[ 1.0887 ]
[ 1.0888 ] dump EEPROM info
[ 1.0896 ] tegrarcm --oem platformdetails eeprom /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/cvm.bin
[ 1.0902 ] Applet version 00.01.0000
[ 1.1043 ] Saved platform info in /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/cvm.bin
[ 1.1923 ]
[ 1.1931 ] tegrarcm --reboot recovery
[ 1.1937 ] Applet version 00.01.0000
[ 1.2122 ]
Board ID(3448) version(400)
copying bctfile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg)... done.
copying bootloader(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying initrd(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/l4t_initrd.img)... done.
Making Boot image... done.
Existing sosfile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)... done.
copying cpu_bootloader(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying bpffile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)... done.
Existing badpagefile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/badpage.bin) reused.
copying wb0boot(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)... done.
Existing tosfile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)... done.
Copying nv_boot_control.conf to rootfs
sed: can't read /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: Not a directory
sed: can't read /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: Not a directory
Skip generating system.img
Existing tbcfile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)... done.
copying cfgfile(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_emmc_p3448.xml) to flash.xml... done.
copying flasher(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
Existing flashapp(/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/bootloader/tegraflash.py) reused.
*** Reading [APP] and storing to /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/backup.img ***
./tegraflash.py --bl cboot.bin --bldtb kernel_tegra210-p3448-0002-p3449-0000-b00.dtb --chip 0x21 --applet nvtboot_recovery.bin --bct P3448_A00_lpddr4_204Mhz_P987.cfg --cfg flash.xml --odmdata 0xa4000 --cmd "read APP /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/backup.img"
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.0042 ] Generating RCM messages
[ 0.0048 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[ 0.0123 ] RCM 0 is saved as rcm_0.rcm
[ 0.0127 ] RCM 1 is saved as rcm_1.rcm
[ 0.0127 ] List of rcm files are saved in rcm_list.xml
[ 0.0128 ]
[ 0.0128 ] Signing RCM messages
[ 0.0134 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0141 ] Assuming zero filled SBK key
[ 0.0181 ]
[ 0.0181 ] Copying signature to RCM mesages
[ 0.0187 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0196 ]
[ 0.0196 ] Boot Rom communication
[ 0.0201 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml
[ 0.0209 ] BR_CID: 0x321010016445c8492400000009048240
[ 0.0223 ] RCM version 0X210001
[ 0.0230 ] Boot Rom communication completed
[ 1.0345 ]
[ 1.0345 ] Parsing partition layout
[ 1.0354 ] tegraparser --pt flash.xml.tmp
[ 1.0363 ]
[ 1.0364 ] Creating list of images to be signed
[ 1.0370 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[ 1.0488 ]
[ 1.0489 ] Generating signatures
[ 1.0495 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[ 1.0502 ] Assuming zero filled SBK key
[ 1.1174 ]
[ 1.1175 ] Send BCT from Host
[ 1.1175 ] Generating br-bct
[ 1.1182 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[ 1.1187 ] Copying Sdram info from 2 to 3 set
[ 1.1205 ]
[ 1.1205 ] Updating boot device parameters
[ 1.1210 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[ 1.1215 ] Warning: No sdram params
[ 1.1216 ]
[ 1.1216 ] Updating bl info
[ 1.1221 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[ 1.1234 ]
[ 1.1234 ] Updating secondary storage information into bct
[ 1.1239 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[ 1.1245 ]
[ 1.1245 ] Updating Odmdata
[ 1.1250 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[ 1.1255 ] Warning: No sdram params
[ 1.1256 ]
[ 1.1257 ] Get Signed section of bct
[ 1.1261 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[ 1.1267 ]
[ 1.1267 ] Signing BCT
[ 1.1278 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[ 1.1283 ] Assuming zero filled SBK key
[ 1.1286 ]
[ 1.1286 ] Updating BCT with signature
[ 1.1291 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[ 1.1298 ]
[ 1.1298 ] Sending BCTs
[ 1.1303 ] tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
[ 1.1308 ] Applet version 00.01.0000
[ 1.1410 ] Sending bct
[ 1.1411 ] [................................................] 100%
[ 1.3055 ]
[ 1.3056 ] Retrieving storage infomation
[ 1.3064 ] tegrarcm --oem platformdetails storage storage_info.bin
[ 1.3071 ] Applet version 00.01.0000
[ 1.3200 ] Saved platform info in storage_info.bin
[ 1.4038 ]
[ 1.4038 ] Sending bootloader and pre-requisite binaries
[ 1.4046 ] tegrarcm --download ebt cboot.bin 0 0 --download rp1 kernel_tegra210-p3448-0002-p3449-0000-b00.dtb 0
[ 1.4052 ] Applet version 00.01.0000
[ 1.4182 ] Sending ebt
[ 1.5403 ]
Error: Return value 1
Command tegrarcm --download ebt cboot.bin 0 0 --download rp1 kernel_tegra210-p3448-0002-p3449-0000-b00.dtb 0
*** The [APP] has been read successfully. ***
Converting RAW image to Sparse image... mv: cannot stat '/home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/backup.img': No such file or directory
open input file /home/user/toolchains/jetson-toolchain/jetson-builds/tmp-nano-toolchain/work-shared/L4T-tegra210-32.5.2-r0/Linux_for_Tegra/backup.img.raw failed.
Meanwhile the UART shows:
[0002.688] Processing in recovery mode
[0002.692] A02 Bootrom Patch rev = 1023
[0002.695] Power-up reason: pmc por
[0002.699] Established communication link with host
[0003.672] NvTbootI2cWrite(): error code 0x00045100 Error while starting write transaction
[0003.680] NvTbootI2cDeviceRead(): error code 0x00045001 Error while sending the offset to slave
[0003.688] NvTbootI2c: Read failed for slave 0xac, offset 0x00 with error code 0x00045001
[0002.463] Enabled early print
▒5X▒▒▒$u▒▒6iZ▒▒▒s|▒▒t▒▒▒̚r▒$I▒▒▒▒5▒▒T2▒▒F▒u▒}oG▒#▒bm"▒P▒ȣ▒▒▒e$▒u▒▒▒▒^▒▒Y<_'4"▒▒96F▒w▒▒▒3▒H▒$▒A▒
Pך=▒@H▒Hq@v>@▒▒J▒▒-&0eSm▒▒i
!vu}▒"'▒▒▒▒▒ ▒t▒?v▒/▒hϾ▒sc2▒5▒
▒8r▒[▒nm
(▒▒▒9!▒6.▒▒0) 6/▒\▒▒9▒▒▒~▒▒ﹺG!▒▒▒▒▒{j`▒)
[0002.494] Processing in recovery mode
[0002.497] A02 Bootrom Patch rev = 1023
[0002.501] Power-up reason: software reset
[0002.504] Established communication link with host
[0003.562] Odmdata from BCT: 0x000a4000
[0003.565] DebugPort= 0x3
[0003.568] SkipQspiOnly= 0x0
[0003.620] BoardId read from EEPROM/NCT: 3448
[0003.624] BoardID = 3448, SKU = 0x2
[0003.651] NvTbootInit_Porg: Setting GPIO_A6 for HDMI ...
[0003.656] max77620 setting MBLPD bit
[0003.660] No Battery Present
[0003.662] RamCode = 0
[0003.665] Platform has DDR4 type RAM
[0003.668] max77620 disabling SD1 Remote Sense
[0003.672] Setting DDR voltage to 1125mv
[0003.676] Serial Number of Pmic Max77663: 0x1417f3
[0003.684] Entering ramdump check
[0003.687] Get RamDumpCarveOut = 0x0
[0003.690] RamDumpCarveOut=0x0, RamDumperFlag=0xe59ff3f8
[0003.695] Last reboot was clean, booting normally!
[0003.700] Sdram initialization failed with 0x3
[0003.704] Downloaded BCT successfully
[0003.794] Csd NumOfBlocks=0