KEK Fuse burn failed on Jetson Xavier R32.3.1

Hi, Guys

Burning KEK2 fuse failed on my Jetson Xavier develop kit (sys version: L4T R32.3.1), below are cmd info and steps:

1, Run “sudo ./odmfuse.sh -c NS -i 0x19 --KEK2 fuse-key/kek2.txt --noburn jetson-xavier” to test if cmd work,it seems sucess and create “fuseblob.tbz2”
2, connect developer kit board and set RCM mode
3, Run “sudo ./odmfuse.sh -c NS -i 0x19 --KEK2 fuse-key/kek2.txt jetson-xavier”, but failed.

------------out put logs--------------
Board ID(2888) version(400) sku(0004) revision(K.0)
copying sdram_config1(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-memcfg-sw-override.cfg)… done.

Existing mb2_bootloader(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/nvtboot_recovery_t194.bin) reused.

Existing applet(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod.bin) reused.
*** Generating fuse configuration … done.
*** Start fusing …
./tegraflash.py --sdram_config tegra194-mb1-bct-memcfg-p2888.cfg,tegra194-memcfg-sw-override.cfg --misc_config tegra194-mb1-bct-misc-flash.cfg --pinmux_config tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg --scr_config tegra194-mb1-bct-scr-cbb-mini.cfg --scr_cold_boot_config tegra194-mb1-bct-scr-cbb-mini.cfg --pmc_config tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg --pmic_config tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg --br_cmd_config tegra194-mb1-bct-reset-p2888-0000-p2822-0000.cfg --prod_config tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg --dev_params tegra194-br-bct-sdmmc.cfg --misc_cold_boot_config tegra194-mb1-bct-misc-l4t.cfg --device_config tegra19x-mb1-bct-device-sdmmc.cfg --uphy_config tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg --gpioint_config tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins “mb2_bootloader nvtboot_recovery_t194.bin; mts_preboot preboot_c10_prod_cr.bin; mts_mce mce_c10_prod_cr.bin; mts_proper mts_c10_prod_cr.bin; bootloader_dtb tegra194-p2888-0001-p2822-0000.dtb; bpmp_fw bpmp_t194.bin; bpmp_fw_dtb tegra194-a02-bpmp-p2888-a04.dtb; tlk tos-trusty_t194.img; eks eks.img; kernel boot.img; kernel_dtb tegra194-p2888-0001-p2822-0000.dtb; spe_fw spe_t194.bin” --cfg flash.xml --bl nvtboot_recovery_cpu_t194.bin --odmdata 0x9190000 --chip 0x19 --applet mb1_t194_prod.bin --cmd “burnfuses odmfuse_pkc.xml” --skipuid
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.0076 ] Burning fuses
[ 0.0076 ] Generating RCM messages
[ 0.0082 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader mb1_t194_prod.bin zerosbk
[ 0.0088 ] Header already present for mb1_t194_prod.bin
[ 0.0109 ]
[ 0.0115 ] tegrasign_v2 --key None --getmode mode.txt
[ 0.0120 ] Assuming zero filled SBK key
[ 0.0121 ]
[ 0.0127 ] tegrasign_v2 --key None --file mb1_t194_prod_sigheader.bin --offset 2960 --length 1136 --pubkeyhash pub_key.key
[ 0.0132 ] Assuming zero filled SBK key
[ 0.0135 ]
[ 0.0141 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mb1_t194_prod_sigheader.bin mb1_t194_prod_sigheader.hash zerosbk
[ 0.0167 ]
[ 0.0173 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg sfuse.bin
[ 0.0179 ]
[ 0.0185 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm mb1_t194_prod_sigheader.bin 0 0
[ 0.0191 ] RCM 0 is saved as rcm_0.rcm
[ 0.0212 ] RCM 1 is saved as rcm_1.rcm
[ 0.0212 ] RCM 2 is saved as rcm_2.rcm
[ 0.0212 ] List of rcm files are saved in rcm_list.xml
[ 0.0212 ]
[ 0.0212 ] Signing RCM messages
[ 0.0218 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key --getmontgomeryvalues montgomery.bin
[ 0.0223 ] Assuming zero filled SBK key
[ 0.0226 ]
[ 0.0227 ] Copying signature to RCM mesages
[ 0.0232 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[ 0.0241 ]
[ 0.0242 ] Boot Rom communication
[ 0.0247 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0252 ] Boot Rom communication failed
[ 5.0664 ]
Error: Return value 3
Command tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
failed.
------------------end of log-------------------

My Question is:
I just want to burn KEK fuse but don’t enable PKC now,is it OK/permitted? which means using odmfuse “-c NS” but without “-p -k <priv.pem>” .

or MUST burn all fuse withe “-p” in one single burn cmd/step?

Thanks.

hello mowa,

please refer to Topic 82518 for the patch to correct KEK256 key burning of odmfuse script options
you might also check Topic 121931 to add support for reading KEK0, KEK1, KEK2 fuses on Xavier.
thanks

Hi Jerry

Thanks for your reply,But sorry,I‘m afraid these two topics doesn’t help to this issue.

Topic 82518 has two issues &solution:
First, danwalkes describe TX 2 PKC fuse burn failed, and it is solved by the patch , which add “–skipuid” for tegraflash.py command executing on TX2.
Second, ilies.chergui describe the odmfuse.sh bug for KEK256 fuse on TX2, this bug is also fit to Xavier 's odmfuse.sh. But I am burning KEK2 fuse,not affect KEK256 bug. And I tested.

Topic 121931 is that I asked and you give the right & useful answer, Thanks Again. I tested it, KEK/0/1/2 fuses can be read as default zero values before burn new values. (burning new values is what I am trying now but failed…)

Below is a more detail log. Xavier odmfuse.sh will call twice ./tegraflash.py and Boot Rom Communication using“”tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid“” , Xavier odmfuse.sh add “–skipuid” every time.

Could you help to make sure :
Is this operation support?: just fuse other fuses(like kek2) without enable PKC(using-p -k priv.pem)
like using this command:
sudo ./odmfuse.sh -c NS -i 0x19 --KEK2 ./kek2.txt jetson-xavier

Blockquote
----------a full fuse burning log------------------
[mowa@hp-z240:Linux_for_Tegra]$ sudo ./odmfuse.sh -c NS -i 0x19 --KEK2 ./kek2.txt jetson-xavier
[sudo] password for mowa:
copying soft_fuses(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
copying soft_fuses(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
./tegraflash.py --chip 0x19 --applet “/home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod.bin” --skipuid --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins “mb2_applet nvtboot_applet_t194.bin” --cmd “dump eeprom boardinfo cvm.bin;reboot recovery”
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.0036 ] Generating RCM messages
[ 0.0045 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader /home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod.bin zerosbk
[ 0.0053 ] Header already present for /home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod.bin
[ 0.0082 ]
[ 0.0090 ] tegrasign_v2 --key None --getmode mode.txt
[ 0.0096 ] Assuming zero filled SBK key
[ 0.0097 ]
[ 0.0105 ] tegrasign_v2 --key None --file /home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod_sigheader.bin --offset 2960 --length 1136 --pubkeyhash pub_key.key
[ 0.0111 ] Assuming zero filled SBK key
[ 0.0115 ]
[ 0.0122 ] tegrahost_v2 --chip 0x19 0 --updatesigheader /home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod_sigheader.bin /home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod_sigheader.hash zerosbk
[ 0.0154 ]
[ 0.0162 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg.pdf sfuse.bin
[ 0.0169 ]
[ 0.0176 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm /home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod_sigheader.bin 0 0
[ 0.0182 ] RCM 0 is saved as rcm_0.rcm
[ 0.0208 ] RCM 1 is saved as rcm_1.rcm
[ 0.0208 ] RCM 2 is saved as rcm_2.rcm
[ 0.0208 ] List of rcm files are saved in rcm_list.xml
[ 0.0208 ]
[ 0.0208 ] Signing RCM messages
[ 0.0214 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key --getmontgomeryvalues montgomery.bin
[ 0.0221 ] Assuming zero filled SBK key
[ 0.0225 ]
[ 0.0225 ] Copying signature to RCM mesages
[ 0.0232 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[ 0.0243 ]
[ 0.0243 ] Boot Rom communication
[ 0.0249 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0255 ] RCM version 0X190001
[ 0.0264 ] Boot Rom communication completed
[ 1.0440 ]
[ 2.0483 ] tegrarcm_v2 --isapplet
[ 2.0510 ] Applet version 01.00.0000
[ 2.0699 ]
[ 2.0730 ] tegrarcm_v2 --ismb2
[ 2.1097 ]
[ 2.1127 ] tegrahost_v2 --chip 0x19 --align nvtboot_applet_t194.bin
[ 2.1155 ]
[ 2.1180 ] tegrahost_v2 --chip 0x19 0 --magicid PLDT --appendsigheader nvtboot_applet_t194.bin zerosbk
[ 2.1204 ] adding BCH for nvtboot_applet_t194.bin
[ 2.1250 ]
[ 2.1261 ] tegrasign_v2 --key None --list nvtboot_applet_t194_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 2.1268 ] Assuming zero filled SBK key
[ 2.1270 ]
[ 2.1286 ] tegrahost_v2 --chip 0x19 0 --updatesigheader nvtboot_applet_t194_sigheader.bin.encrypt nvtboot_applet_t194_sigheader.bin.hash zerosbk
[ 2.1306 ]
[ 2.1314 ] tegrarcm_v2 --download mb2 nvtboot_applet_t194_sigheader.bin.encrypt
[ 2.1321 ] Applet version 01.00.0000
[ 2.1492 ] Sending mb2
[ 2.1493 ] […] 100%
[ 2.1629 ]
[ 2.1655 ] tegrarcm_v2 --boot recovery
[ 2.1679 ] Applet version 01.00.0000
[ 2.1893 ]
[ 3.1937 ] tegrarcm_v2 --isapplet
[ 3.5314 ]
[ 3.5344 ] tegrarcm_v2 --ismb2
[ 3.5370 ] MB2 Applet version 01.00.0000
[ 3.5543 ]
[ 3.5570 ] tegrarcm_v2 --ismb2
[ 3.5593 ] MB2 Applet version 01.00.0000
[ 3.5943 ]
[ 3.5969 ] Retrieving EEPROM data
[ 3.5971 ] tegrarcm_v2 --oem platformdetails eeprom cvm /home/mowa/work-xavier/Linux_for_Tegra/bootloader/cvm.bin
[ 3.5994 ] MB2 Applet version 01.00.0000
[ 3.6367 ] Saved platform info in /home/mowa/work-xavier/Linux_for_Tegra/bootloader/cvm.bin
[ 3.6708 ]
[ 3.6710 ] Rebooting to recovery mode
[ 3.6736 ] tegrarcm_v2 --ismb2
[ 3.6759 ] MB2 Applet version 01.00.0000
[ 3.6943 ]
[ 3.6943 ] Rebooting to recovery mode
[ 3.6969 ] tegrarcm_v2 --reboot recovery
[ 3.6992 ] MB2 Applet version 01.00.0000
[ 3.7411 ]
copying sdram_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-memcfg-p2888.cfg)… done.
copying sdram_config1(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-memcfg-sw-override.cfg)… done.
copying misc_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-misc-flash.cfg)… done.
copying pinmux_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg)… done.
copying scr_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-scr-cbb-mini.cfg)… done.
copying scr_cold_boot_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-scr-cbb-mini.cfg)… done.
copying pmc_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg)… done.
copying pmic_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg)… done.
copying br_cmd_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-reset-p2888-0000-p2822-0000.cfg)… done.
copying prod_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg)… done.
copying dev_params(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-br-bct-sdmmc.cfg)… done.
copying misc_cold_boot_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-misc-l4t.cfg)… done.
copying device_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-bct-device-sdmmc.cfg)… done.
copying uphy_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg)… done.
copying gpioint_config(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg)… done.
copying soft_fuses(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
Existing mb2_bootloader(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/nvtboot_recovery_t194.bin) reused.
Existing mts_preboot(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/preboot_c10_prod_cr.bin) reused.
Existing mts_mce(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/mce_c10_prod_cr.bin) reused.
Existing mts_proper(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/mts_c10_prod_cr.bin) reused.
copying bootloader_dtb(/home/mowa/work-xavier/Linux_for_Tegra/kernel/dtb/tegra194-p2888-0001-p2822-0000.dtb)… done.
Existing bpmp_fw(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/bpmp_t194.bin) reused.
copying bpmp_fw_dtb(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/t186ref/tegra194-a02-bpmp-p2888-a04.dtb)… done.
Existing tlk(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/tos-trusty_t194.img) reused.
Existing eks(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/eks.img) reused.
Existing spe_fw(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/spe_t194.bin) reused.
Existing mb1file(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod.bin) reused.
Existing spefile(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/spe_t194.bin) reused.
Existing tegraboot(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/nvtboot_t194.bin) reused.
Existing tbcfile(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/cboot_t194.bin) reused.
Existing scefile(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/camera-rtcpu-sce.img) reused.
Existing camerafw(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/camera-rtcpu-rce.img) reused.
Existing wb0boot(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/warmboot_t194_prod.bin) reused.
done.
Existing cfg(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/flash.xml) reused.
Existing bl(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/nvtboot_recovery_cpu_t194.bin) reused.
Existing applet(/home/mowa/work-xavier/Linux_for_Tegra/bootloader/mb1_t194_prod.bin) reused.
*** Generating fuse configuration … done.
*** Start fusing …
./tegraflash.py --sdram_config tegra194-mb1-bct-memcfg-p2888.cfg,tegra194-memcfg-sw-override.cfg --misc_config tegra194-mb1-bct-misc-flash.cfg --pinmux_config tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg --scr_config tegra194-mb1-bct-scr-cbb-mini.cfg --scr_cold_boot_config tegra194-mb1-bct-scr-cbb-mini.cfg --pmc_config tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg --pmic_config tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg --br_cmd_config tegra194-mb1-bct-reset-p2888-0000-p2822-0000.cfg --prod_config tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg --dev_params tegra194-br-bct-sdmmc.cfg --misc_cold_boot_config tegra194-mb1-bct-misc-l4t.cfg --device_config tegra19x-mb1-bct-device-sdmmc.cfg --uphy_config tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg --gpioint_config tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins “mb2_bootloader nvtboot_recovery_t194.bin; mts_preboot preboot_c10_prod_cr.bin; mts_mce mce_c10_prod_cr.bin; mts_proper mts_c10_prod_cr.bin; bootloader_dtb tegra194-p2888-0001-p2822-0000.dtb; bpmp_fw bpmp_t194.bin; bpmp_fw_dtb tegra194-a02-bpmp-p2888-a04.dtb; tlk tos-trusty_t194.img; eks eks.img; kernel boot.img; kernel_dtb tegra194-p2888-0001-p2822-0000.dtb; spe_fw spe_t194.bin” --cfg flash.xml --bl nvtboot_recovery_cpu_t194.bin --odmdata 0x9190000 --chip 0x19 --applet mb1_t194_prod.bin --cmd “burnfuses odmfuse_pkc.xml” --skipuid
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.0107 ] Generating RCM messages
[ 0.0114 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader mb1_t194_prod.bin zerosbk
[ 0.0120 ] Header already present for mb1_t194_prod.bin
[ 0.0146 ]
[ 0.0152 ] tegrasign_v2 --key None --getmode mode.txt
[ 0.0158 ] Assuming zero filled SBK key
[ 0.0159 ]
[ 0.0166 ] tegrasign_v2 --key None --file mb1_t194_prod_sigheader.bin --offset 2960 --length 1136 --pubkeyhash pub_key.key
[ 0.0172 ] Assuming zero filled SBK key
[ 0.0176 ]
[ 0.0182 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mb1_t194_prod_sigheader.bin mb1_t194_prod_sigheader.hash zerosbk
[ 0.0214 ]
[ 0.0220 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg sfuse.bin
[ 0.0228 ]
[ 0.0235 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm mb1_t194_prod_sigheader.bin 0 0
[ 0.0241 ] RCM 0 is saved as rcm_0.rcm
[ 0.0266 ] RCM 1 is saved as rcm_1.rcm
[ 0.0266 ] RCM 2 is saved as rcm_2.rcm
[ 0.0266 ] List of rcm files are saved in rcm_list.xml
[ 0.0266 ]
[ 0.0266 ] Signing RCM messages
[ 0.0273 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key --getmontgomeryvalues montgomery.bin
[ 0.0279 ] Assuming zero filled SBK key
[ 0.0283 ]
[ 0.0283 ] Copying signature to RCM mesages
[ 0.0290 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[ 0.0300 ]
[ 0.0300 ] Boot Rom communication
[ 0.0306 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0312 ] Boot Rom communication failed
[ 5.2009 ]
Error: Return value 3
Command tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
failed.
---------------end---------------

hello mowa,

  1. please note that, NS mode does NOT accept key files.
  2. may I know had your done Xavier fusing before?
  3. you should consider to enable “-p” options as your final step; fuse access will block once odm production mode burned.
  4. you may also refer to Signing and Flashing Boot Files for the procedures to sign and flash boot files.

Thanks Jerry!

1、GOT it,so burn any key file MUST enable pkc.
2、NO,this is my ever first experience with xavier and burning fuse
3、Yes,I think we should add “-p” for final burn step after burn other fuses and test ok
4、Yes,I will. But unfortunately I can NOT burn fuse/keys, so not doing sign & flash now.

I tried this morning, but failed same.
The second Boot Rom Communication Failed as before.
I also found that read uid command ONLY can run once when xavier in RCM mode
【read ECID cmd】: sudo ./bootloader/tegrarcm_v2 --uid
If run twice,it will failed

【–noburn】 --noburn test looks fine.

【real burn】

【cmd】sudo ./odmfuse.sh -c pkc -i 0x19 -k fuse-key/rsa_priv.pem --KEK2 fuse-key/kek2.txt jetson-xavier

【odmfuse-pkc.xml】
genericfuse MagicId=“0x45535546” version=“1.0.0”
fuse name=“JtagDisable” size=“4” value=“0x1”
fuse name=“Kek2” size=“16” value=“0x5050505000000000A0A0A0A000000000”
fuse name=“PublicKeyHash” size=“32” value=“0x641ae1df98c834e9423da107bb8dbfe72f1fae3baf8acd141182d5d3fcfe9019”
fuse name=“BootSecurityInfo” size=“4” value=“0x1”

【full log】
[jd@hp-zhan86:Linux_for_Tegra]$ sudo ./odmfuse.sh -c PKC -i 0x19 -k fuse-key/rsa_priv.pem --KEK2 fuse-key/kek2.txt jetson-xavier
Board ID(2888) version(400) sku(0004) revision(K.0)
copying soft_fuses(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
copying soft_fuses(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
./tegraflash.py --chip 0x19 --applet “/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod.bin” --skipuid --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins “mb2_applet nvtboot_applet_t194.bin” --cmd “dump eeprom boardinfo cvm.bin;reboot recovery”
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.0037 ] Generating RCM messages
[ 0.0046 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader /home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod.bin zerosbk
[ 0.0053 ] Header already present for /home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod.bin
[ 0.0082 ]
[ 0.0089 ] tegrasign_v2 --key None --getmode mode.txt
[ 0.0096 ] Assuming zero filled SBK key
[ 0.0097 ]
[ 0.0104 ] tegrasign_v2 --key None --file /home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod_sigheader.bin --offset 2960 --length 1136 --pubkeyhash pub_key.key
[ 0.0110 ] Assuming zero filled SBK key
[ 0.0114 ]
[ 0.0121 ] tegrahost_v2 --chip 0x19 0 --updatesigheader /home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod_sigheader.bin /home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod_sigheader.hash zerosbk
[ 0.0152 ]
[ 0.0159 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg.pdf sfuse.bin
[ 0.0166 ]
[ 0.0172 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm /home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod_sigheader.bin 0 0
[ 0.0178 ] RCM 0 is saved as rcm_0.rcm
[ 0.0202 ] RCM 1 is saved as rcm_1.rcm
[ 0.0202 ] RCM 2 is saved as rcm_2.rcm
[ 0.0202 ] List of rcm files are saved in rcm_list.xml
[ 0.0202 ]
[ 0.0202 ] Signing RCM messages
[ 0.0208 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key --getmontgomeryvalues montgomery.bin
[ 0.0214 ] Assuming zero filled SBK key
[ 0.0217 ]
[ 0.0218 ] Copying signature to RCM mesages
[ 0.0224 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[ 0.0234 ]
[ 0.0234 ] Boot Rom communication
[ 0.0240 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0246 ] RCM version 0X190001
[ 0.0255 ] Boot Rom communication completed
[ 1.0430 ]
[ 2.0475 ] tegrarcm_v2 --isapplet
[ 2.0502 ] Applet version 01.00.0000
[ 2.0698 ]
[ 2.0730 ] tegrarcm_v2 --ismb2
[ 2.0941 ]
[ 2.0972 ] tegrahost_v2 --chip 0x19 --align nvtboot_applet_t194.bin
[ 2.0999 ]
[ 2.1025 ] tegrahost_v2 --chip 0x19 0 --magicid PLDT --appendsigheader nvtboot_applet_t194.bin zerosbk
[ 2.1051 ] adding BCH for nvtboot_applet_t194.bin
[ 2.1092 ]
[ 2.1100 ] tegrasign_v2 --key None --list nvtboot_applet_t194_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 2.1105 ] Assuming zero filled SBK key
[ 2.1107 ]
[ 2.1119 ] tegrahost_v2 --chip 0x19 0 --updatesigheader nvtboot_applet_t194_sigheader.bin.encrypt nvtboot_applet_t194_sigheader.bin.hash zerosbk
[ 2.1133 ]
[ 2.1140 ] tegrarcm_v2 --download mb2 nvtboot_applet_t194_sigheader.bin.encrypt
[ 2.1145 ] Applet version 01.00.0000
[ 2.1331 ] Sending mb2
[ 2.1332 ] […] 100%
[ 2.1468 ]
[ 2.1477 ] tegrarcm_v2 --boot recovery
[ 2.1485 ] Applet version 01.00.0000
[ 2.1697 ]
[ 3.1737 ] tegrarcm_v2 --isapplet
[ 3.1801 ]
[ 3.1832 ] tegrarcm_v2 --ismb2
[ 3.1858 ] MB2 Applet version 01.00.0000
[ 3.2178 ]
[ 3.2207 ] tegrarcm_v2 --ismb2
[ 3.2233 ] MB2 Applet version 01.00.0000
[ 3.2582 ]
[ 3.2612 ] Retrieving EEPROM data
[ 3.2615 ] tegrarcm_v2 --oem platformdetails eeprom cvm /home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/cvm.bin
[ 3.2641 ] MB2 Applet version 01.00.0000
[ 3.3005 ] Saved platform info in /home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/cvm.bin
[ 3.3348 ]
[ 3.3350 ] Rebooting to recovery mode
[ 3.3376 ] tegrarcm_v2 --ismb2
[ 3.3401 ] MB2 Applet version 01.00.0000
[ 3.3581 ]
[ 3.3582 ] Rebooting to recovery mode
[ 3.3610 ] tegrarcm_v2 --reboot recovery
[ 3.3634 ] MB2 Applet version 01.00.0000
[ 3.4053 ]
copying sdram_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-memcfg-p2888.cfg)… done.
copying sdram_config1(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-memcfg-sw-override.cfg)… done.
copying misc_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-misc-flash.cfg)… done.
copying pinmux_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg)… done.
copying scr_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-scr-cbb-mini.cfg)… done.
copying scr_cold_boot_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-scr-cbb-mini.cfg)… done.
copying pmc_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg)… done.
copying pmic_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg)… done.
copying br_cmd_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-reset-p2888-0000-p2822-0000.cfg)… done.
copying prod_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg)… done.
copying dev_params(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-br-bct-sdmmc.cfg)… done.
copying misc_cold_boot_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-misc-l4t.cfg)… done.
copying device_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-bct-device-sdmmc.cfg)… done.
copying uphy_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg)… done.
copying gpioint_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg)… done.
copying soft_fuses(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
Existing mb2_bootloader(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/nvtboot_recovery_t194.bin) reused.
Existing mts_preboot(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/preboot_c10_prod_cr.bin) reused.
Existing mts_mce(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mce_c10_prod_cr.bin) reused.
Existing mts_proper(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mts_c10_prod_cr.bin) reused.
copying bootloader_dtb(/home/jd/xavier-R32.3.1/Linux_for_Tegra/kernel/dtb/tegra194-p2888-0001-p2822-0000.dtb)… done.
Existing bpmp_fw(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/bpmp_t194.bin) reused.
copying bpmp_fw_dtb(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/tegra194-a02-bpmp-p2888-a04.dtb)… done.
Existing tlk(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/tos-trusty_t194.img) reused.
Existing eks(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/eks.img) reused.
Existing spe_fw(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/spe_t194.bin) reused.
Existing mb1file(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod.bin) reused.
Existing spefile(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/spe_t194.bin) reused.
Existing tegraboot(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/nvtboot_t194.bin) reused.
Existing tbcfile(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/cboot_t194.bin) reused.
Existing scefile(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/camera-rtcpu-sce.img) reused.
Existing camerafw(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/camera-rtcpu-rce.img) reused.
Existing wb0boot(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/warmboot_t194_prod.bin) reused.
done.
Existing cfg(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/flash.xml) reused.
Existing bl(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/nvtboot_recovery_cpu_t194.bin) reused.
Existing applet(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod.bin) reused.
*** Calculating HASH from keyfile /home/jd/xavier-R32.3.1/Linux_for_Tegra/fuse-key/rsa_priv.pem … done
PKC HASH: 0x1990fefcd3d5821114cd8aaf3bae1f2fe7bf8dbb07a13d42e934c898dfe11a64
*** Generating fuse configuration … done.
done.
*** Start fusing …
./tegraflash.py --sdram_config tegra194-mb1-bct-memcfg-p2888.cfg,tegra194-memcfg-sw-override.cfg --misc_config tegra194-mb1-bct-misc-flash.cfg --pinmux_config tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg --scr_config tegra194-mb1-bct-scr-cbb-mini.cfg --scr_cold_boot_config tegra194-mb1-bct-scr-cbb-mini.cfg --pmc_config tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg --pmic_config tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg --br_cmd_config tegra194-mb1-bct-reset-p2888-0000-p2822-0000.cfg --prod_config tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg --dev_params tegra194-br-bct-sdmmc.cfg --misc_cold_boot_config tegra194-mb1-bct-misc-l4t.cfg --device_config tegra19x-mb1-bct-device-sdmmc.cfg --uphy_config tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg --gpioint_config tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins “mb2_bootloader nvtboot_recovery_t194.bin; mts_preboot preboot_c10_prod_cr.bin; mts_mce mce_c10_prod_cr.bin; mts_proper mts_c10_prod_cr.bin; bootloader_dtb tegra194-p2888-0001-p2822-0000.dtb; bpmp_fw bpmp_t194.bin; bpmp_fw_dtb tegra194-a02-bpmp-p2888-a04.dtb; tlk tos-trusty_t194.img; eks eks.img; kernel boot.img; kernel_dtb tegra194-p2888-0001-p2822-0000.dtb; spe_fw spe_t194.bin” --cfg flash.xml --bl nvtboot_recovery_cpu_t194.bin --odmdata 0x9190000 --chip 0x19 --applet mb1_t194_prod.bin --cmd “burnfuses odmfuse_pkc.xml” --skipuid
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.0079 ] Burning fuses
[ 0.0079 ] Generating RCM messages
[ 0.0086 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader mb1_t194_prod.bin zerosbk
[ 0.0092 ] Header already present for mb1_t194_prod.bin
[ 0.0114 ]
[ 0.0120 ] tegrasign_v2 --key None --getmode mode.txt
[ 0.0126 ] Assuming zero filled SBK key
[ 0.0127 ]
[ 0.0133 ] tegrasign_v2 --key None --file mb1_t194_prod_sigheader.bin --offset 2960 --length 1136 --pubkeyhash pub_key.key
[ 0.0138 ] Assuming zero filled SBK key
[ 0.0142 ]
[ 0.0148 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mb1_t194_prod_sigheader.bin mb1_t194_prod_sigheader.hash zerosbk
[ 0.0175 ]
[ 0.0181 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg sfuse.bin
[ 0.0188 ]
[ 0.0193 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm mb1_t194_prod_sigheader.bin 0 0
[ 0.0199 ] RCM 0 is saved as rcm_0.rcm
[ 0.0221 ] RCM 1 is saved as rcm_1.rcm
[ 0.0221 ] RCM 2 is saved as rcm_2.rcm
[ 0.0221 ] List of rcm files are saved in rcm_list.xml
[ 0.0221 ]
[ 0.0221 ] Signing RCM messages
[ 0.0227 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key --getmontgomeryvalues montgomery.bin
[ 0.0232 ] Assuming zero filled SBK key
[ 0.0236 ]
[ 0.0236 ] Copying signature to RCM mesages
[ 0.0242 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[ 0.0251 ]
[ 0.0252 ] Boot Rom communication
[ 0.0257 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0263 ] Boot Rom communication failed
[ 5.2691 ]
Error: Return value 3
Command tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
failed.

My suspection is Boot Rom Communication have some wrong.

I change odmfuse.sh to make it run only once to do Boot Rom Communicaion,but it will failed in other way .

【odmfuse.sh patch】

【burn cmd】sudo ./odmfuse.sh -c pkc -i 0x19 -k fuse-key/rsa_priv.pem --KEK2 fuse-key/kek2.txt jetson-xavier

【full log】
[jd@hp-zhan86:Linux_for_Tegra]$ sudo ./odmfuse.sh -c PKC -i 0x19 -k fuse-key/rsa_priv.pem --KEK2 fuse-key/kek2.txt jetson-xavier
Board ID(2888) version(400) sku(400) revision(K.0)
copying sdram_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-memcfg-p2888.cfg)… done.
copying sdram_config1(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-memcfg-sw-override.cfg)… done.
copying misc_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-misc-flash.cfg)… done.
copying pinmux_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg)… done.
copying scr_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-scr-cbb-mini.cfg)… done.
copying scr_cold_boot_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-scr-cbb-mini.cfg)… done.
copying pmc_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg)… done.
copying pmic_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg)… done.
copying br_cmd_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-reset-p2888-0000-p2822-0000.cfg)… done.
copying prod_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg)… done.
copying dev_params(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-br-bct-sdmmc.cfg)… done.
copying misc_cold_boot_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-misc-l4t.cfg)… done.
copying device_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra19x-mb1-bct-device-sdmmc.cfg)… done.
copying uphy_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg)… done.
copying gpioint_config(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg)… done.
copying soft_fuses(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
Existing mb2_bootloader(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/nvtboot_recovery_t194.bin) reused.
Existing mts_preboot(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/preboot_c10_prod_cr.bin) reused.
Existing mts_mce(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mce_c10_prod_cr.bin) reused.
Existing mts_proper(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mts_c10_prod_cr.bin) reused.
copying bootloader_dtb(/home/jd/xavier-R32.3.1/Linux_for_Tegra/kernel/dtb/tegra194-p2888-0001-p2822-0000.dtb)… done.
Existing bpmp_fw(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/bpmp_t194.bin) reused.
copying bpmp_fw_dtb(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/t186ref/tegra194-a02-bpmp-p2888-a04.dtb)… done.
Existing tlk(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/tos-trusty_t194.img) reused.
Existing eks(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/eks.img) reused.
Existing spe_fw(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/spe_t194.bin) reused.
Existing mb1file(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod.bin) reused.
Existing spefile(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/spe_t194.bin) reused.
Existing tegraboot(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/nvtboot_t194.bin) reused.
Existing tbcfile(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/cboot_t194.bin) reused.
Existing scefile(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/camera-rtcpu-sce.img) reused.
Existing camerafw(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/camera-rtcpu-rce.img) reused.
Existing wb0boot(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/warmboot_t194_prod.bin) reused.
done.
Existing cfg(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/flash.xml) reused.
Existing bl(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/nvtboot_recovery_cpu_t194.bin) reused.
Existing applet(/home/jd/xavier-R32.3.1/Linux_for_Tegra/bootloader/mb1_t194_prod.bin) reused.
*** Calculating HASH from keyfile /home/jd/xavier-R32.3.1/Linux_for_Tegra/fuse-key/rsa_priv.pem … done
PKC HASH: 0x1990fefcd3d5821114cd8aaf3bae1f2fe7bf8dbb07a13d42e934c898dfe11a64
*** Generating fuse configuration … done.
done.
*** Start fusing …
./tegraflash.py --sdram_config tegra194-mb1-bct-memcfg-p2888.cfg,tegra194-memcfg-sw-override.cfg --misc_config tegra194-mb1-bct-misc-flash.cfg --pinmux_config tegra19x-mb1-pinmux-p2888-0000-a04-p2822-0000-b01.cfg --scr_config tegra194-mb1-bct-scr-cbb-mini.cfg --scr_cold_boot_config tegra194-mb1-bct-scr-cbb-mini.cfg --pmc_config tegra19x-mb1-padvoltage-p2888-0000-a00-p2822-0000-a00.cfg --pmic_config tegra194-mb1-bct-pmic-p2888-0001-a04-E-0-p2822-0000.cfg --br_cmd_config tegra194-mb1-bct-reset-p2888-0000-p2822-0000.cfg --prod_config tegra19x-mb1-prod-p2888-0000-p2822-0000.cfg --dev_params tegra194-br-bct-sdmmc.cfg --misc_cold_boot_config tegra194-mb1-bct-misc-l4t.cfg --device_config tegra19x-mb1-bct-device-sdmmc.cfg --uphy_config tegra194-mb1-uphy-lane-p2888-0000-p2822-0000.cfg --gpioint_config tegra194-mb1-bct-gpioint-p2888-0000-p2822-0000.cfg --soft_fuses tegra194-mb1-soft-fuses-l4t.cfg --bins “mb2_bootloader nvtboot_recovery_t194.bin; mts_preboot preboot_c10_prod_cr.bin; mts_mce mce_c10_prod_cr.bin; mts_proper mts_c10_prod_cr.bin; bootloader_dtb tegra194-p2888-0001-p2822-0000.dtb; bpmp_fw bpmp_t194.bin; bpmp_fw_dtb tegra194-a02-bpmp-p2888-a04.dtb; tlk tos-trusty_t194.img; eks eks.img; kernel boot.img; kernel_dtb tegra194-p2888-0001-p2822-0000.dtb; spe_fw spe_t194.bin” --cfg flash.xml --bl nvtboot_recovery_cpu_t194.bin --odmdata 0x9190000 --chip 0x19 --applet mb1_t194_prod.bin --cmd “burnfuses odmfuse_pkc.xml” --skipuid
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.0079 ] Burning fuses
[ 0.0079 ] Generating RCM messages
[ 0.0086 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader mb1_t194_prod.bin zerosbk
[ 0.0091 ] Header already present for mb1_t194_prod.bin
[ 0.0113 ]
[ 0.0119 ] tegrasign_v2 --key None --getmode mode.txt
[ 0.0125 ] Assuming zero filled SBK key
[ 0.0126 ]
[ 0.0132 ] tegrasign_v2 --key None --file mb1_t194_prod_sigheader.bin --offset 2960 --length 1136 --pubkeyhash pub_key.key
[ 0.0137 ] Assuming zero filled SBK key
[ 0.0141 ]
[ 0.0147 ] tegrahost_v2 --chip 0x19 0 --updatesigheader mb1_t194_prod_sigheader.bin mb1_t194_prod_sigheader.hash zerosbk
[ 0.0174 ]
[ 0.0180 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg sfuse.bin
[ 0.0187 ]
[ 0.0193 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm mb1_t194_prod_sigheader.bin 0 0
[ 0.0198 ] RCM 0 is saved as rcm_0.rcm
[ 0.0220 ] RCM 1 is saved as rcm_1.rcm
[ 0.0220 ] RCM 2 is saved as rcm_2.rcm
[ 0.0220 ] List of rcm files are saved in rcm_list.xml
[ 0.0220 ]
[ 0.0220 ] Signing RCM messages
[ 0.0226 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key --getmontgomeryvalues montgomery.bin
[ 0.0231 ] Assuming zero filled SBK key
[ 0.0235 ]
[ 0.0235 ] Copying signature to RCM mesages
[ 0.0242 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[ 0.0251 ]
[ 0.0251 ] Boot Rom communication
[ 0.0258 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0264 ] RCM version 0X190001
[ 0.0273 ] Boot Rom communication completed
[ 1.0426 ]
[ 2.0470 ] tegrarcm_v2 --isapplet
[ 2.0497 ] Applet version 01.00.0000
[ 2.0661 ]
[ 2.0719 ] Parsing fuse info as per xml file
[ 2.0747 ] tegraparser_v2 --fuse_info odmfuse_pkc.xml blow_fuse_data.bin
[ 2.0774 ] MagicId=0x45535546 version=0x1
[ 2.0779 ] node: name=JtagDisable size=4
[ 2.0779 ] value=0x1
[ 2.0780 ] node: name=Kek2 size=16
[ 2.0780 ] value=0x5050505000000000A0A0A0A000000000
[ 2.0780 ] node: name=PublicKeyHash size=32
[ 2.0780 ] value=0x641ae1df98c834e9423da107bb8dbfe72f1fae3baf8acd141182d5d3fcfe9019
[ 2.0780 ] node: name=BootSecurityInfo size=4
[ 2.0780 ] value=0x1
[ 2.0780 ]
[ 2.0808 ] tegrarcm_v2 --oem burnfuses blow_fuse_data.bin
[ 2.0835 ] Applet version 01.00.0000
[ 2.1035 ] 0000000074741201: E> NV3P_SERVER: Fuse burn is not supported.
[ 2.1129 ]
[ 2.1130 ] Fuse burning failed
[ 2.1130 ]
[ 2.1130 ] trying fusing with CPU binary
[ 2.1144 ] tegrasign_v2 --key None --getmode mode.txt
[ 2.1149 ] Assuming zero filled SBK key
[ 2.1150 ]
[ 2.1151 ] Parsing partition layout
[ 2.1157 ] tegraparser_v2 --pt flash.xml.tmp
[ 2.1167 ]
[ 2.1167 ] Creating list of images to be signed
[ 2.1173 ] tegrahost_v2 --chip 0x19 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
[ 2.1178 ] MB1: Nvheader already present is mb1_t194_prod.bin
[ 2.1182 ] Header already present for mb1_t194_prod_sigheader.bin
[ 2.1185 ] MB1: Nvheader already present is mb1_t194_prod.bin
[ 2.1206 ] Header already present for mb1_t194_prod_sigheader.bin
[ 2.1215 ] adding BCH for spe_t194.bin
[ 2.1236 ] adding BCH for spe_t194.bin
[ 2.1253 ] adding BCH for nvtboot_t194.bin
[ 2.1269 ] adding BCH for nvtboot_t194.bin
[ 2.1299 ] Header already present for preboot_c10_prod_cr.bin
[ 2.1329 ] Header already present for preboot_c10_prod_cr.bin
[ 2.1331 ] Header already present for mce_c10_prod_cr.bin
[ 2.1333 ] Header already present for mce_c10_prod_cr.bin
[ 2.1346 ] adding BCH for mts_c10_prod_cr.bin
[ 2.1374 ] adding BCH for mts_c10_prod_cr.bin
[ 2.1927 ] adding BCH for cboot_t194.bin
[ 2.2472 ] adding BCH for cboot_t194.bin
[ 2.2542 ] adding BCH for tegra194-p2888-0001-p2822-0000.dtb
[ 2.2611 ] adding BCH for tegra194-p2888-0001-p2822-0000.dtb
[ 2.2654 ] adding BCH for tos-trusty_t194.img
[ 2.2700 ] adding BCH for tos-trusty_t194.img
[ 2.2756 ] adding BCH for eks.img
[ 2.2817 ] adding BCH for eks.img
[ 2.2817 ] adding BCH for bpmp_t194.bin
[ 2.2822 ] adding BCH for bpmp_t194.bin
[ 2.2962 ] adding BCH for tegra194-a02-bpmp-p2888-a04.dtb
[ 2.3102 ] adding BCH for tegra194-a02-bpmp-p2888-a04.dtb
[ 2.3182 ] adding BCH for camera-rtcpu-rce.img
[ 2.3261 ] adding BCH for camera-rtcpu-rce.img
[ 2.3303 ] adding BCH for adsp-fw.bin
[ 2.3347 ] adding BCH for adsp-fw.bin
[ 2.3364 ] Header already present for warmboot_t194_prod.bin
[ 2.3383 ] Header already present for warmboot_t194_prod.bin
[ 2.3388 ] Stat for RECFILE failed
[ 2.3393 ]
Error: Return value 4
Command tegrahost_v2 --chip 0x19 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
failed.

Does this mean MUST use SBK ? Zero SBK not allowed?
I wonder if anyone have successfully burn only PKC + KEK fuse on xavier?
I couldn’t find other issue about xavier fuse burn on forum, lots of talk is about TX2, Nano.

hello mowa,

may I know what’s your environment setup, did you working with an ubuntu desktop or it’s a VM machine.
please also check correct boot rom communication process as below for reference,
thanks

[   0.0262 ] Signing RCM messages
[   0.0271 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key --getmontgomeryvalues montgomery.bin
[   0.0280 ] Assuming zero filled SBK key
[   0.0285 ]
[   0.0285 ] Copying signature to RCM mesages
[   0.0295 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[   0.0312 ]
[   0.0312 ] Boot Rom communication
[   0.0320 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[   0.0328 ] RCM version 0X190001
[   0.1064 ] Boot Rom communication completed

Hi,jerry

1,I work with a ubuntu desktop, ubuntu 18.04.4 LTS
2,Yes,I know the correct boot rom communication process. As I mention above, odmfuse.sh will call tegraflah.py (which call tegrarcm_v2 ) twice, the first of Boot Rom Communication in my test is successful.

Hi,Jerry
Any other suggestion? Thanks

Fuse burning now block our secure boot & security APPs based on KEKs.
Could you help to ask the nvidia maintainer of odmfuse.sh of xavier? How did they test?

Finally burn successful on Xavier,see :another post & conclusion