Odmfuse failed after first call

Hello,

If I run the following command 2 times the second run failed

sudo bash odmfuse.sh --test -X fuses_config -i 0x23 jetson-orin-d131

log run 1
log_odmfuse_call1.txt (96.2 KB)
log run 2
Error: ECID read failed.
The target board must be attached in RCM mode.

I also try with the odmfuseread.sh script and have the same error after a first call of odmfuse.sh

The main objective is to do a script that first run the command in “test” mode and if everything is correct then run the actual burn command.

Any idea what is not clean properly by the odmfuse.sh script that generate this issue?

I work on a Orin NX chip with Jetpack 6.2

Best regards

hello AFR,

it looks communication has failed.
please check developer guide.. To Determine Whether the Developer Kit Is in Force Recovery Mode.

Hello JerryChang,

Sorry for the delay, I try what you said, lsusb return the correct value.

tmp_gen$ lsusb
Bus 001 Device 085: ID 0955:7323 NVIDIA Corp. APX
tmp_gen$ sudo bash odmfuse.sh --test -X fuses_config -i 0x23 jetson-orin-d131
Error: ECID read failed.
The target board must be attached in RCM mode.

But like you can see, the call of odmfuse.sh still failed if I already call it before.

Best regards

hello AFR,

this is not developer kit, right?
are you able to re-flash this target, and booting up correctly?

It is not a developer kit, and I can flash the target and boot correctly. I use the board for several month without issue.
The issue is only if I do the following

  • boot in maintenance mode
  • run first time omdfuse.sh --test → work correctly
  • run second time → Error: ECID read failed.

If I turn of the board and restart in maintenance mode omdfuse.sh work properly again the first time.

Does running 2 times consecutively odmfuses.sh --test work on you side?

Best regards

hello AFR,

may I know what’s the intention of running second time? don’t you had hardware key for putting device enter RCM (i.e. forced-recovery) mode?

besides,
it looks you’re going to burn the fuse variables to enable Jetson security, right?
please check developer guide, Burn Fuses with the Fuse Configuration file for reference.
please see-also Topic 300161 for the steps we’ve confirmed by burning fuses (flash and boot-up successfully) with Orin-NX-8GB.

Hello JerryChang,

I would like to create a script that will run omdfuse --test and then if everything is fine omdfuse without having to reboot the target.

Thank you for the link to the topic, it give me information about the generation of PCK that I didn’t see.

Best regards

hello AFR,

ya, it’s the --test option to verify fuse burning operations before you perform them.
however, it’s necessary to put the device enter forced-recovery mode for burning the fuse variables.

Hello JerryChang,

Sorry for the confusion, what I call maintenance mode is the force recovery mode.

Does the --test command be done outside the force recovery mode?
Does the omdfuse.sh script run only 1 time in the force recovery mode?

Best regard

hello AFR,

every board communication needs to put the device enter forced-recovery mode.
if you would like to create fuse blob without connections, you should given board info as well.
for instance,
$ sudo FAB=500 BOARDID=3701 BOARDSKU=0000 BOARDREV=H.0 CHIPREV=1 CHIP_SKU=00 FUSELEVEL=fuselevel_production ./odmfuse.sh --noburn --auth NS -i 0x23 -k rsa_priv-3k.pem -S sbk-256.key jetson-agx-orin-devkit

Hello JerryChang,

here a extract of the script I would like to do run after putting the board in force recovery mode.

bash odmfuse.sh –test -X “$CONFIG_FILE” -i 0x23 jetson-orin-d131
if [ $? -ne 0 ]; then
echo “Error: Failed to test fuse configuration.”
exit 1
fi

#Ask if the user want to burn the fuses
echo “WARNING: burning fuses can not be reverse”
read -p "Do you want to burn the fuses? (y/n): " response
if [[ “$response” =~ [1]$ ]]; then
bash odmfuse.sh -X “$CONFIG_FILE” -i 0x23 jetson-orin-d131
if [ $? -ne 0 ]; then
echo “Error: Failed to burn fuses.”
exit 1
fi
else
echo “Fuse burning aborted.”
fi

I’m not ready yet to really burn the fuses, but my guess is that if “odmfuse.sh --test” fail on the second call, I will have the same issue with this script.


  1. Yy ↩︎

hello AFR,

just an FYI,
FSKP also have the capability to show a prompted to confirm the fusing burning process.
for instance.. An Example: Using the Encrypted and Signed Blob at the Factory.

Hello JerryChang,

I saw this tool but it does not seem to be publicly available…