This is long story, but the summary is
Device
Jetson Nano Developer Kit (B01 with 4GB model) with SD-card
Cause
I accidentally change the content on EEPROM so my Jetson cannot be boot anymore.
What I have done so far
- re-format SD card using Jetpack 4.6.1 by BalenaEtcher
- Use SDKManager to download Jetpack 4.6.3 and sample file system
- Add default user by
sudo ./l4t_create_default_user.sh
- copy content of sample file system to Linux_for_tegra and run
sudo ./apply_binaries.sh
- follow instruction from It seems I have bricked Jetson Nano by writing to the I2C EEPROM - #3 by piotr.holonowicz
- Put Jetson to RCM and flashing using
sudo ./flash.sh jetson-nano-devkit mmcblk0p1
Result
The error was as following
###############################################################################
# L4T BSP Information:
# R32 , REVISION: 7.3
###############################################################################
# Target Board Information:
# Name: jetson-nano-devkit, Board Family: t210ref, SoC: Tegra 210,
# OpMode: production, Boot Authentication: ,
# Disk encryption: disabled ,
###############################################################################
Board ID(3448) version(400)
copying bctfile(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg)... done.
copying bootloader(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying initrd(/home/capilab/Downloads/Linux_for_Tegra/bootloader/l4t_initrd.img)... done.
Making Boot image... done.
copying bcffile(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/cfg/board_config_p3448.xml)... done.
Existing sosfile(/home/capilab/Downloads/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)... done.
copying cpu_bootloader(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying bpffile(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)... done.
copying wb0boot(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)... done.
Existing tosfile(/home/capilab/Downloads/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/capilab/Downloads/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/capilab/Downloads/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)... done.
Copying nv_boot_control.conf to rootfs
populating kernel to rootfs... done.
populating initrd to rootfs... done.
populating kernel_tegra210-p3448-0002-p3449-0000-b00.dtb to rootfs... done.
Making system.img...
populating rootfs from /home/capilab/Downloads/Linux_for_Tegra/rootfs ... populating /boot/extlinux/extlinux.conf ... done.
Sync'ing system.img ... done.
Converting RAW image to Sparse image... done.
system.img built successfully.
Existing tbcfile(/home/capilab/Downloads/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/capilab/Downloads/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)... done.
copying cfgfile(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_max-spi_sd_p3448.xml) to flash.xml... done.
copying flasher(/home/capilab/Downloads/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
Existing flashapp(/home/capilab/Downloads/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-0002-p3449-0000-b00.dtb --applet nvtboot_recovery.bin --boardconfig board_config_p3448.xml --cmd "flash; reboot" --cfg flash.xml --chip 0x21 --skipuid --bins "EBT cboot.bin; DTB tegra210-p3448-0002-p3449-0000-b00.dtb"
saving flash command in /home/capilab/Downloads/Linux_for_Tegra/bootloader/flashcmd.txt
saving Windows flash command to /home/capilab/Downloads/Linux_for_Tegra/bootloader/flash_win.bat
assign_value: crc-flash.xml.bin 1 65520 1
printf '\x1' | dd of=crc-flash.xml.bin bs=1 seek=65520 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 6.397e-05 s, 15.6 kB/s
assign_value: crc-flash.xml.bin 0 65521 1
printf '\x0' | dd of=crc-flash.xml.bin bs=1 seek=65521 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 4.3562e-05 s, 23.0 kB/s
assign_string: crc-flash.xml.bin PTHD 65528 4
echo PTHD | dd of=crc-flash.xml.bin bs=1 seek=65528 count=4 conv=notrunc
4+0 records in
4+0 records out
4 bytes copied, 5.1868e-05 s, 77.1 kB/s
*** 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.1339 ] tegrasign --getmode mode.txt --key None
[ 0.1351 ] Assuming zero filled SBK key
[ 0.1403 ]
[ 0.1404 ] Generating RCM messages
[ 0.1436 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[ 0.1446 ] RCM 0 is saved as rcm_0.rcm
[ 0.2889 ] RCM 1 is saved as rcm_1.rcm
[ 0.2892 ] List of rcm files are saved in rcm_list.xml
[ 0.2897 ]
[ 0.2898 ] Signing RCM messages
[ 0.2923 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.2933 ] Assuming zero filled SBK key
[ 0.3041 ]
[ 0.3041 ] Copying signature to RCM mesages
[ 0.3064 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.4165 ]
[ 0.4166 ] Parsing partition layout
[ 0.4195 ] tegraparser --pt flash.xml.tmp
[ 0.4214 ]
[ 0.4216 ] Using default ramcode: 0
[ 0.4216 ] Disable BPMP dtb trim, using default dtb
[ 0.4216 ]
[ 0.4217 ] Creating list of images to be signed
[ 0.4240 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[ 0.6022 ]
[ 0.6023 ] Generating signatures
[ 0.6052 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[ 0.6066 ] Assuming zero filled SBK key
[ 1.0778 ]
[ 1.0778 ] Generating br-bct
[ 1.1956 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[ 1.3370 ]
[ 1.3370 ] Updating boot device parameters
[ 1.3393 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[ 1.3404 ] Warning: No sdram params
[ 1.3407 ]
[ 1.3407 ] Updating bl info
[ 1.3429 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[ 1.4591 ]
[ 1.4592 ] Updating secondary storage information into bct
[ 1.4617 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[ 1.4632 ]
[ 1.4633 ] Updating board information from board config into bct
[ 1.4655 ] tegraparser --boardconfig board_config_p3448.xml --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[ 1.5965 ]
[ 1.5966 ] Updating Odmdata
[ 1.5989 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[ 1.6000 ] Warning: No sdram params
[ 1.6006 ]
[ 1.6007 ] Get Signed section of bct
[ 1.6028 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[ 1.6041 ]
[ 1.6041 ] Signing BCT
[ 1.6085 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[ 1.6094 ] Assuming zero filled SBK key
[ 1.6103 ]
[ 1.6104 ] Updating BCT with signature
[ 1.6123 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[ 1.7084 ]
[ 1.7084 ] Copying signatures
[ 1.7109 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[ 1.9338 ]
[ 1.9339 ] Updating BFS information on BCT
[ 1.9363 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatebfsinfo flash.xml.bin
[ 2.0002 ]
[ 2.0003 ] Boot Rom communication
[ 2.0026 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 2.0036 ] RCM version 0X210001
[ 2.1607 ] Boot Rom communication completed
[ 3.1677 ]
[ 3.1678 ] Sending BCTs
[ 3.1707 ] tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
[ 3.1723 ] Applet version 00.01.0000
[ 3.2857 ] Sending bct
[ 3.2859 ] [................................................] 100%
[ 3.4583 ]
[ 3.4611 ] tegrahost --chip 0x21 --align cboot.bin
[ 3.4623 ]
[ 3.4645 ] tegrahost --magicid EBT --appendsigheader cboot.bin cboot.bin_blheader
[ 3.6172 ]
[ 3.6199 ] tegrasign --key None --list cboot.bin_list.xml
[ 3.6211 ] Assuming zero filled SBK key
[ 3.6412 ]
[ 3.6423 ] tegrahost --updatesigheader cboot.bin_blheader.encrypt cboot.bin_blheader.hash zerosbk
[ 3.7296 ]
[ 3.7334 ] tegrahost --chip 0x21 --align tegra210-p3448-0002-p3449-0000-b00.dtb
[ 3.7346 ]
[ 3.7369 ] tegrahost --magicid DTB --appendsigheader tegra210-p3448-0002-p3449-0000-b00.dtb tegra210-p3448-0002-p3449-0000-b00.dtb_blheader
[ 3.8370 ]
[ 3.8402 ] tegrasign --key None --list tegra210-p3448-0002-p3449-0000-b00.dtb_list.xml
[ 3.8414 ] Assuming zero filled SBK key
[ 3.8560 ]
[ 3.8588 ] tegrahost --updatesigheader tegra210-p3448-0002-p3449-0000-b00.dtb_blheader.encrypt tegra210-p3448-0002-p3449-0000-b00.dtb_blheader.hash zerosbk
[ 3.9505 ]
[ 3.9512 ] Sending bootloader and pre-requisite binaries
[ 3.9539 ] tegrarcm --download ebt cboot.bin.encrypt 0 0 --download rp1 tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt 0
[ 3.9551 ] Applet version 00.01.0000
[ 4.0696 ] Sending ebt
[ 4.0698 ] [................................................] 100%
[ 4.1725 ] Sending rp1
[ 4.1767 ] [................................................] 100%
[ 4.2313 ]
[ 4.2339 ] tegrarcm --boot recovery
[ 4.2350 ] Applet version 00.01.0000
[ 4.3464 ]
[ 4.3464 ] Retrieving storage infomation
[ 4.3491 ] tegrarcm --oem platformdetails storage storage_info.bin
[ 4.3505 ] Applet is not running on device. Continue with Bootloader
[ 641.6670 ]
[ 641.6724 ] tegradevflash --oem platformdetails storage storage_info.bin
[ 641.6737 ] Cboot version 00.01.0000
[ 641.7334 ] Saved platform info in storage_info.bin
[ 641.7350 ]
[ 641.7351 ] Flashing the device
[ 641.7373 ] tegradevflash --pt flash.xml.bin --storageinfo storage_info.bin --create
[ 641.7382 ] Cboot version 00.01.0000
[ 641.7934 ] Writing partition GPT with gpt.bin
[ 641.7937 ] [................................................] 100%
[ 641.7994 ] Writing partition PT with crc-flash.xml.bin
[ 1277.1576 ] [................................................] 100%
[ 1277.1631 ] Writing partition NVC with nvtboot.bin.encrypt
[ 1337.7577 ] [................................................] 100%
[ 1339.3781 ] Writing partition NVC_R with nvtboot.bin.encrypt
[ 1400.0789 ] 00000004: Partition not found
[ 1401.6187 ]
Error: Return value 4
Command tegradevflash --pt flash.xml.bin --storageinfo storage_info.bin --create
Failed flashing t210ref.
This is the last 10 lines of Serial Debug port
[2440.698] spi_read_from_rcv_fifo: timed out! WordsOrbytes left to read = 1, Error = FFFFFFFF
[2440.706] spi_check_is_ready: Timed out!
[2440.710] spi_check_is_ready: Error = ffffffff
[2440.714] spi_read: Error = ffffffff
[2440.718] spi_transfer: Errspi_check_is_ready: Timed out!
[2440.730] spi_check_is_ready: Error = ffffffff
[2440.735] spi_write_dma: Error = ffffffff
[2440.739] spi_transfer: Error = ffffffff
[2440.742] spi_bdev_write_block: write pages failed
[2440.747] write_boot_partition: boot partition write failed !
[2440.753] failed NVC_R partition write !
[2440.757] Number of bytes written -1
[2440.760] panic (caller 0x92c0293c): Written less bytes than expectedHALT: spinning forever...