Stuck in Force Recovery Mode -Jetson Xavier NX

hello dcapers44,

please refer to this video, Jetson Nano - Serial Console for setting-up serial console to gather bootloader messages.
thanks

I try to gather bootloader messages using minicom. Used aUSB to TTL Serial Converter Cable… connecting the cables’ TXD to pin 3, RXD to pin 4, and GND to pin 7. But nothing was displayed in minicom. I sucessfully reflashed the jetson and still nothing display on minicom…

hello dcapers44,

please also access Jetson Xavier NX Developer Kit User Guide via download center for reference.
you may use [J14],12-pin button header, or [J12], 40-pin expansion header for setup serial consoles.
thanks

I try using the J12 pin 8 (UART TX) and pin 10 (UART RX) … I did not see a GRD pin defined in the documentation you sent me. I still did not get a output from minicom one I powered the jetson up.

Hi dcapers44,

Please use [J14] pins 3 (UART RXD), pins 4 (UART TXD) and pins 7 (GND) with TX/RX cable, like this.
Then connect USB port to your host machine and get UART logs.
You can use below command to check port number:
$ ll /dev/ttyUSB*

I tried your suggestion … after setting the physical connection as you stating… and running minicom to port /dev/ttyUSB0… then powering up the jetson… no UART logs were displayed.

I’m having the same problem. Enabled secureboot on the sdcard model. Can sign and execute code through recovery interface, but no signs of life if the recovery jumper is removed. Perhaps it has something to do with sec_boot_dev_cfg, and sw_reserved fuses. Does the SPI interface need to be explicitly enabled if secure boot is on?

hey, please note that, guys.

Jetson security only supports with eMMC,
you CANNOT program fuse to enable secureBoot with a SD-card version.

@carolyuu My last post was directed to you. @JerryChang I don’t believe you answer my question regarding… " Can you please point me to the right place which I can purchase either of the two types of Jetson Xavier ". I don’t see any option where I given the choice to choose a Jetson Xavier NX with eMMC…

@JerryChang @carolyuu This pass weekend I ordered a Jetson AGX Xavier … I went through the same procedures for burning fuses and flashing the board with device being jetson-agx-xavier-devkit. I am experiencing the same results as I was with the Jetson Xavier NX. Same exact results… I now can get the Jetson AGX Xavier to boot up.

hello @dcapers44,

please refer to [Technical Specifications] of the Jetson modules.
you may also please check Jetson FAQ to understand the difference between Jetson Developer Kits and Jetson modules.
for example,
What is the difference between Jetson Developer Kits and Jetson modules?
Can Jetson developer kits be used as production systems or as part of a product?


so, am I understand correctly that you’re finally to enable secureBoot.

I am able to boot the board in some capacity by using the --boot-rcm argument to flash.sh. There seems to be a typo somewhere and this only works after a

cp ./bootloader/encrypted_signed_t19x/camera-rtcpu-sce_sigheader.img.encrypt.signed ./bootloader/encrypted_signed_t19x/camera-rtcpu-rce_sigheader.img.encrypt.signed

@JerryChang … my apologies… that was a typo…

“I can’t get the Jetson AGX Xavier to boot up”… Just like the Jetson Xavier NX.

FYI… I tried using the ./odmfuseread.sh script to get info on the fuses on the Jetson AGX Xavier… the following is my results

