Hello,
I am writing with an issue with my board. I am using Orin NX 8GB module.
My board has written several fuses - it means:
- PKC
- SBK
- OEM_K1
- OEM_K2
- BOOT_SECURITY_INFO
according to the documentation I have prepared fuse_config.xml file as given below.
Of course there are no zero keys in this file.
PKC is ECDSA P-256 Key, based on that key public key and its hash had been generated using ./tegrasign_v3.py --pubkeyhash <pkc.pubkey> <pkc.hash> --key <pkc.pem>
SecureBootKey is 32-byte long hex key.
Same for OEM_K1 and OEM_K2.
Fuses has been written using this command
sudo ./odmfuse.sh -X ./fuse_config.xml -i 0x23 jetson-orin-nano-devkit
I can confirm that fuses has been burned in OS using sudo nv_fuse_read.sh
odm_lock: 0x00000000
revoke_pk_h0: 0x00000000
revoke_pk_h1: 0x00000000
optin_enable: 0x00000000
public_key_hash: <SAME PKC HASH AS IN THE FUSE_CONFIG.XML>
boot_security_info: 0x0000000a
odmid: 0x0000000000000000
pk_h1: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
pk_h2: 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
security_mode: 0x00000000
reserved_odm2: 0x00000000
reserved_odm3: 0x00000000
reserved_odm0: 0x00000000
reserved_odm1: 0x00000000
reserved_odm6: 0x00000000
reserved_odm7: 0x00000000
reserved_odm4: 0x00000000
reserved_odm5: 0x00000000
odminfo: 0x00000000
system_fw_field_ratchet1: 0x00000000
system_fw_field_ratchet0: 0x00000000
system_fw_field_ratchet3: 0x00000000
system_fw_field_ratchet2: 0x00000000
ecid: 0x847263392417f406
And here is were issue starts.
After flash I am unable to flash signed images into Jetson. If I generate image sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash -u <pkc_keyfile> [-v <sbk_keyfile>] jetson-agx-orin-devkit internal
and then flash it
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash -u <pkc_keyfile> [-v <sbk_keyfile>] jetson-agx-orin-devkit internal
I have received just USB Timeouts (included end of log)
End of fuses write log
\\\[ 0.7946 \\\] tegrarcm_v2 --new_session --chip 0x23 0 --uid --download bct_br br_bct_BR.bct --download mb1 mb1_t234_prod_aligned_sigheader_encrypt.bin.signed --download psc_bl1 psc_bl1_t234_prod_aligned_sigheader_encrypt.bin.signed --download bct_mb1 mb1_bct_MB1_sigheader_encrypt.bct.signed\\\[ 0.7950 \\\] BR_CID: 0x8A012344705DE5098000000005FD0180\\\[ 0.8183 \\\] Sending bct_br\\\[ 0.8489 \\\] Sending mb1\\\[ 0.8502 \\\] ERROR: might be timeout in USB write.Error: Return value 3Command tegrarcm_v2 --new_session --chip 0x23 0 --uid --download bct_br br_bct_BR.bct --download mb1 mb1_t234_prod_aligned_sigheader_encrypt.bin.signed --download psc_bl1 psc_bl1_t234_prod_aligned_sigheader_encrypt.bin.signed --download bct_mb1 mb1_bct_MB1_sigheader_encrypt.bct.signed\\\[ 0.8567 \\\] tegrarcm_v2 --chip 0x23 0 --ismb2applet\\\[ 0.8602 \\\] Retrieving board information\\\[ 0.8617 \\\] tegrarcm_v2 --chip 0x23 0 --oem platformdetails chip chip_info.bin\\\[ 0.8639 \\\] Retrieving EEPROM data\\\[ 0.8640 \\\] tegrarcm_v2 --oem platformdetails eeprom cvm /home/mikaczma/nvidia/Linux_for_Tegra/bootloader/cvm.bin --chip 0x23 0\\\[ 0.8708 \\\] tegrarcm_v2 --chip 0x23 0 --ismb2applet\\\[ 0.8727 \\\] Dumping customer Info\\\[ 0.8742 \\\] tegrarcm_v2 --chip 0x23 0 --oem dump bct tmp.bct\\\[ 0.8778 \\\] tegrabct_v2 --brbct tmp.bct --chip 0x23 0 --custinfo /home/mikaczma/nvidia/Linux_for_Tegra/bootloader/custinfo_out.bin\\\[ 0.8791 \\\] File tmp.bct open failedError: Return value 19Command tegrabct_v2 --brbct tmp.bct --chip 0x23 0 --custinfo /home/mikaczma/nvidia/Linux_for_Tegra/bootloader/custinfo_out.binReading board information failed.
I have tried other machine (Ubuntu 20.04, 22.04, 24.04) / Intel / AMD processors / USB3.0 hubs / USB2.0 hubs. All that failed in same way.
I have assumed that it may be caused by not setting bit 9 in the boot_security_info fuse (mean 0x20a instead of 0xa) to inform that ODM Keys are valid.
But it is same story when comes to writing fuses right now. If I will provide odmfuse.sh script without PKC+SBK keys I have that information in the terminal, but if these keys are provided using -k and -S flags then fusing fails on USB Timeout.
Nevertheless I am able to write non-signed OS image into Jetson right now, what really confuse me.
————————————————————————————–
I am on daily basis using Ubuntu 22.04 on AMD64 with Jetpack 6.2.1