Hello,
While trying to deploy a custom image (yocto + mender) on my jetson nano, I did a mistake. I’ve flash-erase /dev/mtd0 thinking it was the eMMC, but now my jetson doesn’t boot at all.
I try to recover it, but the recover procedure is stuck at “tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid”
What can I do to revive my jetson ?
Thanks for your help
EDIT : I’m using Ubuntu 20.4.1 on a virtual machine (VirtualBox) 64 bits
EDIT 2 :
I’ve changed the USB controller of my VM to USB1.1 (instead of USB 2.0) and now I’m a step beyond but still failed :
root@damien-VirtualBox:/home/damien/Linux_for_Tegra# ./flash.sh jetson-nano-qspi mmcblk0p1
###############################################################################
# L4T BSP Information:
# R32 , REVISION: 5.2
###############################################################################
Error: probing the target board failed.
Make sure the target board is connected through
USB port and is in recovery mode.
root@damien-VirtualBox:/home/damien/Linux_for_Tegra# ./flash.sh jetson-nano-qspi mmcblk0p1
###############################################################################
# L4T BSP Information:
# R32 , REVISION: 5.2
###############################################################################
# Target Board Information:
# Name: jetson-nano-qspi, Board Family: t210ref, SoC: Tegra 210,
# OpMode: production, Boot Authentication: ,
# Disk encryption: disabled ,
###############################################################################
./tegraflash.py --chip 0x21 --applet "/home/damien/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.0023 ] Generating RCM messages
[ 0.0034 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/damien/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[ 0.0047 ] RCM 0 is saved as rcm_0.rcm
[ 0.0058 ] RCM 1 is saved as rcm_1.rcm
[ 0.0069 ] List of rcm files are saved in rcm_list.xml
[ 0.0152 ]
[ 0.0154 ] Signing RCM messages
[ 0.0178 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0193 ] Assuming zero filled SBK key
[ 0.0410 ]
[ 0.0413 ] Copying signature to RCM mesages
[ 0.0428 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0502 ]
[ 0.0503 ] Boot Rom communication
[ 0.0527 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0544 ] RCM version 0X210001
[ 0.1106 ] Boot Rom communication completed
[ 1.2021 ]
[ 1.2022 ] dump EEPROM info
[ 1.2036 ] tegrarcm --oem platformdetails eeprom /home/damien/Linux_for_Tegra/bootloader/cvm.bin
[ 1.2048 ] Applet version 00.01.0000
[ 1.3677 ] Saved platform info in /home/damien/Linux_for_Tegra/bootloader/cvm.bin
[ 1.6181 ]
[ 1.6193 ] tegrarcm --reboot recovery
[ 1.6205 ] Applet version 00.01.0000
[ 1.8621 ]
Board ID(3448) version(400)
copying bctfile(/home/damien/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg)... done.
copying bootloader(/home/damien/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying initrd(/home/damien/Linux_for_Tegra/bootloader/l4t_initrd.img)... done.
populating kernel to rootfs... done.
populating initrd to rootfs... done.
populating /home/damien/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb to rootfs... done.
Making Boot image... done.
Existing sosfile(/home/damien/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/damien/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)... done.
copying cpu_bootloader(/home/damien/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying bpffile(/home/damien/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)... done.
Existing badpagefile(/home/damien/Linux_for_Tegra/bootloader/badpage.bin) reused.
copying wb0boot(/home/damien/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)... done.
Existing tosfile(/home/damien/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/damien/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/damien/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb)... done.
Copying nv_boot_control.conf to rootfs
sed: impossible de lire /home/damien/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: N'est pas un dossier
sed: impossible de lire /home/damien/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: N'est pas un dossier
sed: impossible de lire /home/damien/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: N'est pas un dossier
sed: impossible de lire /home/damien/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: N'est pas un dossier
sed: impossible de lire /home/damien/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: N'est pas un dossier
sed: impossible de lire /home/damien/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: N'est pas un dossier
sed: impossible de lire /home/damien/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: N'est pas un dossier
sed: impossible de lire /home/damien/Linux_for_Tegra/rootfs/etc/nv_boot_control.conf: N'est pas un dossier
Skip generating system.img
Existing tbcfile(/home/damien/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/damien/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb)... done.
copying cfgfile(/home/damien/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_max-spi_p3448.xml) to flash.xml... done.
copying flasher(/home/damien/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
Existing flashapp(/home/damien/Linux_for_Tegra/bootloader/tegraflash.py) reused.
./tegraflash.py --bl cboot.bin --bct P3448_A00_lpddr4_204Mhz_P987.cfg --odmdata 0xa4000 --bldtb kernel_tegra210-p3448-0000-p3449-0000-b00.dtb --applet nvtboot_recovery.bin --cmd "flash; reboot" --cfg flash.xml --chip 0x21 --bins "EBT cboot.bin; DTB tegra210-p3448-0000-p3449-0000-b00.dtb"
saving flash command in /home/damien/Linux_for_Tegra/bootloader/flashcmd.txt
saving Windows flash command to /home/damien/Linux_for_Tegra/bootloader/flash_win.bat
*** 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.0010 ] tegrasign --key None --getmode mode.txt
[ 0.0029 ] Assuming zero filled SBK key
[ 0.0087 ]
[ 0.0090 ] Generating RCM messages
[ 0.0134 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[ 0.0150 ] RCM 0 is saved as rcm_0.rcm
[ 0.0167 ] RCM 1 is saved as rcm_1.rcm
[ 0.0180 ] List of rcm files are saved in rcm_list.xml
[ 0.0249 ]
[ 0.0250 ] Signing RCM messages
[ 0.0362 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0375 ] Assuming zero filled SBK key
[ 0.0528 ]
[ 0.0529 ] Copying signature to RCM mesages
[ 0.0542 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0761 ]
[ 0.0762 ] Parsing partition layout
[ 0.0773 ] tegraparser --pt flash.xml.tmp
[ 0.0860 ]
[ 0.0861 ] Creating list of images to be signed
[ 0.0873 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[ 0.1131 ]
[ 0.1132 ] Generating signatures
[ 0.1144 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[ 0.1167 ] Assuming zero filled SBK key
[ 0.1961 ]
[ 0.1962 ] Generating br-bct
[ 0.1975 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[ 0.1987 ] Copying Sdram info from 2 to 3 set
[ 0.2096 ]
[ 0.2097 ] Updating boot device parameters
[ 0.2114 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[ 0.2128 ] Warning: No sdram params
[ 0.2324 ]
[ 0.2325 ] Updating bl info
[ 0.2337 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[ 0.2443 ]
[ 0.2445 ] Updating secondary storage information into bct
[ 0.2473 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[ 0.2523 ]
[ 0.2525 ] Updating Odmdata
[ 0.2541 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[ 0.2555 ] Warning: No sdram params
[ 0.2723 ]
[ 0.2724 ] Get Signed section of bct
[ 0.2737 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[ 0.2801 ]
[ 0.2802 ] Signing BCT
[ 0.2837 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[ 0.2856 ] Assuming zero filled SBK key
[ 0.2968 ]
[ 0.2969 ] Updating BCT with signature
[ 0.2980 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[ 0.3071 ]
[ 0.3072 ] Copying signatures
[ 0.3088 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[ 0.3232 ]
[ 0.3232 ] Updating BFS information on BCT
[ 0.3295 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatebfsinfo flash.xml.bin
[ 0.3407 ]
[ 0.3408 ] Boot Rom communication
[ 0.3423 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml
[ 0.3449 ] BootRom is not running
[ 0.3732 ]
[ 0.3733 ] Sending BCTs
[ 0.3750 ] tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
[ 0.3783 ] Applet is not running on device. Continue with Bootloader
[ 0.3878 ]
[ 0.3936 ] tegrahost --chip 0x21 --align cboot.bin
[ 0.4027 ]
[ 0.4040 ] tegrahost --magicid EBT --appendsigheader cboot.bin cboot.bin_blheader
[ 0.4161 ]
[ 0.4180 ] tegrasign --key None --list cboot.bin_list.xml
[ 0.4271 ] Assuming zero filled SBK key
[ 0.4646 ]
[ 0.4661 ] tegrahost --updatesigheader cboot.bin_blheader.encrypt cboot.bin_blheader.hash zerosbk
[ 0.4769 ]
[ 0.4798 ] tegrahost --chip 0x21 --align tegra210-p3448-0000-p3449-0000-b00.dtb
[ 0.4975 ]
[ 0.4987 ] tegrahost --magicid DTB --appendsigheader tegra210-p3448-0000-p3449-0000-b00.dtb tegra210-p3448-0000-p3449-0000-b00.dtb_blheader
[ 0.5099 ]
[ 0.5123 ] tegrasign --key None --list tegra210-p3448-0000-p3449-0000-b00.dtb_list.xml
[ 0.5206 ] Assuming zero filled SBK key
[ 0.5398 ]
[ 0.5417 ] tegrahost --updatesigheader tegra210-p3448-0000-p3449-0000-b00.dtb_blheader.encrypt tegra210-p3448-0000-p3449-0000-b00.dtb_blheader.hash zerosbk
[ 0.5602 ]
[ 0.5607 ] Sending bootloader and pre-requisite binaries
[ 0.5641 ] tegrarcm --download ebt cboot.bin.encrypt 0 0 --download rp1 tegra210-p3448-0000-p3449-0000-b00.dtb.encrypt 0
[ 0.5670 ] Applet is not running on device. Continue with Bootloader
[ 0.5915 ]
[ 0.5943 ] tegrarcm --boot recovery
[ 0.5984 ] Applet is not running on device. Continue with Bootloader
[ 0.6064 ]
[ 0.6065 ] Retrieving storage infomation
[ 0.6082 ] tegrarcm --oem platformdetails storage storage_info.bin
[ 0.6175 ] Applet is not running on device. Continue with Bootloader
[ 0.6324 ]
[ 0.6337 ] tegradevflash --oem platformdetails storage storage_info.bin
[ 0.6349 ] Cboot is not running on device.
[ 0.6608 ]
Error: Return value 4
Command tegradevflash --oem platformdetails storage storage_info.bin
Failed flashing t210ref.
and this is the log from the UART port :
[0007.823] Enabled early print
[0007.826] [L4T TegraBoot] (version f(▒▒߈@ ▒▒▒H▒)
[0007.831] Processing in recovery mode
[0007.835] A02 Bootrom Patch rev = 1023
[0007.838] Power-up reason: pmc por
[0007.841] Established communication link with host
[0009.016] NvTbootI2cWrite(): error code 0x00045100 Error while starting write transaction
[0009.024] NvTbootI2cDeviceRead(): error code 0x00045001 Error while sending the offset to slave
[0009.032] NvTbootI2c: Read failed for slave 0xac, offset 0x00 with error code 0x00045001
[0007.862] Enabled early print
[0007.865] [L4T TegraBoot] (version f(▒▒걹▒▒@ ▒▒▒H▒)
[0007.870] Processing in recovery mode
[0007.874] A02 Bootrom Patch rev = 1023
[0007.877] Power-up reason: pmc por
[0007.880] Established communication link with host
[0009.055] NvTbootI2cWrite(): error code 0x00045100 Error while starting write transaction
[0009.063] NvTbootI2cDeviceRead(): error code 0x00045001 Error while sending the offset to slave
[0009.072] NvTbootI2c: Read failed for slave 0xac, offset 0x00 with error code 0x00045001