Tried to preserve access rights, but failed.
$ sudo tar xvfp fuseblob.tbz2 -C fuses_tests/
bootloader/odmfuse_pkc.xml
bootloader/fusecmd.sh
bootloader/mkpkc
bootloader/tegrabct_v2
bootloader/tegradevflash_v2
bootloader/tegraflash.py
bootloader/tegraflash_internal.py
bootloader/tegrahost_v2
bootloader/tegraparser_v2
bootloader/tegrarcm_v2
bootloader/tegrasign_v2
bootloader/P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg
bootloader/tegra186-mb1-bct-misc-si-l4t.cfg
bootloader/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg
bootloader/minimal_scr.cfg
bootloader/mobile_scr.cfg
bootloader/tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg
bootloader/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg
bootloader/tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg
bootloader/tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
bootloader/emmc.cfg
bootloader/nvtboot_recovery.bin
bootloader/preboot_d15_prod_cr.bin
bootloader/mce_mts_d15_prod_cr.bin
bootloader/tegra186-quill-p3310-1000-c03-00-base.dtb
bootloader/bpmp.bin
bootloader/tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb
bootloader/tos-trusty.img
bootloader/eks.img
bootloader/mb1_recovery_prod.bin
bootloader/nvtboot_recovery_cpu.bin
bootloader/flash.xml
bootloader/mb1_prod.bin
bootloader/spe.bin
bootloader/nvtboot.bin
bootloader/system.img
bootloader/cboot.bin
bootloader/camera-rtcpu-sce.img
bootloader/warmboot.bin
bootloader/boot.img
bootloader/tegra186-quill-p3310-1000-c03-00-base.dtb
bootloader/slot_metadata.bin
bootloader/xusb_sil_rel_fw
bootloader/adsp-fw.bin
bootloader/bmp.blob
bootloader$ sudo ./fusecmd.sh
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.0412 ] Burning fuses
[ 0.0412 ] Generating RCM messages
[ 0.0433 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm mb1_recovery_prod.bin 0 0
[ 0.0452 ] RCM 0 is saved as rcm_0.rcm
[ 0.0462 ] RCM 1 is saved as rcm_1.rcm
[ 0.0465 ] List of rcm files are saved in rcm_list.xml
[ 0.0465 ]
[ 0.0465 ] Signing RCM messages
[ 0.0485 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0503 ] Assuming zero filled SBK key
[ 0.0599 ]
[ 0.0599 ] Copying signature to RCM mesages
[ 0.0620 ] tegrarcm_v2 --chip 0x18 0 --updatesig rcm_list_signed.xml
[ 0.0648 ]
[ 0.0649 ] Boot Rom communication
[ 0.0667 ] tegrarcm_v2 --chip 0x18 0 --rcm rcm_list_signed.xml
[ 0.0687 ] BR_CID: 0x818010016441b749240000000afb0340
[ 0.2325 ] RCM version 0X180001
[ 0.4086 ] Boot Rom communication completed
[ 1.4152 ]
[ 2.4188 ] tegrarcm_v2 --isapplet
[ 2.4209 ] Applet version 01.00.0000
[ 2.5185 ]
[ 2.5227 ] Parsing fuse info as per xml file
[ 2.5250 ] tegraparser_v2 --fuse_info odmfuse_pkc.xml blow_fuse_data.bin
[ 2.5273 ] MagicId=0x45535546 version=0x1
[ 2.5281 ] node: name=ReservedOdm0 size=4
[ 2.5282 ] value=0x00000011
[ 2.5282 ] node: name=ReservedOdm1 size=4
[ 2.5282 ] value=0x00000111
[ 2.5282 ] node: name=ReservedOdm2 size=4
[ 2.5282 ] value=0x00000010
[ 2.5282 ] node: name=ReservedOdm3 size=4
[ 2.5282 ] value=0x00000001
[ 2.5282 ] node: name=ReservedOdm4 size=4
[ 2.5283 ] value=0x00000010
[ 2.5283 ] node: name=ReservedOdm5 size=4
[ 2.5283 ] value=0x00000001
[ 2.5283 ] node: name=ReservedOdm6 size=4
[ 2.5283 ] value=0x00000010
[ 2.5283 ] node: name=ReservedOdm7 size=4
[ 2.5283 ] value=0x00000001
[ 2.5284 ]
[ 2.5304 ] tegrarcm_v2 --oem burnfuses blow_fuse_data.bin
[ 2.5325 ] Applet version 01.00.0000
[ 2.9179 ] 0000000000000001: Oem commands are not supported
[ 2.9189 ] Fuse burning failed
[ 2.9189 ]
[ 2.9189 ] trying fusing with CPU binary
[ 2.9232 ] tegrasign_v2 --key None --getmode mode.txt
[ 2.9253 ] Assuming zero filled SBK key
[ 2.9256 ]
[ 2.9258 ] Parsing partition layout
[ 2.9279 ] tegraparser_v2 --pt flash.xml.tmp
[ 2.9314 ]
[ 2.9315 ] Creating list of images to be signed
[ 2.9334 ] tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
[ 2.9354 ] Stat for RECFILE failed
[ 2.9617 ]
Error: Return value 4
Command tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
Hi @TakenoriSato
Can you please share your initial values of the odm_reserved fuses ?
If you are sure about the odm_reserved values that you are using in the command line, try this:
# BOARDID=3310 FAB=C04 fuselevel=fuselevel_production ./odmfuse.sh --noburn -j -i 0x18 -c NS -o "0x00000011 0x00000111 0x00000010 0x00000001 0x00000010 0x00000001 0x00000010 0x00000001" jetson-tx2
Burn the odm_reserved fuses
$ mkdir /tmp/fuses_tests
$ tar xf fuseblob.tbz2 -C /tmp/fuses_tests
$ cd /tmp/fuses_tests/bootloader
# ./fusecmd.sh
Note:
# mean that performing the command with sudo
$ mean that performing the command without sudo
Let me know if you need help.
Hi, thanks for the update!
The new fuselevel
variable was added, right? I used the value for this box.
$ sudo BOARDID=3310 FAB=C04 fuselevel=fuselevel_production ./odmfuse.sh --noburn -j -i 0x18 -c NS -o "0xa080000a 0xb3fc62a3 0x2c7bee36 0x2d40c6b2 0xb502534b 0x8a0b0bd7 0xb03148bc 0x00000000" jetson-tx2
Board ID(3310) version(C04) sku() revision()
copying sdram_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg)... done.
copying misc_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-misc-si-l4t.cfg)... done.
copying pinmux_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg)... done.
copying scr_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/minimal_scr.cfg)... done.
copying scr_cold_boot_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/mobile_scr.cfg)... done.
copying pmc_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg)... done.
copying pmic_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg)... done.
copying br_cmd_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg)... done.
copying prod_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg)... done.
copying dev_params(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/emmc.cfg)... done.
Existing mb2_bootloader(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
Existing mts_preboot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/preboot_d15_prod_cr.bin) reused.
Existing mts_bootpack(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/mce_mts_d15_prod_cr.bin) reused.
copying bootloader_dtb(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb)... done.
Existing bpmp_fw(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/bpmp.bin) reused.
copying bpmp_fw_dtb(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb)... done.
Existing tlk(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/tos-trusty.img) reused.
Existing eks(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/eks.img) reused.
Existing mb1file(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/mb1_prod.bin) reused.
Existing spefile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/spe.bin) reused.
copying tegraboot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/nvtboot.bin)... done.
Existing tbcfile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/cboot.bin) reused.
Existing scefile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/camera-rtcpu-sce.img) reused.
copying wb0boot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/t186ref/warmboot.bin)... done.
done.
Existing cfg(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/flash.xml) reused.
Existing bl(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/nvtboot_recovery_cpu.bin) reused.
Existing applet(/l4tpool/l4timages/TX2G1.0/L4T32.3.1/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin) reused.
*** Generating fuse configuration ... done.
*** Start preparing fuse configuration ...
*** done.
Unfortunately, didn’t work again…
But, Can not open USB
has gone.
$ sudo ./fusecmd.sh
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.0432 ] Burning fuses
[ 0.0433 ] Generating RCM messages
[ 0.0453 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm mb1_recovery_prod.bin 0 0
[ 0.0473 ] RCM 0 is saved as rcm_0.rcm
[ 0.0483 ] RCM 1 is saved as rcm_1.rcm
[ 0.0483 ] List of rcm files are saved in rcm_list.xml
[ 0.0483 ]
[ 0.0483 ] Signing RCM messages
[ 0.0501 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0519 ] Assuming zero filled SBK key
[ 0.0608 ]
[ 0.0608 ] Copying signature to RCM mesages
[ 0.0628 ] tegrarcm_v2 --chip 0x18 0 --updatesig rcm_list_signed.xml
[ 0.0655 ]
[ 0.0656 ] Boot Rom communication
[ 0.0675 ] tegrarcm_v2 --chip 0x18 0 --rcm rcm_list_signed.xml
[ 0.0694 ] BR_CID: 0x818010016441b749240000000afb0340
[ 0.2277 ] RCM version 0X180001
[ 0.4035 ] Boot Rom communication completed
[ 1.4098 ]
[ 2.4133 ] tegrarcm_v2 --isapplet
[ 2.4154 ] Applet version 01.00.0000
[ 2.7525 ]
[ 2.7568 ] Parsing fuse info as per xml file
[ 2.7590 ] tegraparser_v2 --fuse_info odmfuse_pkc.xml blow_fuse_data.bin
[ 2.7610 ] MagicId=0x45535546 version=0x1
[ 2.7616 ] node: name=ReservedOdm0 size=4
[ 2.7616 ] value=0xa080000a
[ 2.7617 ] node: name=ReservedOdm1 size=4
[ 2.7617 ] value=0xb3fc62a3
[ 2.7617 ] node: name=ReservedOdm2 size=4
[ 2.7617 ] value=0x2c7bee36
[ 2.7617 ] node: name=ReservedOdm3 size=4
[ 2.7617 ] value=0x2d40c6b2
[ 2.7618 ] node: name=ReservedOdm4 size=4
[ 2.7618 ] value=0xb502534b
[ 2.7618 ] node: name=ReservedOdm5 size=4
[ 2.7618 ] value=0x8a0b0bd7
[ 2.7619 ] node: name=ReservedOdm6 size=4
[ 2.7619 ] value=0xb03148bc
[ 2.7619 ] node: name=ReservedOdm7 size=4
[ 2.7619 ] value=0x00000000
[ 2.7620 ]
[ 2.7642 ] tegrarcm_v2 --oem burnfuses blow_fuse_data.bin
[ 2.7662 ] Applet version 01.00.0000
[ 3.1050 ] 0000000000000001: Oem commands are not supported
[ 3.1056 ] Fuse burning failed
[ 3.1057 ]
[ 3.1058 ] trying fusing with CPU binary
[ 3.1098 ] tegrasign_v2 --key None --getmode mode.txt
[ 3.1119 ] Assuming zero filled SBK key
[ 3.1123 ]
[ 3.1124 ] Parsing partition layout
[ 3.1145 ] tegraparser_v2 --pt flash.xml.tmp
[ 3.1180 ]
[ 3.1181 ] Creating list of images to be signed
[ 3.1200 ] tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
[ 3.1217 ] Stat for RECFILE failed
[ 3.1487 ]
Error: Return value 4
Command tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
@ilies.chergui
Why do you use 0x00000001
for the 8th value? Isn’t it supposed to be 0x00000000
as the reserved one by NVIDIA?
Hi,
A user has shared his command:
Hi @DaneLLL ,
Using secureboot_R32.3.1 + JetPack_4.2.1_Linux_GA_P3310 + patched odmfuse.sh (according to this discussion ) to generate fuseblob.tbz2.
I have fused twice on this Tx2 module before.
First fuse :
$ BOARDID=3310 FAB=C04 sudo ./odmfuse.sh --noburn -i 0x18 -c NS -o "0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000001 0x53444423" jetson-tx2
mv fuseblob.tbz2 to another path and extract it.
$ sudo ./fusecmd.sh
Second fuse:
$ BOARDID=3310 FAB=C04 sudo ./odmfuse…
FYR. We re checking the issue of programming odm_lock fuse.
Hi Dane, thanks for sharing the post.
I hope the mess is resolved soon.
By the way, let me clarify the followings.
the default pkc_disable value
In the discussion of the case on Nano, we have figured out the default value is 0x1 (NS). So, only specifying -c PKC is not enough, but -p has to be set, too. It means a fuse burning has to be done by a single command.
But, ilies suggested to use -c NS. Is this meant to be only for the testing purpose? Or the default value on TX2 is different? (NS is 0x0?)
the value passed along with -o option
In the discussion of the case on Nano, we have figured out the value is in the form of a single HEX value instead of 8 HEX values.
In case of TX2, as ilies suggests, it is the form of 8 HEX values?
The most significant HEX value
According to the L4T 32.3.1 document , it says:
The value must be a quoted series of eight 32-bit HEX numbers such as:
“0xXXXXXXXX 0xXXXXXXXX 0xXXXXXXXX 0xXXXXXXXX 0xXXXXXXXX 0xXXXXXXXX 0xXXXXXXXX 0x00000000”
The last 32-bit HEX number must be 0x00000000 because these fuses are reserved for NVIDIA use.
But ilies used 0x00000001 for the 8th value, and he has reported it was successful. So, what is the correct behavior?
Hi,
pkc_disable fuse is on Jetson Nano/TX1 only. Not on TX2 and Xavier. We have fixed it in development guide of r32.4.2. Sorry for the wrong in formationin r32.3.1.
The form is different on Nano and TX2. Please set 8 32-bit HEX numbers on TX2.
Thanks for pointing this out. We hope these 32 bits are not touched but looks like some users touch the bits. Will check if this triggers the follow-up problems.
1 Like
Hi @DaneLLL
Thank you for sharing, this is very useful.
Concerning the fuse pkc_disable , I already check that on the Jetson TX2 and Xavier, that’s why I remove it in my patch, I wasn’t sure about TX1 and Jetson Nano.
The patch that I shared previously, I test it on different Jetsonn TX2 and it work fine.
@TakenoriSato , there is no specific value to set for the 8th value of the ODM_RESERVED fuses, this value only for tests purpose.
Sorry for the late response, I was quite busy.
Hi @ilies.chergui
It doesn’t work.
I have retried from scratch as below.
Check if fuses are not burned before
$ sudo cat /sys/devices/3820000.efuse/3820000.efuse\:efuse-burn/*
[sudo] password for nvidia:
0x00000000
0x00000000
0x00003000
0x00000000
cat: '/sys/devices/3820000.efuse/3820000.efuse:efuse-burn/driver': Is a directory
(null)
0x00000000000000000000000000000000
0x00000000000000000000000000000000
0x00000000000000000000000000000000
of:Nefuse-burnT<NULL>Cnvidia,tegra186-efuse-burn0x00000000
0x00000000
0x00000000
0x00000000
cat: '/sys/devices/3820000.efuse/3820000.efuse:efuse-burn/of_node': Is a directory
cat: '/sys/devices/3820000.efuse/3820000.efuse:efuse-burn/power': Is a directory
0x0000000000000000000000000000000000000000000000000000000000000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000
0x00000000000000000000000000000000
cat: '/sys/devices/3820000.efuse/3820000.efuse:efuse-burn/subsystem': Is a directory
DRIVER=tegra-fuse-burn
OF_NAME=efuse-burn
OF_FULLNAME=/efuse@3820000/efuse-burn
OF_COMPATIBLE_0=nvidia,tegra186-efuse-burn
OF_COMPATIBLE_N=1
MODALIAS=of:Nefuse-burnT<NULL>Cnvidia,tegra186-efuse-burn
$ ls -l /sys/devices/3820000.efuse/3820000.efuse\:efuse-burn/
total 0
-rw-rw---- 1 root root 4096 May 3 08:10 arm_jtag_disable
-rw-rw---- 1 root root 4096 May 3 08:10 boot_security_info
-rw-rw---- 1 root root 4096 May 3 08:10 calc_h2
-rw-rw---- 1 root root 4096 May 3 08:10 debug_authentication
lrwxrwxrwx 1 root root 0 May 3 08:10 driver -> ../../../bus/platform/drivers/tegra-fuse-burn
-rw-r--r-- 1 root root 4096 May 3 08:10 driver_override
-rw-rw---- 1 root root 4096 May 3 08:10 kek0
-rw-rw---- 1 root root 4096 May 3 08:10 kek1
-rw-rw---- 1 root root 4096 May 3 08:10 kek2
-r--r--r-- 1 root root 4096 May 3 08:10 modalias
-rw-rw---- 1 root root 4096 May 3 08:10 odm_h2
-rw-rw---- 1 root root 4096 May 3 08:10 odm_info
-rw-rw---- 1 root root 4096 May 3 08:10 odm_lock
-rw-rw---- 1 root root 4096 May 3 08:10 odm_production_mode
lrwxrwxrwx 1 root root 0 May 3 08:10 of_node -> ../../../firmware/devicetree/base/efuse@3820000/efuse-burn
drwxr-xr-x 2 root root 0 May 3 08:10 power
-rw-rw---- 1 root root 4096 May 3 08:10 public_key
-rw-rw---- 1 root root 4096 May 3 08:10 reserved_odm0
-rw-rw---- 1 root root 4096 May 3 08:10 reserved_odm1
-rw-rw---- 1 root root 4096 May 3 08:10 reserved_odm2
-rw-rw---- 1 root root 4096 May 3 08:10 reserved_odm3
-rw-rw---- 1 root root 4096 May 3 08:10 reserved_odm4
-rw-rw---- 1 root root 4096 May 3 08:10 reserved_odm5
-rw-rw---- 1 root root 4096 May 3 08:10 reserved_odm6
-rw-rw---- 1 root root 4096 May 3 08:10 reserved_odm7
-rw-rw---- 1 root root 4096 May 3 08:10 secure_boot_key
lrwxrwxrwx 1 root root 0 May 3 08:08 subsystem -> ../../../bus/platform
-rw-r--r-- 1 root root 4096 May 3 08:08 uevent
Check if a correct secureboot package is used
$ md5sum secureboot_R32.3.1_aarch64.tbz2
6b5b65cad7da45c5f31f0ffc69caca74 secureboot_R32.3.1_aarch64.tbz2
Prepare for the fuseblob generation
$ sudo tar xjvfp secureboot_R32.3.1_aarch64.tbz2
Linux_for_Tegra/
Linux_for_Tegra/odmfuse.sh
Linux_for_Tegra/bootloader/
Linux_for_Tegra/bootloader/LICENSE.tegrakeyhash
Linux_for_Tegra/bootloader/wb_sign.sh
Linux_for_Tegra/bootloader/README_secureboot.txt
Linux_for_Tegra/bootloader/tegrakeyhash
Linux_for_Tegra/bootloader/odmsign.func
Linux_for_Tegra/pkc/
Linux_for_Tegra/pkc/LICENSE.mkpkc
Linux_for_Tegra/pkc/LICENSE.nvsecuretool
Linux_for_Tegra/pkc/0001-warmboot-change-wb-prepare-code-for-t1x4.patch
Linux_for_Tegra/pkc/tegrafuse.sh
Linux_for_Tegra/pkc/mkpkc
Linux_for_Tegra/pkc/nvsecuretool
$ cd Linux_for_Tegra/
$ patch -p0 < ../0001_fix_burn_odm_reserved_fuses.patch.log
patching file odmfuse.sh
$ cd pkc/
$ patch -p0 < ../../0002-diplay-tegra-fuses-via-tegrafuse-script.patch.log
patching file tegrafuse.sh
$ cd ..
Generate a fuse blob
$ sudo BOARDID=3310 FAB=C04 fuselevel=fuselevel_production ./odmfuse.sh --noburn -j -i 0x18 -c NS -o "0xa080000a 0xb3fc62a3 0x2c7bee36 0x2d40c6b2 0xb502534b 0x8a0b0bd7 0xb03148bc 0x00000000" jetson-tx2
Board ID(3310) version(C04) sku() revision()
copying sdram_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg)... done.
copying misc_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-misc-si-l4t.cfg)... done.
copying pinmux_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg)... done.
copying scr_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/minimal_scr.cfg)... done.
copying scr_cold_boot_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/mobile_scr.cfg)... done.
copying pmc_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg)... done.
copying pmic_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg)... done.
copying br_cmd_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg)... done.
copying prod_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg)... done.
copying dev_params(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/emmc.cfg)... done.
Existing mb2_bootloader(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
Existing mts_preboot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/preboot_d15_prod_cr.bin) reused.
Existing mts_bootpack(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/mce_mts_d15_prod_cr.bin) reused.
copying bootloader_dtb(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb)... done.
Existing bpmp_fw(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/bpmp.bin) reused.
copying bpmp_fw_dtb(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb)... done.
Existing tlk(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/tos-trusty.img) reused.
Existing eks(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/eks.img) reused.
Existing mb1file(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/mb1_prod.bin) reused.
Existing spefile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/spe.bin) reused.
copying tegraboot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/nvtboot.bin)... done.
Existing tbcfile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/cboot.bin) reused.
Existing scefile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/camera-rtcpu-sce.img) reused.
copying wb0boot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/warmboot.bin)... done.
done.
Existing cfg(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/flash.xml) reused.
Existing bl(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/nvtboot_recovery_cpu.bin) reused.
Existing applet(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin) reused.
*** Generating fuse configuration ... done.
*** Start preparing fuse configuration ...
*** done.
Burn ODM fuses
$ mkdir /tmp/fuses_tests
$ tar xf fuseblob.tbz2 -C /tmp/fuses_tests
$ cd /tmp/fuses_tests/bootloader
tsato@TTVIEW71:/tmp/fuses_tests/bootloader$ sudo ./fusecmd.sh
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.0106 ] Burning fuses
[ 0.0106 ] Generating RCM messages
[ 0.0122 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm mb1_recovery_prod.bin 0 0
[ 0.0139 ] RCM 0 is saved as rcm_0.rcm
[ 0.0148 ] RCM 1 is saved as rcm_1.rcm
[ 0.0148 ] List of rcm files are saved in rcm_list.xml
[ 0.0148 ]
[ 0.0148 ] Signing RCM messages
[ 0.0164 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0182 ] Assuming zero filled SBK key
[ 0.0270 ]
[ 0.0270 ] Copying signature to RCM mesages
[ 0.0288 ] tegrarcm_v2 --chip 0x18 0 --updatesig rcm_list_signed.xml
[ 0.0315 ]
[ 0.0316 ] Boot Rom communication
[ 0.0334 ] tegrarcm_v2 --chip 0x18 0 --rcm rcm_list_signed.xml
[ 0.0353 ] BR_CID: 0x81801001643215c0040000000a0400c0
[ 0.1509 ] RCM version 0X180001
[ 0.2830 ] Boot Rom communication completed
[ 1.2897 ]
[ 2.2929 ] tegrarcm_v2 --isapplet
[ 2.2948 ] Applet version 01.00.0000
[ 2.5402 ]
[ 2.5444 ] Parsing fuse info as per xml file
[ 2.5466 ] tegraparser_v2 --fuse_info odmfuse_pkc.xml blow_fuse_data.bin
[ 2.5487 ] MagicId=0x45535546 version=0x1
[ 2.5492 ] node: name=ReservedOdm0 size=4
[ 2.5492 ] value=0xa080000a
[ 2.5492 ] node: name=ReservedOdm1 size=4
[ 2.5493 ] value=0xb3fc62a3
[ 2.5493 ] node: name=ReservedOdm2 size=4
[ 2.5493 ] value=0x2c7bee36
[ 2.5493 ] node: name=ReservedOdm3 size=4
[ 2.5493 ] value=0x2d40c6b2
[ 2.5493 ] node: name=ReservedOdm4 size=4
[ 2.5493 ] value=0xb502534b
[ 2.5493 ] node: name=ReservedOdm5 size=4
[ 2.5494 ] value=0x8a0b0bd7
[ 2.5494 ] node: name=ReservedOdm6 size=4
[ 2.5494 ] value=0xb03148bc
[ 2.5494 ] node: name=ReservedOdm7 size=4
[ 2.5494 ] value=0x00000000
[ 2.5494 ]
[ 2.5515 ] tegrarcm_v2 --oem burnfuses blow_fuse_data.bin
[ 2.5535 ] Applet version 01.00.0000
[ 2.8003 ] 0000000000000001: Oem commands are not supported
[ 2.8013 ] Fuse burning failed
[ 2.8013 ]
[ 2.8014 ] trying fusing with CPU binary
[ 2.8055 ] tegrasign_v2 --key None --getmode mode.txt
[ 2.8075 ] Assuming zero filled SBK key
[ 2.8078 ]
[ 2.8079 ] Parsing partition layout
[ 2.8100 ] tegraparser_v2 --pt flash.xml.tmp
[ 2.8134 ]
[ 2.8135 ] Creating list of images to be signed
[ 2.8156 ] tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
[ 2.8175 ] Stat for RECFILE failed
[ 2.8460 ]
Error: Return value 4
Command tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
So, what can be done from here? Any more logging? Or should we check when these TX2 carrier boards are shipped?
We are about running out of time for this.
Hi @TakenoriSato
Have you check in your xml file (flash.xml ) if a recovery kernel image is defined ?
In my flash.xml file, I don’t have any recovery kernel image defined.
Could you please try the following command line in your Jetson TX2 and share the result ?
$ sudo parted /dev/mmcblk0 print
Just to do comparison with my Jetson TX2.
@madisox , Could you please take a quick look here ? Do you have an idea about this Stat for RECFILE failed ?
Hi @ilies.chergui ,
Thanks for your suggestions.
$ grep recovery flash.xml
<description> **Required.** Contains recovery image. </description>
<description> **Required.** Contains recovery DTB image. </description>
<description> **Optional.** Reserved for future use by the recovery filesystem;
It doesn’t look so.
flash.xml.renamed_to_upload.log (30.9 KB)
Sure.
$ sudo parted /dev/mmcblk0 print
[sudo] password for nvidia:
Model: MMC 032G34 (sd/mmc)
Disk /dev/mmcblk0: 31.3GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2101kB 30.1GB 30.1GB ext4 APP msftdata
2 30.1GB 30.1GB 4194kB mts-bootpack msftdata
3 30.1GB 30.1GB 4194kB mts-bootpack_b msftdata
4 30.1GB 30.1GB 524kB cpu-bootloader msftdata
5 30.1GB 30.1GB 524kB cpu-bootloader_b msftdata
6 30.1GB 30.1GB 524kB bootloader-dtb msftdata
7 30.1GB 30.1GB 524kB bootloader-dtb_b msftdata
8 30.1GB 30.1GB 3146kB secure-os msftdata
9 30.1GB 30.1GB 3146kB secure-os_b msftdata
10 30.1GB 30.1GB 2097kB eks msftdata
11 30.1GB 30.1GB 4194kB adsp-fw msftdata
12 30.1GB 30.1GB 4194kB adsp-fw_b msftdata
13 30.1GB 30.1GB 618kB bpmp-fw msftdata
14 30.1GB 30.1GB 618kB bpmp-fw_b msftdata
15 30.1GB 30.1GB 512kB bpmp-fw-dtb msftdata
16 30.1GB 30.1GB 512kB bpmp-fw-dtb_b msftdata
17 30.1GB 30.1GB 2097kB sce-fw msftdata
18 30.1GB 30.1GB 2097kB sce-fw_b msftdata
19 30.1GB 30.1GB 6291kB sc7 msftdata
20 30.1GB 30.1GB 6291kB sc7_b msftdata
21 30.1GB 30.1GB 2097kB FBNAME msftdata
22 30.1GB 30.2GB 134MB BMP msftdata
23 30.2GB 30.4GB 134MB BMP_b msftdata
24 30.4GB 30.4GB 33.6MB SOS msftdata
25 30.4GB 30.5GB 33.6MB SOS_b msftdata
26 30.5GB 30.5GB 67.1MB kernel msftdata
27 30.5GB 30.6GB 67.1MB kernel_b msftdata
28 30.6GB 30.6GB 524kB kernel-dtb msftdata
29 30.6GB 30.6GB 524kB kernel-dtb_b msftdata
30 30.6GB 30.9GB 268MB CAC msftdata
31 30.9GB 31.3GB 414MB UDA msftdata
@TakenoriSato
The grep that you have applied here, Did you try that in this directory /tmp/fuses_tests ?
The xml file that you are sharing, is it from your fuseblob.tbz2 ?
Please try as follow:
$ cd /tmp/fuses_tests
$ grep -Hrni "recovery" flash.xml
I have done a comparison between the xml file that you are sharing and the original xml (flash_l4t_t186.xml) that you can find it L4T BSP, I found a lot of difference ?
Are you sure that you are using the L4T BSP for Jetson TX2 ?
Unrelated, but in my Jetson TX2, I have RECROOTFS instead of CAC in your case (Patition number 30), This is weird.
Yes.
ilies.chergui:
Please try as follow:
OK, here’s the result.
/tmp/fuses_tests/bootloader$ grep -Hrni "recovery" flash.xml
flash.xml:463: <description> **Required.** Contains recovery image. </description>
flash.xml:473: <description> **Required.** Contains recovery DTB image. </description>
flash.xml:544: <description> **Optional.** Reserved for future use by the recovery filesystem;
ilies.chergui:
I have done a comparison between the xml file that you are sharing and the original xml (flash_l4t_t186.xml) that you can find it L4T BSP, I found a lot of difference ?
Are you sure that you are using the L4T BSP for Jetson TX2 ?
Yes. It is our own, though.
ilies.chergui:
Unrelated, but in my Jetson TX2, I have RECROOTFS instead of CAC in your case (Patition number 30), This is weird.
I am going to check our manufacturing team. Can you point out what’s weird?
Hey @TakenoriSato
Actually, not, this is not weird.
I have done tests using L4T-BSP and Secureboot R32.3.1 with the new patch. It work fine for me.
Could you please try with the attached patch ?
$ cd /path/to/l4t_bsp
$ patch -p1 < /tmp/odmfuse_ilies/0001-Fix-issue-burn-odm-reserved-l4t-bsp-secureboot-r32.3.1.patch.log
0001-Fix-issue-burn-odm-reserved-l4t-bsp-secureboot-r32.3.1.patch.log (2.3 KB)
Let me know please if it work for you.
1 Like
@madisox , Could you please take a quick look here ? Do you have an idea about this Stat for RECFILE failed ?
Yeah, looks like NV forgot to update the odmfuse.sh script to account for the recovery image additions that were made in R32.3.1. Deleting the lines containing RECFILE and RECFILE-DTB from the XML file, as you do in your latest patch, should fix that issue. (There are other non-existent files mentioned in the XML, also due to partitions added between 32.2 and 32.3, but only those two are marked for signing.)
Thank you very much @madisox .
Totally agree with you, I think NV forgot to update also L4T BSP, I mean the conf files (e.g. for jetson TX2: p2771-0000-devkit.conf and p2771-0000.conf.common ).
Also, there is no default recovery image in the L4T BSP.
Also, there is no default recovery image in the L4T BSP.
It looks like it’s something they’ve got internally to support their OTA updates.
Hi @ilies.chergui ,
Finally, it did work!
Generating fuseblob
$ patch -p1 < ../0001-Fix-issue-burn-odm-reserved-l4t-bsp-secureboot-r32.3.1.patch.log
patching file odmfuse.sh
$ cd pkc/
$ patch -p0 < ../../0002-diplay-tegra-fuses-via-tegrafuse-script.patch.log
patching file tegrafuse.sh
$ cd ..
$ sudo BOARDID=3310 FAB=C04 fuselevel=fuselevel_production ./odmfuse.sh --noburn -j -i 0x18 -c NS -o "0xa080000a 0xb3fc62a3 0x2c7bee36 0x2d40c6b2 0xb502534b 0x8a0b0bd7 0xb03148bc 0x00000000" jetson-tx2
Board ID(3310) version(C04) sku() revision()
copying sdram_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg)... done.
copying misc_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-misc-si-l4t.cfg)... done.
copying pinmux_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg)... done.
copying scr_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/minimal_scr.cfg)... done.
copying scr_cold_boot_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/mobile_scr.cfg)... done.
copying pmc_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg)... done.
copying pmic_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg)... done.
copying br_cmd_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg)... done.
copying prod_config(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg)... done.
copying dev_params(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/BCT/emmc.cfg)... done.
Existing mb2_bootloader(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
Existing mts_preboot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/preboot_d15_prod_cr.bin) reused.
Existing mts_bootpack(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/mce_mts_d15_prod_cr.bin) reused.
copying bootloader_dtb(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb)... done.
Existing bpmp_fw(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/bpmp.bin) reused.
copying bpmp_fw_dtb(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb)... done.
Existing tlk(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/tos-trusty.img) reused.
Existing eks(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/eks.img) reused.
Existing mb1file(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/mb1_prod.bin) reused.
Existing spefile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/spe.bin) reused.
copying tegraboot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/nvtboot.bin)... done.
Existing tbcfile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/cboot.bin) reused.
Existing scefile(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/camera-rtcpu-sce.img) reused.
copying wb0boot(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/t186ref/warmboot.bin)... done.
done.
Existing cfg(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/flash.xml) reused.
Existing bl(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/nvtboot_recovery_cpu.bin) reused.
Existing applet(/l4tpool/l4timages/TX2G1.0/L4T32.3.1_patched/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin) reused.
*** Generating fuse configuration ... done.
*** Start preparing fuse configuration ...
*** done.
Burning fuses
$ sudo ./fusecmd.sh
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.0430 ] Burning fuses
[ 0.0430 ] Generating RCM messages
[ 0.0450 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm mb1_recovery_prod.bin 0 0
[ 0.0470 ] RCM 0 is saved as rcm_0.rcm
[ 0.0476 ] RCM 1 is saved as rcm_1.rcm
[ 0.0478 ] List of rcm files are saved in rcm_list.xml
[ 0.0478 ]
[ 0.0478 ] Signing RCM messages
[ 0.0496 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0514 ] Assuming zero filled SBK key
[ 0.0604 ]
[ 0.0605 ] Copying signature to RCM mesages
[ 0.0623 ] tegrarcm_v2 --chip 0x18 0 --updatesig rcm_list_signed.xml
[ 0.0649 ]
[ 0.0650 ] Boot Rom communication
[ 0.0670 ] tegrarcm_v2 --chip 0x18 0 --rcm rcm_list_signed.xml
[ 0.0690 ] BR_CID: 0x81801001643215c0040000000a0400c0
[ 0.1815 ] RCM version 0X180001
[ 0.3135 ] Boot Rom communication completed
[ 1.3201 ]
[ 2.3235 ] tegrarcm_v2 --isapplet
[ 2.3256 ] Applet version 01.00.0000
[ 2.5707 ]
[ 2.5751 ] Parsing fuse info as per xml file
[ 2.5773 ] tegraparser_v2 --fuse_info odmfuse_pkc.xml blow_fuse_data.bin
[ 2.5794 ] MagicId=0x45535546 version=0x1
[ 2.5802 ] node: name=ReservedOdm0 size=4
[ 2.5802 ] value=0xa080000a
[ 2.5802 ] node: name=ReservedOdm1 size=4
[ 2.5802 ] value=0xb3fc62a3
[ 2.5803 ] node: name=ReservedOdm2 size=4
[ 2.5803 ] value=0x2c7bee36
[ 2.5803 ] node: name=ReservedOdm3 size=4
[ 2.5803 ] value=0x2d40c6b2
[ 2.5803 ] node: name=ReservedOdm4 size=4
[ 2.5803 ] value=0xb502534b
[ 2.5803 ] node: name=ReservedOdm5 size=4
[ 2.5803 ] value=0x8a0b0bd7
[ 2.5804 ] node: name=ReservedOdm6 size=4
[ 2.5804 ] value=0xb03148bc
[ 2.5804 ] node: name=ReservedOdm7 size=4
[ 2.5804 ] value=0x00000000
[ 2.5804 ]
[ 2.5824 ] tegrarcm_v2 --oem burnfuses blow_fuse_data.bin
[ 2.5845 ] Applet version 01.00.0000
[ 2.8388 ] 0000000000000001: Oem commands are not supported
[ 2.8398 ] Fuse burning failed
[ 2.8398 ]
[ 2.8399 ] trying fusing with CPU binary
[ 2.8441 ] tegrasign_v2 --key None --getmode mode.txt
[ 2.8461 ] Assuming zero filled SBK key
[ 2.8464 ]
[ 2.8465 ] Parsing partition layout
[ 2.8486 ] tegraparser_v2 --pt flash.xml.tmp
[ 2.8519 ]
[ 2.8520 ] Creating list of images to be signed
[ 2.8538 ] tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
[ 2.8895 ]
[ 2.8896 ] Generating signatures
[ 2.8917 ] tegrasign_v2 --key None --list images_list.xml --pubkeyhash pub_key.key
[ 2.8936 ] Assuming zero filled SBK key
[ 3.2381 ]
[ 3.2382 ] Generating br-bct
[ 3.2400 ] Updating dev and MSS params in BR BCT
[ 3.2402 ] tegrabct_v2 --dev_param emmc.cfg --sdram P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --brbct br_bct.cfg --chip 0x18 0
[ 3.2726 ]
[ 3.2727 ] Updating bl info
[ 3.2747 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[ 3.2778 ]
[ 3.2779 ] Updating smd info
[ 3.2800 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 --updatesmdinfo flash.xml.bin
[ 3.2817 ]
[ 3.2817 ] Updating Odmdata
[ 3.2835 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 0 --updatefields Odmdata =0x90000
[ 3.2862 ]
[ 3.2862 ] Get Signed section of bct
[ 3.2878 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 0 --listbct bct_list.xml
[ 3.2897 ]
[ 3.2916 ] tegrasign_v2 --key None --list bct_list.xml --pubkeyhash pub_key.key
[ 3.2933 ] Assuming zero filled SBK key
[ 3.2939 ]
[ 3.2939 ] Updating BCT with signature
[ 3.2954 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 0 --updatesig bct_list_signed.xml
[ 3.2976 ]
[ 3.2976 ] Generating coldboot mb1-bct
[ 3.2992 ] tegrabct_v2 --chip 0x18 0 --mb1bct mb1_cold_boot_bct.cfg --sdram P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --misc tegra186-mb1-bct-misc-si-l4t.cfg --scr mobile_scr.cfg --pinmux tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmc tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --pmic tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --brcommand tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --prod tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[ 3.3011 ] MB1-BCT version: 0xf
[ 3.3014 ] Copying Sdram info from 2 to 3 set
[ 3.3266 ] Packing sdram param for instance[0]
[ 3.3271 ] Packing sdram param for instance[1]
[ 3.3276 ] Packing sdram param for instance[2]
[ 3.3280 ] Packing sdram param for instance[3]
[ 3.3285 ] Parsing config file :tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg
[ 3.3296 ] Appending platform config data of size :- 3032
[ 3.3296 ]
[ 3.3296 ] Parsing config file :mobile_scr.cfg
[ 3.3296 ] Appending platform config data of size :- 12240
[ 3.3296 ]
[ 3.3296 ] Parsing config file :tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg
[ 3.3296 ] Appending platform config data of size :- 24
[ 3.3296 ]
[ 3.3297 ] Parsing config file :tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg
[ 3.3297 ] Appending platform config data of size :- 672
[ 3.3297 ]
[ 3.3297 ] Parsing config file :tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg
[ 3.3297 ] Appending platform config data of size :- 64
[ 3.3297 ]
[ 3.3297 ] Parsing config file :tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[ 3.3297 ] Appending platform config data of size :- 1628
[ 3.3297 ]
[ 3.3298 ] Updating mb1-bct with firmware information
[ 3.3318 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_cold_boot_bct_MB1.bct --updatefwinfo flash.xml.bin
[ 3.3337 ] MB1-BCT version: 0xf
[ 3.3346 ]
[ 3.3347 ] Updating mb1-bct with storage information
[ 3.3361 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_cold_boot_bct_MB1.bct --updatestorageinfo flash.xml.bin
[ 3.3377 ] MB1-BCT version: 0xf
[ 3.3386 ]
[ 3.3403 ] tegrahost_v2 --chip 0x18 --align mb1_cold_boot_bct_MB1.bct
[ 3.3420 ]
[ 3.3439 ] tegrahost_v2 --appendsigheader mb1_cold_boot_bct_MB1.bct zerosbk
[ 3.3461 ]
[ 3.3481 ] tegrasign_v2 --key None --list mb1_cold_boot_bct_MB1_sigheader.bct_list.xml --pubkeyhash pub_key.key
[ 3.3499 ] Assuming zero filled SBK key
[ 3.3538 ]
[ 3.3563 ] tegrahost_v2 --updatesigheader mb1_cold_boot_bct_MB1_sigheader.bct.encrypt mb1_cold_boot_bct_MB1_sigheader.bct.hash zerosbk
[ 3.3585 ]
[ 3.3587 ] Generating recovery mb1-bct
[ 3.3603 ] tegrabct_v2 --chip 0x18 0 --mb1bct mb1_bct.cfg --sdram P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --misc tegra186-mb1-bct-misc-si-l4t.cfg --scr minimal_scr.cfg --pinmux tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmc tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --pmic tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --brcommand tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --prod tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[ 3.3622 ] MB1-BCT version: 0xf
[ 3.3626 ] Copying Sdram info from 2 to 3 set
[ 3.3859 ] Packing sdram param for instance[0]
[ 3.3863 ] Packing sdram param for instance[1]
[ 3.3868 ] Packing sdram param for instance[2]
[ 3.3873 ] Packing sdram param for instance[3]
[ 3.3878 ] Parsing config file :tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg
[ 3.3883 ] Appending platform config data of size :- 3032
[ 3.3883 ]
[ 3.3883 ] Parsing config file :minimal_scr.cfg
[ 3.3883 ] Appending platform config data of size :- 12240
[ 3.3883 ]
[ 3.3883 ] Parsing config file :tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg
[ 3.3884 ] Appending platform config data of size :- 24
[ 3.3884 ]
[ 3.3884 ] Parsing config file :tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg
[ 3.3884 ] Appending platform config data of size :- 672
[ 3.3884 ]
[ 3.3884 ] Parsing config file :tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg
[ 3.3884 ] Appending platform config data of size :- 64
[ 3.3884 ]
[ 3.3884 ] Parsing config file :tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[ 3.3885 ] Appending platform config data of size :- 1628
[ 3.3885 ]
[ 3.3885 ] Updating mb1-bct with firmware information
[ 3.3900 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_bct_MB1.bct --updatefwinfo flash.xml.bin
[ 3.3919 ] MB1-BCT version: 0xf
[ 3.3930 ]
[ 3.3930 ] Updating mb1-bct with storage information
[ 3.3947 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_bct_MB1.bct --updatestorageinfo flash.xml.bin
[ 3.3965 ] MB1-BCT version: 0xf
[ 3.3975 ]
[ 3.3995 ] tegrahost_v2 --chip 0x18 --align mb1_bct_MB1.bct
[ 3.4014 ]
[ 3.4033 ] tegrahost_v2 --appendsigheader mb1_bct_MB1.bct zerosbk
[ 3.4056 ]
[ 3.4081 ] tegrasign_v2 --key None --list mb1_bct_MB1_sigheader.bct_list.xml --pubkeyhash pub_key.key
[ 3.4100 ] Assuming zero filled SBK key
[ 3.4141 ]
[ 3.4169 ] tegrahost_v2 --updatesigheader mb1_bct_MB1_sigheader.bct.encrypt mb1_bct_MB1_sigheader.bct.hash zerosbk
[ 3.4192 ]
[ 3.4193 ] Copying signatures
[ 3.4212 ] tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[ 3.4864 ]
[ 3.4865 ] Sending BCTs
[ 3.4886 ] tegrarcm_v2 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
[ 3.4906 ] Applet version 01.00.0000
[ 3.7348 ] Sending bct_bootrom
[ 3.7351 ] [................................................] 100%
[ 3.7366 ] Sending bct_mb1
[ 3.7372 ] [................................................] 100%
[ 3.7535 ]
[ 3.7536 ] Generating blob
[ 3.7560 ] tegrahost_v2 --chip 0x18 --align blob_nvtboot_recovery_cpu.bin
[ 3.7582 ]
[ 3.7604 ] tegrahost_v2 --appendsigheader blob_nvtboot_recovery_cpu.bin zerosbk
[ 3.7635 ]
[ 3.7662 ] tegrasign_v2 --key None --list blob_nvtboot_recovery_cpu_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.7680 ] Assuming zero filled SBK key
[ 3.7824 ]
[ 3.7851 ] tegrahost_v2 --updatesigheader blob_nvtboot_recovery_cpu_sigheader.bin.encrypt blob_nvtboot_recovery_cpu_sigheader.bin.hash zerosbk
[ 3.7881 ]
[ 3.7905 ] tegrahost_v2 --chip 0x18 --align blob_nvtboot_recovery.bin
[ 3.7927 ]
[ 3.7948 ] tegrahost_v2 --appendsigheader blob_nvtboot_recovery.bin zerosbk
[ 3.7975 ]
[ 3.8000 ] tegrasign_v2 --key None --list blob_nvtboot_recovery_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.8017 ] Assuming zero filled SBK key
[ 3.8083 ]
[ 3.8109 ] tegrahost_v2 --updatesigheader blob_nvtboot_recovery_sigheader.bin.encrypt blob_nvtboot_recovery_sigheader.bin.hash zerosbk
[ 3.8131 ]
[ 3.8154 ] tegrahost_v2 --chip 0x18 --align blob_preboot_d15_prod_cr.bin
[ 3.8175 ]
[ 3.8195 ] tegrahost_v2 --appendsigheader blob_preboot_d15_prod_cr.bin zerosbk
[ 3.8220 ]
[ 3.8244 ] tegrasign_v2 --key None --list blob_preboot_d15_prod_cr_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.8263 ] Assuming zero filled SBK key
[ 3.8308 ]
[ 3.8333 ] tegrahost_v2 --updatesigheader blob_preboot_d15_prod_cr_sigheader.bin.encrypt blob_preboot_d15_prod_cr_sigheader.bin.hash zerosbk
[ 3.8357 ]
[ 3.8380 ] tegrahost_v2 --chip 0x18 --align blob_mce_mts_d15_prod_cr.bin
[ 3.8401 ]
[ 3.8422 ] tegrahost_v2 --appendsigheader blob_mce_mts_d15_prod_cr.bin zerosbk
[ 3.8509 ]
[ 3.8533 ] tegrasign_v2 --key None --list blob_mce_mts_d15_prod_cr_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.8549 ] Assuming zero filled SBK key
[ 3.9285 ]
[ 3.9312 ] tegrahost_v2 --updatesigheader blob_mce_mts_d15_prod_cr_sigheader.bin.encrypt blob_mce_mts_d15_prod_cr_sigheader.bin.hash zerosbk
[ 3.9394 ]
[ 3.9417 ] tegrahost_v2 --chip 0x18 --align blob_tegra186-quill-p3310-1000-c03-00-base.dtb
[ 3.9438 ]
[ 3.9458 ] tegrahost_v2 --appendsigheader blob_tegra186-quill-p3310-1000-c03-00-base.dtb zerosbk
[ 3.9484 ]
[ 3.9510 ] tegrasign_v2 --key None --list blob_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb_list.xml --pubkeyhash pub_key.key
[ 3.9527 ] Assuming zero filled SBK key
[ 3.9685 ]
[ 3.9709 ] tegrahost_v2 --updatesigheader blob_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt blob_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.hash zerosbk
[ 3.9742 ]
[ 3.9757 ] tegrahost_v2 --chip 0x18 --align blob_bpmp.bin
[ 3.9777 ]
[ 3.9796 ] tegrahost_v2 --appendsigheader blob_bpmp.bin zerosbk
[ 3.9837 ]
[ 3.9863 ] tegrasign_v2 --key None --list blob_bpmp_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.9881 ] Assuming zero filled SBK key
[ 4.0105 ]
[ 4.0130 ] tegrahost_v2 --updatesigheader blob_bpmp_sigheader.bin.encrypt blob_bpmp_sigheader.bin.hash zerosbk
[ 4.0168 ]
[ 4.0190 ] tegrahost_v2 --chip 0x18 --align blob_tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb
[ 4.0208 ]
[ 4.0229 ] tegrahost_v2 --appendsigheader blob_tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb zerosbk
[ 4.0268 ]
[ 4.0288 ] tegrasign_v2 --key None --list blob_tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2_sigheader.dtb_list.xml --pubkeyhash pub_key.key
[ 4.0307 ] Assuming zero filled SBK key
[ 4.0542 ]
[ 4.0570 ] tegrahost_v2 --updatesigheader blob_tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2_sigheader.dtb.encrypt blob_tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2_sigheader.dtb.hash zerosbk
[ 4.0606 ]
[ 4.0630 ] tegrahost_v2 --chip 0x18 --align blob_tos-trusty.img
[ 4.0649 ]
[ 4.0669 ] tegrahost_v2 --appendsigheader blob_tos-trusty.img zerosbk
[ 4.0696 ]
[ 4.0724 ] tegrasign_v2 --key None --list blob_tos-trusty_sigheader.img_list.xml --pubkeyhash pub_key.key
[ 4.0743 ] Assuming zero filled SBK key
[ 4.0932 ]
[ 4.0961 ] tegrahost_v2 --updatesigheader blob_tos-trusty_sigheader.img.encrypt blob_tos-trusty_sigheader.img.hash zerosbk
[ 4.0994 ]
[ 4.1018 ] tegrahost_v2 --chip 0x18 --align blob_eks.img
[ 4.1039 ]
[ 4.1057 ] tegrahost_v2 --appendsigheader blob_eks.img zerosbk
[ 4.1078 ]
[ 4.1101 ] tegrasign_v2 --key None --list blob_eks_sigheader.img_list.xml --pubkeyhash pub_key.key
[ 4.1118 ] Assuming zero filled SBK key
[ 4.1124 ]
[ 4.1148 ] tegrahost_v2 --updatesigheader blob_eks_sigheader.img.encrypt blob_eks_sigheader.img.hash zerosbk
[ 4.1169 ]
[ 4.1192 ] tegrahost_v2 --chip 0x18 --generateblob blob.xml blob.bin
[ 4.1210 ] number of images in blob are 9
[ 4.1215 ] blobsize is 4141640
[ 4.1217 ] Added binary blob_nvtboot_recovery_cpu_sigheader.bin.encrypt of size 220096
[ 4.1267 ] Added binary blob_nvtboot_recovery_sigheader.bin.encrypt of size 89776
[ 4.1275 ] Added binary blob_preboot_d15_prod_cr_sigheader.bin.encrypt of size 63104
[ 4.1285 ] Added binary blob_mce_mts_d15_prod_cr_sigheader.bin.encrypt of size 2082144
[ 4.1296 ] Added binary blob_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt of size 371632
[ 4.1307 ] Added binary blob_bpmp_sigheader.bin.encrypt of size 533904
[ 4.1314 ] Added binary blob_tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2_sigheader.dtb.encrypt of size 466240
[ 4.1328 ] Added binary blob_tos-trusty_sigheader.img.encrypt of size 313152
[ 4.1337 ] Added binary blob_eks_sigheader.img.encrypt of size 1440
[ 4.1337 ]
[ 4.1338 ] Sending bootloader and pre-requisite binaries
[ 4.1357 ] tegrarcm_v2 --download blob blob.bin
[ 4.1374 ] Applet version 01.00.0000
[ 4.3833 ] Sending blob
[ 4.3835 ] [................................................] 100%
[ 4.8358 ]
[ 4.8381 ] tegrarcm_v2 --boot recovery
[ 4.8401 ] Applet version 01.00.0000
[ 5.0920 ]
[ 6.0953 ] tegrarcm_v2 --isapplet
[ 6.3453 ]
[ 6.3475 ] tegradevflash_v2 --iscpubl
[ 6.3495 ] Cannot Open USB
[ 7.0942 ]
[ 8.0977 ] tegrarcm_v2 --isapplet
[ 8.3424 ]
[ 8.3446 ] tegradevflash_v2 --iscpubl
[ 8.3466 ] Bootloader version 01.00.0000
[ 8.4746 ] Bootloader version 01.00.0000
[ 8.4758 ]
[ 8.4758 ] tegradevflash_v2 --oem burnfuses blow_fuse_data.bin
[ 8.4779 ] Bootloader version 01.00.0000
[ 8.6147 ] Fusing burning successful
[ 8.8553 ]
[ 8.8574 ] tegradevflash_v2 --reboot recovery
[ 8.8595 ] Bootloader version 01.00.0000
[ 8.9830 ]
Check if odm_reserved fuses have been correctly burned.
$ sudo cat /sys/devices/3820000.efuse/3820000.efuse\:efuse-burn/reserved_odm*
0xa080000a
0xb3fc62a3
0x2c7bee36
0x2d40c6b2
0xb502534b
0x8a0b0bd7
0xb03148bc
0x00000000
@DaneLLL , thanks for your persistent support.
@TakenoriSato I’m glad that it work for you.