`dcapers@NUC-Ubuntu-18:~/nvidia/Linux_for_Tegra$ sudo ./odmfuseread.sh -i 0x19 -k RSA_Key.pem -S SBK.txt jetson-agx-xavier-devkit
[sudo] password for dcapers:
Sorry, try again.
[sudo] password for dcapers:
copying soft_fuses(/home/dcapers/nvidia/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
copying soft_fuses(/home/dcapers/nvidia/Linux_for_Tegra/bootloader/t186ref/BCT/tegra194-mb1-soft-fuses-l4t.cfg)… done.
./tegraflash.py --chip 0x19 --applet “/home/dcapers/nvidia/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” --encrypt_key “SBK.txt” --key “RSA_Key.pem”
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.0070 ] Generating RCM messages
[ 0.0081 ] tegrasign_v2 --key SBK.txt --file /home/dcapers/nvidia/Linux_for_Tegra/bootloader/mb1_t194_prod.bin --offset 4096
[ 0.0092 ] Assuming zero filled SBK key
[ 0.0320 ]
[ 0.0334 ] tegrahost_v2 --chip 0x19 0 --magicid MB1B --appendsigheader /home/dcapers/nvidia/Linux_for_Tegra/bootloader/mb1_t194_prod_encrypt.bin zerosbk
[ 0.0345 ] Header already present for /home/dcapers/nvidia/Linux_for_Tegra/bootloader/mb1_t194_prod_encrypt.bin
[ 0.0390 ]
[ 0.0402 ] tegrasign_v2 --key RSA_Key.pem --getmode mode.txt
[ 0.0412 ] Assuming zero filled SBK key
[ 0.0414 ]
[ 0.0427 ] tegrasign_v2 --key RSA_Key.pem --file /home/dcapers/nvidia/Linux_for_Tegra/bootloader/mb1_t194_prod_encrypt_sigheader.bin --offset 2960 --length 1136 --pubkeyhash pub_key.key
[ 0.0438 ] Assuming zero filled SBK key
[ 0.0444 ]
[ 0.0455 ] tegrahost_v2 --chip 0x19 0 --updatesigheader /home/dcapers/nvidia/Linux_for_Tegra/bootloader/mb1_t194_prod_encrypt_sigheader.bin /home/dcapers/nvidia/Linux_for_Tegra/bootloader/mb1_t194_prod_encrypt_sigheader.hash zerosbk
[ 0.0508 ]
[ 0.0524 ] tegrabct_v2 --chip 0x19 0 --sfuse tegra194-mb1-soft-fuses-l4t.cfg.pdf sfuse.bin
[ 0.0536 ]
[ 0.0548 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x19 0 --sfuses sfuse.bin --download rcm /home/dcapers/nvidia/Linux_for_Tegra/bootloader/mb1_t194_prod_encrypt_sigheader.bin 0 0
[ 0.0558 ] RCM 0 is saved as rcm_0.rcm
[ 0.0598 ] RCM 1 is saved as rcm_1.rcm
[ 0.0599 ] RCM 2 is saved as rcm_2.rcm
[ 0.0599 ] List of rcm files are saved in rcm_list.xml
[ 0.0599 ]
[ 0.0599 ] Signing RCM messages
[ 0.0611 ] tegrasign_v2 --key RSA_Key.pem --list rcm_list.xml --pubkeyhash pub_key.key --getmontgomeryvalues montgomery.bin
[ 0.0621 ] Assuming zero filled SBK key
[ 0.0629 ]
[ 0.0630 ] Copying signature to RCM mesages
[ 0.0641 ] tegrarcm_v2 --chip 0x19 0 --updatesig rcm_list_signed.xml
[ 0.0662 ]
[ 0.0663 ] Boot Rom communication
[ 0.0677 ] tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0689 ] RCM version 0X13
[ 0.0699 ] Boot Rom communication failed
[ 5.3146 ]
Error: Return value 3
Command tegrarcm_v2 --chip 0x19 0 --rcm rcm_list_signed.xml --skipuid
Reading board information failed.
`

It seems that every command except the initial flash requires the SBK to be in the other format. 4x 32-bit words instead of the single 128-bit word.

@jonathan_pry I notice that about the SBK, but I don’t think that should be an issue.

Yeah you are right. odmfuseread.sh doesn’t work me either. But odmfuse.sh --noburn does work and reads out the existing fuses

@jonathan_pry You are correct regarding ./odmfuses.sh --noburn reading out the status of the fuses. All fuse that were burn should be the same value as that which is listed in ~/Linux_for_Tegra/bootloader/odmfuse_pkc.xml.

This issue of the jetson not booting up is frustrating…

@dcapers44 Very frustrating indeed. It is confusing because I believe the EMMC version uses QSPI for the early boot process anyways. But for some reason we do not even hit MB1. There has got to be some undocumented fuse that is the difference between production/non-production modules.

hello dcapers44,

you may programming production mode fuse (i.e. -p option), when PKC and SBK is fused for Jetson Xavier.
there’s a discussion thread about Xavier not booting after burning fuse,
please check Unable to burn fuses (dev kit) / no more output (serial/hdmi) / bricked? - #89 by DaneLLL, as see-also.
thanks