2.2. 安全启动eFuse设置流程¶
注意
eFuse 每一位写入1后无法擦除 (只允许从0变成1),写入前请注意
指定的eFuse锁定后无法再读取或写入,锁定前请注意
2.2.1. 查看密钥内容¶
在PC上查看密钥内容:
# 查看AES加解密秘钥
host$ xxd -p -c 256 loader_ek.key
668f8b6655a89f7cb8ee5cbd6f2c914e
# 获取RSA验签所需 sha256 值
# 执行签署脚本fipsign.py时,脚本会打印所需sha256值,如下:
host$ ./fipsign.py ......
Host$ .......
Host$ INFO:root:KPUB_HASH:978bc2031b9377dadb4c7c34467ee985806a63a3ac8ee293a3f0eddcd2b789d8
Host$ .......
KPUB_HASH: 后面的字符串就是所需sha256值
2.2.2. 烧录密钥¶
将loader_ek.key数据烧录到eFuse的 “加密密钥”区域,数据为16 Bytes,以16进制字符串表示。如果未使用加密功能可跳过这步骤。
u-boot# efusew LOADER_EK 668f8b6655a89f7cb8ee5cbd6f2c914e
烧录验签所需 sha256 值到eFuse的 “验签所需SHA256摘要”区域,数据为32 Bytes,以16进制字符串表示
u-boot# efusew HASH0_PUBLIC 978bc2031b9377dadb4c7c34467ee985806a63a3ac8ee293a3f0eddcd2b789d8
锁定相关密钥区域,防止误写
u-boot# efusew LOCK_LOADER_EK 01
u-boot# efusew LOCK_HASH0_PUBLIC 01
2.2.3. 使能安全启动¶
enable 验签流程
u-boot# efusew SECUREBOOT 01
enable 验签和解密流程
u-boot# efusew SECUREBOOT 02
注意
安全启动使能后无法再变更,秘钥和开关写入前请注意数据正确
使能安全启动需要和efuse写入数据以及fip.bin匹配,例如:enable 解密流程后需要使用已签名和已加密的FIP.bin,只签名的FIP.bin无法烧录和启动