Edit online

AIC 启动镜像格式

28 May 2024
Read time: 2 minute(s)

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

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

Block1

(256B)

Magic4特征字符串,固定为 ”AIC ”
Checksum432 bit 累加和校验的校验值。安全启动方案设为 0.
Header version4本文件头结构的版本号,当前版本为 v1.0: 0x00010001
Image length4从文件开头到结束的总数据长度
Firmware version4固件版本号,不同版本之间应单调递增
Loader length4第一级引导程序的有效数据的长度,不包括填充数据
Load address4镜像数据加载到内存的目标地址
Entry point4第一级引导程序的可执行代码入口地址
Signature algorithm40:没有签名,仅计算 Checksum。1:RSA-2048。
Encryption algorithm40:固件不加密。1:AES-128-CBC 加密
Signature result offset4数字签名数据区域的偏移,从文件头开始计算
Signature result length4数字签名的长度
Signature key offset4RSA 公钥数据区域的偏移
Signature key length4RSA 公钥数据的长度
IV data offset4AES-CBC IV 数据区域的偏移
IV data length4IV 的长度
Private data offset4第一级引导程序私有数据区域的偏移
Private data length4第一级引导程序私有数据区域的长度
PBP offset4PBP 数据区域的偏移
PBP length4PBP 数据的长度
Padding176填充,使得头部刚好 256 字节
Block2Loader binary dataX第一级引导程序的保存区域
PaddingX增加填充,使得 256 字节对齐
Block3Private data areaX存放镜像代码中可能使用的私有数据。
Signature key areaX存放 RSA 公钥,DER 格式的密钥文件。应 4 字节对齐。
IV data area16存放 AES IV 数据,16 字节。应 4 字节对齐。
PBP areaX存放 PBP 程序。应 16 字节对齐。
PaddingX填充,使得 256 byte 对齐,方便计算数字签名
-Block4Signature result area256前面所有内容的数字签名

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

2. NAND Page Table 格式
IndexContent (20 Bytes)
0Magic(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 数据的校验值。