Edit online

AIC 启动镜像格式

ArtInChip BROM 所使用的启动镜像格式。

表 1. AIC 启动镜像格式
数据区域 数据分块 字段 字节 描述
Signed Area

Block1

(256B)

Magic 4 特征字符串,固定为 ”AIC ”
Checksum 4 32 bit 累加和校验的校验值。安全启动方案设为 0.
Header version 4 本文件头结构的版本号,当前版本为 v1.0: 0x00010001
Image length 4 从文件开头到结束的总数据长度
Firmware version 4 固件版本号,不同版本之间应单调递增
Loader length 4 第一级引导程序的有效数据的长度,不包括填充数据
Load address 4 镜像数据加载到内存的目标地址
Entry point 4 第一级引导程序的可执行代码入口地址
Signature algorithm 4 0:没有签名,仅计算 Checksum;1:RSA-2048;
Encryption algorithm 4 0:固件不加密;1:AES-128-CBC 加密
Signature result offset 4 数字签名数据区域的偏移,从文件头开始计算
Signature result length 4 数字签名的长度
Signature key offset 4 RSA 公钥数据区域的偏移
Signature key length 4 RSA 公钥数据的长度
IV data offset 4 AES-CBC IV 数据区域的偏移
IV data length 4 IV 的长度
Private data offset 4 第一级引导程序私有数据区域的偏移
Private data length 4 第一级引导程序私有数据区域的长度
PBP offset 4 PBP 数据区域的偏移
PBP length 4 PBP 数据的长度
Padding 176 填充,使得头部刚好 256 字节
Block2 Loader binary data X 第一级引导程序的保存区域
Padding X 增加填充,使得 256 字节对齐
Block3 Private data area X 存放镜像代码中可能使用的私有数据。
Signature key area X 存放 RSA 公钥,DER 格式的密钥文件。应 4 字节对齐。
IV data area 16 存放 AES IV 数据,16 字节。应 4 字节对齐。
PBP area X 存放 PBP 程序。应 16 字节对齐。
Padding X 填充,使得 256 byte 对齐,方便计算数字签名
- Block4 Signature result area 256 前面所有内容的数字签名

对于 NAND,在保存第一级引导程序的时候,还会在每个 NAND Block 的第一个 Page 生成 Page Table。Page Table 的作用是用于快速索引镜像数据所在的不同备份 Page 地址。

表 2. NAND Page Table 格式
Index Content (20 Bytes)
0 Magic(4 Bytes) Count(4 Bytes) Padding (12 Bytes)
1

PA(4 Bytes)

(Backup 0)

PA(4 Bytes)

(Backup 1)

PA(4 Bytes)

(Backup 2)

PA(4 Bytes)

(Backup 3)

Checksum

(4 Bytes)

2

PA(4 Bytes)

(Backup 0)

PA(4 Bytes)

(Backup 1)

PA(4 Bytes)

(Backup 2)

PA(4 Bytes)

(Backup 3)

Checksum

(4 Bytes)

… … … … … …

Magic 开头的 20 字节,是 Page Table 的头信息,其中 Magic 的值固定为 “AICP”, Count 表示 BootLoader 的数据被分为几个 Page 进行保存。

从 Index 1 表示 BootLoader 的第一个 Page 数据有 4 个备份,被分别存放在对应 PA(Page address) 所指的 NAND Page 中,Checksum 值是该 Page 数据的校验值。