Having trouble updating dtb on jetson-nano-emmc

Hi everyone, I was trying to update dtb with the following command “sudo flash.sh -r -k DTB jetson-nano-emmc mmcblk0p1”. Before executing that, I copied the dtb file “kernel_tegra210-p3448-0002-p3449-0000-b00.dtb” from /boot/dtb/, which I hadn’t changed, to these three folders: Linux_for_Tegra/ , Linux_for_Tegra/kernel/dtb/, and Linux_for_Tegra/bootloader/. Then I executed “sudo flash.sh -r -k DTB jetson-nano-emmc mmcblk0p1”, which ended up with “The [DTB] has been updated successfully.”, but when I tried to boot the dtb-updated module, which thoroughly had no response – no hdmi output, no serial out. Here is the log below.

###############################################################################
# L4T BSP Information:
# R32 , REVISION: 5.2
###############################################################################
# Target Board Information:
# Name: jetson-nano-emmc, Board Family: t210ref, SoC: Tegra 210,
# OpMode: production, Boot Authentication: ,
# Disk encryption: disabled ,
###############################################################################
./tegraflash.py --chip 0x21 --applet "/home/jetson/Downloads/jetson/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.0026 ] Generating RCM messages
[   0.0043 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[   0.0057 ] RCM 0 is saved as rcm_0.rcm
[   0.0084 ] RCM 1 is saved as rcm_1.rcm
[   0.0106 ] List of rcm files are saved in rcm_list.xml
[   0.0164 ]
[   0.0165 ] Signing RCM messages
[   0.0247 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0260 ] Assuming zero filled SBK key
[   0.0482 ]
[   0.0483 ] Copying signature to RCM mesages
[   0.0505 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[   0.0643 ]
[   0.0646 ] Boot Rom communication
[   0.0660 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[   0.0693 ] RCM version 0X210001
[   0.1168 ] Boot Rom communication completed
[   1.1367 ]
[   1.1372 ] dump EEPROM info
[   1.1394 ] tegrarcm --oem platformdetails eeprom /home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/cvm.bin
[   1.1409 ] Applet version 00.01.0000
[   1.1996 ] Saved platform info in /home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/cvm.bin
[   1.3331 ]
[   1.3345 ] tegrarcm --reboot recovery
[   1.3356 ] Applet version 00.01.0000
[   1.4165 ]
Board ID(3448) version(400)
copying bctfile(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg)... done.
copying bootloader(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying initrd(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/l4t_initrd.img)... done.
Making Boot image... done.
Existing sosfile(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)... done.
copying cpu_bootloader(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying bpffile(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)... done.
Existing badpagefile(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/badpage.bin) reused.
copying wb0boot(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)... done.
Existing tosfile(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/jetson/Downloads/jetson/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)... done.
Copying nv_boot_control.conf to rootfs
Reusing existing system.img...
done.
Existing tbcfile(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/jetson/Downloads/jetson/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)... done.
copying cfgfile(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_emmc_p3448.xml) to flash.xml... done.
copying flasher(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
Existing flashapp(/home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/tegraflash.py) reused.
*** Updating [DTB] with kernel_tegra210-p3448-0002-p3449-0000-b00.dtb ***
./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 "sign; write DTB ./signed/kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt; reboot"
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.0073 ] tegrasign --key None --getmode mode.txt
[   0.0087 ] Assuming zero filled SBK key
[   0.0168 ]
[   0.0174 ] Generating RCM messages
[   0.0185 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[   0.0202 ] RCM 0 is saved as rcm_0.rcm
[   0.0228 ] RCM 1 is saved as rcm_1.rcm
[   0.0247 ] List of rcm files are saved in rcm_list.xml
[   0.0293 ]
[   0.0293 ] Signing RCM messages
[   0.0304 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0314 ] Assuming zero filled SBK key
[   0.0407 ]
[   0.0408 ] Copying signature to RCM mesages
[   0.0423 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[   0.0492 ]
[   0.0493 ] Parsing partition layout
[   0.0509 ] tegraparser --pt flash.xml.tmp
[   0.0604 ]
[   0.0605 ] Creating list of images to be signed
[   0.0625 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[   0.0805 ]
[   0.0808 ] Generating signatures
[   0.0822 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[   0.0834 ] Assuming zero filled SBK key
[   0.1677 ]
[   0.1680 ] Generating br-bct
[   0.1707 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[   0.1730 ] Copying Sdram info from 2 to 3 set
[   0.1846 ]
[   0.1848 ] Updating boot device parameters
[   0.1859 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[   0.1869 ] Warning: No sdram params
[   0.1928 ]
[   0.1932 ] Updating bl info
[   0.1945 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[   0.2008 ]
[   0.2010 ] Updating secondary storage information into bct
[   0.2019 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[   0.2085 ]
[   0.2089 ] Updating Odmdata
[   0.2105 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[   0.2117 ] Warning: No sdram params
[   0.2207 ]
[   0.2208 ] Get Signed section of bct
[   0.2220 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[   0.2289 ]
[   0.2292 ] Signing BCT
[   0.2311 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[   0.2321 ] Assuming zero filled SBK key
[   0.2410 ]
[   0.2413 ] Updating BCT with signature
[   0.2426 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[   0.2484 ]
[   0.2486 ] Copying signatures
[   0.2495 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[   0.2631 ]
[   0.2633 ] Updating BFS information on BCT
[   0.2648 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatebfsinfo flash.xml.bin
[   0.2657 ]    BFS:
[   0.2697 ]      0: [PT ] flash.xml.bin (size=4367/131072)
[   0.2735 ]      1: [TBC] nvtboot_cpu.bin.encrypt (size=65760/196608)
[   0.2754 ]      2: [RP1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt (size=244768/1048576)
[   0.2777 ]      3: [EBT] cboot.bin.encrypt (size=485120/655360)
[   0.2802 ]      4: [WB0] warmboot.bin.encrypt (size=3952/131072)
[   0.2808 ]      5: [BPF] sc7entry-firmware.bin.encrypt (size=3376/262144)
[   0.2815 ] BFS0: 131072 @ 2560 SUM c93b5b76 over 2883584 bytes
[   0.2832 ]    BFS:
[   0.2853 ]      0: [PT-1] flash.xml.bin (size=4367/131072)
[   0.2874 ]      1: [TBC-1] nvtboot_cpu.bin.encrypt (size=65760/196608)
[   0.2880 ]      2: [RP1-1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt (size=244768/1048576)
[   0.2897 ]      3: [EBT-1] cboot.bin.encrypt (size=485120/655360)
[   0.2918 ]      4: [WB0-1] warmboot.bin.encrypt (size=3952/131072)
[   0.2926 ]      5: [BPF-1] sc7entry-firmware.bin.encrypt (size=3376/262144)
[   0.2933 ]      8: [VER_b] emmc_bootblob_ver.txt (size=102/32768)
[   0.2939 ]      9: [VER] emmc_bootblob_ver.txt (size=102/32768)
[   0.2945 ] BFS1: 131072 @ 8704 SUM c93b5b76 over 2981888 bytes
[   0.2968 ]    KFS:
[   0.3997 ]      0: [DTB] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt (size=244768/1048576)
[   0.4049 ]      1: [TOS] tos-mon-only.img.encrypt (size=54208/6291456)
[   0.4056 ]      2: [EKS] eks.img (size=1028/81920)
[   0.4061 ]      3: [LNX] boot.img.encrypt (size=661504/67092480)
[   0.4101 ] KFS0: 1048576 @ 29376546 SUM 01923e09 over 8083456 bytes
[   0.4184 ]    KFS:
[   0.4935 ]      0: [DTB-1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt (size=244768/1048576)
[   0.4980 ]      1: [TOS-1] tos-mon-only.img.encrypt (size=54208/6291456)
[   0.4997 ]      2: [EKS-1] eks.img (size=1028/81920)
[   0.5002 ]      3: [LNX-1] boot.img.encrypt (size=661504/67092480)
[   0.5023 ] KFS1: 1048576 @ 29522082 SUM 01923e09 over 8083456 bytes
[   0.5128 ]
[   0.5129 ] Copying signed file in /home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/signed
[   0.5214 ] Generating RCM messages
[   0.5226 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[   0.5235 ] RCM 0 is saved as rcm_0.rcm
[   0.5251 ] RCM 1 is saved as rcm_1.rcm
[   0.5266 ] List of rcm files are saved in rcm_list.xml
[   0.5324 ]
[   0.5325 ] Signing RCM messages
[   0.5337 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.5348 ] Assuming zero filled SBK key
[   0.5446 ]
[   0.5447 ] Copying signature to RCM mesages
[   0.5459 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[   0.5524 ]
[   0.5525 ] Boot Rom communication
[   0.5536 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml
[   0.5545 ] BR_CID: 0x32101001643072c80c0000000bfc0300
[   0.7160 ] RCM version 0X210001
[   0.7194 ] Boot Rom communication completed
[   1.7486 ]
[   1.7489 ] Parsing partition layout
[   1.7503 ] tegraparser --pt flash.xml.tmp
[   1.7564 ]
[   1.7568 ] Creating list of images to be signed
[   1.7580 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[   1.7724 ]
[   1.7728 ] Generating signatures
[   1.7742 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[   1.7752 ] Assuming zero filled SBK key
[   1.8892 ]
[   1.8896 ] Send BCT from Host
[   1.8897 ] Generating br-bct
[   1.8916 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[   1.8930 ] Copying Sdram info from 2 to 3 set
[   1.9043 ]
[   1.9045 ] Updating boot device parameters
[   1.9059 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[   1.9071 ] Warning: No sdram params
[   1.9125 ]
[   1.9126 ] Updating bl info
[   1.9136 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[   1.9206 ]
[   1.9207 ] Updating secondary storage information into bct
[   1.9219 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[   1.9285 ]
[   1.9285 ] Updating Odmdata
[   1.9297 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[   1.9311 ] Warning: No sdram params
[   1.9365 ]
[   1.9367 ] Get Signed section of bct
[   1.9380 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[   1.9435 ]
[   1.9448 ] Signing BCT
[   1.9471 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[   1.9483 ] Assuming zero filled SBK key
[   1.9566 ]
[   1.9569 ] Updating BCT with signature
[   1.9581 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[   1.9644 ]
[   1.9646 ] Updating BFS information on BCT
[   1.9658 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatebfsinfo flash.xml.bin
[   1.9667 ]    BFS:
[   1.9683 ]      0: [PT ] flash.xml.bin (size=4223/131072)
[   1.9719 ]      1: [TBC] nvtboot_cpu.bin (size=65760/196608)
[   1.9740 ]      2: [RP1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb (size=244768/1048576)
[   1.9753 ]      3: [EBT] cboot.bin (size=485120/655360)
[   1.9765 ]      4: [WB0] warmboot.bin (size=3952/131072)
[   1.9771 ]      5: [BPF] sc7entry-firmware.bin (size=3376/262144)
[   1.9779 ] BFS0: 131072 @ 2560 SUM 05b487ac over 2883584 bytes
[   1.9796 ]    BFS:
[   1.9808 ]      0: [PT-1] flash.xml.bin (size=4223/131072)
[   1.9823 ]      1: [TBC-1] nvtboot_cpu.bin (size=65760/196608)
[   1.9829 ]      2: [RP1-1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb (size=244768/1048576)
[   1.9840 ]      3: [EBT-1] cboot.bin (size=485120/655360)
[   1.9850 ]      4: [WB0-1] warmboot.bin (size=3952/131072)
[   1.9855 ]      5: [BPF-1] sc7entry-firmware.bin (size=3376/262144)
[   1.9861 ]      8: [VER_b] emmc_bootblob_ver.txt (size=102/32768)
[   1.9913 ]      9: [VER] emmc_bootblob_ver.txt (size=102/32768)
[   1.9936 ] BFS1: 131072 @ 8704 SUM 05b487ac over 2981888 bytes
[   1.9941 ]    KFS:
[   2.0166 ]      0: [DTB] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb (size=244768/1048576)
[   2.0202 ]      1: [TOS] tos-mon-only.img (size=54192/6291456)
[   2.0225 ]      2: [EKS] eks.img (size=1028/81920)
[   2.0232 ]      3: [LNX] boot.img (size=661504/67092480)
[   2.0250 ] KFS0: 1048576 @ 29376546 SUM b2cfdee0 over 8083456 bytes
[   2.0320 ]    KFS:
[   2.0559 ]      0: [DTB-1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb (size=244768/1048576)
[   2.0601 ]      1: [TOS-1] tos-mon-only.img (size=54192/6291456)
[   2.0622 ]      2: [EKS-1] eks.img (size=1028/81920)
[   2.0628 ]      3: [LNX-1] boot.img (size=661504/67092480)
[   2.0643 ] KFS1: 1048576 @ 29522082 SUM b2cfdee0 over 8083456 bytes
[   2.0755 ]
[   2.0756 ] Sending BCTs
[   2.0770 ] tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
[   2.0779 ] Applet version 00.01.0000
[   2.0976 ] Sending bct
[   2.0983 ] [................................................] 100%
[   2.3691 ]
[   2.3694 ] Sending bootloader and pre-requisite binaries
[   2.3707 ] tegrarcm --download ebt cboot.bin 0 0 --download rp1 kernel_tegra210-p3448-0002-p3449-0000-b00.dtb 0
[   2.3720 ] Applet version 00.01.0000
[   2.4335 ] Sending ebt
[   2.4348 ] [................................................] 100%
[   2.6189 ] Sending rp1
[   2.6463 ] [................................................] 100%
[   2.7823 ]
[   2.7849 ] tegrarcm --boot recovery
[   2.7874 ] Applet version 00.01.0000
[   2.8824 ]
[   2.8827 ] Writing partition
[   2.8859 ] tegradevflash --write DTB /home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/signed/kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt
[   2.8879 ] Cboot version 00.01.0000
[   3.4637 ] Writing partition DTB with /home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/signed/kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt
[   3.4674 ] [................................................] 100%
[   3.5893 ]
[   3.5898 ] Ignore BFS information in BCT
[   3.5928 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --ignorebfs flash.xml.bin
[   3.6011 ]
[   3.6031 ] tegradevflash --write BCT P3448_A00_lpddr4_204Mhz_P987.bct
[   3.6049 ] Cboot version 00.01.0000
[   3.6634 ] Writing partition BCT with P3448_A00_lpddr4_204Mhz_P987.bct
[   3.6663 ] [................................................] 100%
[   4.1171 ]
[   4.1175 ] Coldbooting the device
[   4.1191 ] tegradevflash --reboot coldboot
[   4.1204 ] Cboot version 00.01.0000
[   4.2051 ]
*** The [DTB] has been updated successfully. ***
1 Like

I noticed that in the process of updating dtb, a folder named “signed” was created in bootloader/ and some file with suffix of “encrypt” was created, especially one with a name of “kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt”, which is shown in the dtb-updating log at the timestamp of 2.8859

[   2.8827 ] Writing partition
[   2.8859 ] tegradevflash --write DTB /home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/signed/kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt
[   2.8879 ] Cboot version 00.01.0000
[   3.4637 ] Writing partition DTB with /home/jetson/Downloads/jetson/Linux_for_Tegra/bootloader/signed/kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt

Am I supposed to consider that an encrypted dtb file was flashed into the partition?

Did you change anything in the device tree?

Haven’t changed. I use nvidia sdk manager to flash jetson-os without installing jetpacks. After entering the system, I just copied the dtb file from /boot/dtb/ to Linux_for_Tegra/

Please do not copy the dtb from /boot/dtb. Just use the origianl dtb and replace it under Linux_for_Tegra/kernel/dtb.

That one will take effect when running flash.sh.

Sorry but I don’t quite understand "the original dtb " means: Is this original dtb the one I find in “Linux_for_Tegra/kernel/dtb/” or the one in jetson-nano-emmc partition /boot/dtb/ ? Like I have implied before, I haven’t modified the dtb file, I just copy it from the module after its first boot.

When you try to update the dtb, only that one under Linux_for_Tegra/kernel/dtb would take effect.

The dtb under this location is not signed/encrypted. So please put a raw file here.

Also, I am not sure if you rename the dtb name again. By default, the dtb will not have “kernel” prefix in its name.

Thank you for your answer. Finally I successfully updated dtb by this command “sudo ./flash.sh -r -k DTB jetson-nano-emmc internal”, which however, still confuses me that what’s the difference between “internel” and “mmcblk0p1” on a jetson-nano-emmc module ?

internal is always the mmcblk0p1 on each board.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.