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. 烧录密钥

  1. 将loader_ek.key数据烧录到eFuse的 “加密密钥”区域,数据为16 Bytes,以16进制字符串表示。如果未使用加密功能可跳过这步骤。

u-boot# efusew LOADER_EK 668f8b6655a89f7cb8ee5cbd6f2c914e
  1. 烧录验签所需 sha256 值到eFuse的 “验签所需SHA256摘要”区域,数据为32 Bytes,以16进制字符串表示

u-boot# efusew HASH0_PUBLIC 978bc2031b9377dadb4c7c34467ee985806a63a3ac8ee293a3f0eddcd2b789d8
  1. 锁定相关密钥区域,防止误写

u-boot# efusew LOCK_LOADER_EK 01
u-boot# efusew LOCK_HASH0_PUBLIC 01

2.2.3. 使能安全启动

  1. enable 验签流程

u-boot# efusew SECUREBOOT 01
  1. enable 验签和解密流程

u-boot# efusew SECUREBOOT 02

注意

  1. 安全启动使能后无法再变更,秘钥和开关写入前请注意数据正确

  2. 使能安全启动需要和efuse写入数据以及fip.bin匹配,例如:enable 解密流程后需要使用已签名和已加密的FIP.bin,只签名的FIP.bin无法烧录和启动