Error 4: Partition not found when flashing jetson nano

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

  1. re-format SD card using Jetpack 4.6.1 by BalenaEtcher
  2. Use SDKManager to download Jetpack 4.6.3 and sample file system
  3. Add default user by

sudo ./l4t_create_default_user.sh

  1. copy content of sample file system to Linux_for_tegra and run

sudo ./apply_binaries.sh

  1. follow instruction from It seems I have bricked Jetson Nano by writing to the I2C EEPROM - #3 by piotr.holonowicz
  2. 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...

Hi po.goragod,

Do you modify something in device tree?
The flash log showed: 00000004: Partition not found
You may refer to the following thread to check it could help.
flashing a specific partition failure - #2 by JerryChang

Have you tried to flash your devkit just through SDK Manager?
Install Jetson Software with SDK Manager :: NVIDIA SDK Manager Documentation

Hello KevinFFF, Thank you for your reply.

Q1:Do you modify something in device tree

I’m not sure since I follow the instruction from the link I put in order to bypass the board information checking. These are all the change in each files I made

[Linux_for_Tegra/p3448-0000.conf.common]
…
BCFFILE=“bootloader/${target_board}/cfg/board_config_p3448.xml”;
…
…

and

[Linux_for_Tegra/p3448-0000-emmc.conf]
…
BOARDID=“3448”;
FAB=“400”;
BOARDSKU=“0002” ;
BOARDREV=“70”;
…
…

Q2 .Have you tried to flash your devkit just through SDK Manager?
I haven’t try it yet but according from another threads regard to the board information mess up on EEPROM, they all perform a modification on flash.sh.

When you say EEPROM, do you mean an i2c command or devmem2 command?

In my case is i2c command

I don’t know enough about the i2c to answer, other than that it is possible with this modify something in the EEPROM which is problematic. If you can, then post the exact i2c command. Someone familiar with the inner workings might know what it changed or how to fix it.

Hi,

Is the board still able to boot? If so, could you share me the dmesg?

Unfortunately, there is nothing showing up even after I flash a new OS to SD card

Hi

I mean actually you didn’t flash anything successfully yet, so please share me the boot log.

Also, share me what is the exact thing you wrote into the xml file…

Sorry for my late reply
This all file I have modify
p3449-0000+p3448-0000-qspi-sd.conf (1.8 KB)
p3448-0000.conf.common (6.2 KB)
Although I did nothing with this file but just in case,
board_config_p3448.xml (261 Bytes)

Finally, this is a log from using SDKManager to flash
sdkmanager_flash.log (4.9 KB)

Sorry, I need your boot up log from uart and also the flash failure error from uart.

Sorry to keep you wait

I don’t think this is just pure “modified eeprom” issue. Morel like hardware defect.

The error says even QSPI fails to get read.

what should I do?

You can only RMA this module.

Sorry, one more question here before you do the RMA.

Are you sure the log you shared from host side is aligned with what you share from uart?

I mean, I don’t think your previous log shared in the beginning is matching to what you just shared.

I think the latest one is aligned
I use USBtoUART to connect Tx Tx and gnd pin from Jetson. then use screen program to record that log
The uart log start flowing when I use ./flash command

Hi,

Could you try to figure out what yourself is doing first?

For example, you wrote

BOARDID=“3448”;
FAB=“400”;
BOARDSKU=“0002”;
BOARDREV=“70”;

in your p3449-0000+p3448-0000-qspi-sd.conf

But your board_config_p3448.xml again wrote

board type=“proc” id=“3448” sku=“0000” fab=“0”/>

I am not sure if this leads to your error. But obviously these two variables conflict to each other.

I will try changing them to the same value, thank!