Platform:
- Module: Jetson Orin NX 16GB
Carrier board: Seeed Studio J4012
SoC: T234 (Orin)
OS / BSP: NVIDIA JetPack / L4T (R36.x)
Summary:
I am unable to burn the SecurityMode fuse (production mode) on a Jetson Orin NX, even though SBK, PKC, OEM keys, and other security-related fuses were previously burned successfully using odmfuse.sh. The commands complete without burning SecurityMode, and the fuse remains unset when verified from Linux on the target.
Initial fuse programming (successful)
I initially burned the security fuses using the following XML configuration:
<genericfuse MagicId="0x45535546" version="1.0.0">
<fuse name="PublicKeyHash" size="64" value="XXXXXXXXXXXX"/>
<fuse name="SecureBootKey" size="32" value="XXXXXXXXXXXX"/>
<fuse name="OemK1" size="32" value="XXXXXXXXXXXX"/>
<fuse name="OemK2" size="32" value="XXXXXXXXXXXX"/>
<fuse name="ArmJtagDisable" size="4" value="0x1"/>
<fuse name="BootSecurityInfo" size="4" value="0x209"/>
</genericfuse>This step worked correctly. The fuses were burned and verified successfully.
Command used:
sudo ./odmfuse.sh -i 0x23 -X ../secureboot_fuse_config_t234.xml jetson-orin-nano-devkit
After this step:
-
Secure Boot is enabled
-
SBK + PKC are active
-
UEFI and boot chain work correctly
Attempt to burn SecurityMode (fails)
After the initial fuse programming, I attempted to burn the SecurityMode fuse (production mode) using both an XML-based approach and the -p flag.
Attempt 1: XML-based fuse
XML (secureboot_production_mode.xml):
<genericfuse MagicId="0x45535546" version="1.0.0">
<fuse name="SecurityMode" size="4" value="0x00000001"/>
</genericfuse>
Command:
sudo ./odmfuse.sh -i 0x23 \
-k ../pkc/PKC.pem \
-S ../sbk/SBK.hex \
-X ../secureboot_production_mode.xml \
jetson-orin-nano-devkit
Attempt 2: Using -p flag
sudo ./odmfuse.sh -i 0x23 \
-k ../pkc/PKC.pem \
-S ../sbk/SBK.hex \
-p \
jetson-orin-nano-devkit
In both cases:
-
odmfuse.shruns without a fatal error -
The process does not report that
SecurityModewas burned -
After reboot,
SecurityModeis still unset
Verification method
To verify the fuse state, I boot Linux on the target and run:
sudo nv_fuse_read.sh
Result:
-
SecurityModeremains0x0 -
Device is not in production mode
Additional notes / observations
-
SBK and PKC are already burned and functional
-
Secure boot works correctly
-
SecurityModedoes not transition to production -
I am using the same BSP/tools that successfully burned the original fuses
-
Host is a native Linux machine (not WSL / VM)
Question / Request for guidance
-
Is there any known restriction or additional requirement for burning
SecurityModeon Orin NX after SBK+PKC have already been fused? -
Is the XML-based method supported for
SecurityMode, or must-palways be used? -
Is
nv_fuse_read.shthe correct way to verifySecurityModefrom Linux on Orin NX?
Any guidance or confirmation of the correct procedure would be appreciated.
Thank you.