Odm_lock 不能烧录0xFF

您好,

我们现在使用的是orin nx16G

jetpack 5.1.4

我在测试efuse的时候。

reserved_odm2: 0x32424b4f
reserved_odm3: 0x30313034
reserved_odm0: 0x53594a57
reserved_odm1: 0x52503153
reserved_odm6: 0x3fffffff
reserved_odm7: 0xffffffff
reserved_odm4: 0xf1393230
reserved_odm5: 0xc48d3fff
boot_security_info: 0x000001e0
security_mode: 0x00000000
odm_lock: 0x0000000f

只能烧录odm_lock的低四位。 使用0xFF烧录也只能烧录成0xf

hello 550399056,

please refer to download center for Jetson Orin Fuse Specification.
as you can see of [Table 6. Field Programmable Fuses], the bit length of ODM_Lock fuse variable is 4.
so, that’s expected you can only burn odm_lock to 0x0f.

我怎么固定住reserved_odm4 - reserved_odm7呢?

hello 550399056,

as mentioned by developer guide, RESERVED_ODM Banks 4-7 do not have this lock feature.

为什么烧录 security_mode = 1 后,会不能够重新再烧录了,插上typec后主机端lsusb也看到英伟达的设备了

我现在想把public_key_hash 写入我们加密的SN号,然后使用security_mode=1来锁定。

hello 550399056,

>> Q1
please read developer guide, Secure Boot.
after the SecurityMode (also known as odm_production_mode) fuse is burned with a value of 0x1, all additional fuse write requests will be blocked.

>> Q2
you may see-also Burn Fuses with the Fuse Configuration file to program fuse variables.
please note that, once a fuse bit is set to 1, you cannot change its value back to 0.
for example, a fuse value of 1 (0x01) can be changed to 3 (0x03) or 5 (0x05), but not to 4 (0x4) because bit 0 is already programmed to 1.

我写入了public_key_hash= “value1“ 和security_mode=1后 ,nx模组就不能烧录了,lsusb 也看不到模组设备了。进入不了recover mode 也不能启动了

hello 550399056,

please share the complete steps and also the logs for reference.

xml: sudo ./odmfuse.sh -X fuse_odm.xml -i 0x23 jetson-orin-nano-devkit

xml:

hello 550399056,

there’re lots of variables with 0xFF, were they truly 0xFF, or you’re omitting fuse values?
anyways, please share the actual value of your boot_security_info fuse variable.

我只是烧录了上面的xml配置(public_key_hash 和security_mode),并没有烧录boot_security_info。 所以boot_security_info还是默认值0

现在是经过我上面的烧录后,无法再重新烧录了。主机lsusb都识别不到nvidia的设备了,也进入不到recover模式

hello 550399056,

it’s expected you cannot fuse anymore since you’ve security_mode enabled.

unfortunately, boot_security_info is crucial for secureboot authentication scheme.
as mentioned by Jetson Orin Fuse Specification.
it’s Bits [2:0] mapped to Secure Boot Authentication Scheme,
where:
000b: SHA2-512 Hash (not recommended)
001b: 3072-bit RSA
010b: ECDSA P-256 Curve
011b: ECDSA P-521-Curve
100b: Ed25519

我们设备的SN码我想放入到public_key_hash中,然后通过security_mode 锁定住。 orin nx能够完成吗? 现在我还不想使用boot_security_info来做烧录和启动的签名验证。

hello 550399056,

may I know what’s your actual use-case.
please double check developer guide, Secure Boot for reference.

我们现在要过一个低空标准,保证信息防篡改。所以我想到把信息存放到efuse里面。我们的信息有20个字符。所以我想使用public_key_hash来存放,并且锁存住。

hello 550399056,

please check Generate A PKC Key Pair for the key types that Orin series supported.

如果使能了boot_security_info并且存放了PKC。那系统启动的时候会验证签名呢。 我现在并不想验证签名。只是存放我们的设备SN到efuse中,并且防篡改

no, you did not understand it correctly,
for the secureboot, the root-of-trust that uses the NVIDIA SoCs fuses to authenticate boot codes ends at the Bootloader.

那我有其他地方能存放这个字符吗? ReserveOdm4-7 不能锁住。 我的SN字符串有20个字符