我目前正致力于使用HABv4在imx6ul上执行安全启动。我按照以下文档中提供的步骤进行操作。
http://marc.info/?l=u-boot&m=139227973004718&q=p5
执行下面描述的所有步骤后,我在U-boot命令提示符下输入了hab_status。然后我得到了我在下面显示的HAB事件。我没有执行的唯一步骤是融合SRK表。我想知道以下信息:
在开发阶段融合SRK表是否必须?
从哪里可以找到必须在csf文件中指定的加载地址?我使用了Uboot配置文件中定义的以下值。文档AN4581(Rev.0,10 / 2012)描述了start * = TEXT_BASE并且它在config.mk文件中定义。但是,我的U-boot文件夹中没有config.mk文件(可能是因为我使用的是较新的版本)。
#define CONFIG_SYS_TEXT_BASE 0x87800000
AN4581(Rev.1,10 / 2015)未提供任何有关此事的信息。
执行的步骤: 请参阅下面执行的步骤。
内置u-boot.imx启用安全模式。
生成所有根公钥文件和相应的哈希。
使用以下内容创建csf文件。文件内容最后附上。
我的u-uboot.imx文件是0x60830。我使用以下命令将其扩展到0x61000。
objcopy -I binary -O binary --pad-to 0x61000 --gap-fill=0x5A u-boot.imx u-boot-pad.imx
然后我使用以下命令生成了csf.bin文件。
./cst -o u-boot_csf.bin -i uboot.csf
使用以下命令合并图像和csf数据。
cat u-boot-pad.imx u-boot_csf.bin > u-boot-signed.imx
然后将最终图像扩展为0x63000
objcopy -I binary -O binary --pad-to 0x63000 --gap-fill=0x5A u-boot-signed.imx u-boot-signed-pad.imx
块的长度计算如下:Length = u-boot-pad.imx(0x61000) - IVT_OFFSET(0x400)。 并将400添加到起始地址,如下所示。
# Address Offset Length Data File Path
Blocks = 0x87800400 0x400 0x00060C00 "u-boot-pad.imx"
HAB活动:
HAB Configuration: 0xf0, HAB State: 0x66
--------- HAB Event 1 -----------------
event data:
0xdb 0x00 0x1c 0x42 0x33 0x18 0xc0 0x00
0xca 0x00 0x14 0x00 0x02 0xc5 0x00 0x00
0x00 0x00 0x0d 0x34 0x87 0x80 0x04 0x00
0x00 0x06 0x0c 0x00
--------- HAB Event 2 -----------------
event data:
0xdb 0x00 0x14 0x42 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x87 0x7f 0xf7 0xd0
0x00 0x00 0x00 0x20
--------- HAB Event 3 -----------------
event data:
0xdb 0x00 0x14 0x42 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x87 0x7f 0xf7 0xfc
0x00 0x00 0x01 0xf0
--------- HAB Event 4 -----------------
event data:
0xdb 0x00 0x14 0x42 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x87 0x7f 0xf7 0xf0
0x00 0x00 0x00 0x01
--------- HAB Event 5 -----------------
event data:
0xdb 0x00 0x14 0x42 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x87 0x80 0x00 0x00
0x00 0x00 0x00 0x04
Command Sequency File Description:
#Illustrative Command Sequence File Description
[Header]
Version = 4.1
Hash Algorithm = sha256
Engine = ANY
Engine Configuration = 0
Certificate Format = X509
Signature Format = CMS
[Install SRK]
File = "../crts/SRK_1_2_3_4_table.bin"
# Index of the key location in the SRK table to be installed
Source index = 0
[Install CSFK]
# Key used to authenticate the CSF data
File = "../crts/CSF1_1_sha256_2048_65537_v3_usr_crt.pem"
[Authenticate CSF]
[Install Key]
# Key to install
File= "../crts/IMG1_1_sha256_2048_65537_v3_usr_crt.pem"
# Target key slot in HAB key store where key will be installed
Target Index = 2
# Key slot index used to authenticate the key to be installed
Verification index = 0
[Authenticate Data]
# Address Offset Length Data File Path
Blocks = 0x87800400 0x400 0x00060C00 "u-boot-pad.imx"
# Key slot index used to authenticate the image data
Verification index = 2
最好的问候