“Partition Header”(分区头文件)为阵列结构,其中包含每个分区的相关信息。每个分区头文件表均由启动加载程序进行解析。该表中将包含分区大小、闪存中的地址、RAM 中的加载地址、已加密/已签名等信息。针对每个分区(包含 FSBL)均存在一个此类结构。表中最后一个结构将全部标记
NULL
值(校验和除外)。下表显示了有关
Zynq®-7000 SoC 分区头文件的偏移、名称和注释。注释: 含三 (3) 个可加载节的 ELF 文件包含 1 个镜像头文件表和三 (3) 个分区头文件表。
偏移 | 名称 | 注释 |
---|---|---|
0x00 | 已加密的分区长度 | 已加密的分区数据长度。 |
0x04 | 未加密的分区长度 | 未加密的数据长度。 |
0x08 | 分区总字长(包括身份验证证书)。请参阅 Zynq-7000 SoC 身份验证证书。 | 分区总字长由已加密的信息长度(含填充)、扩展长度和身份验证长度组成。 |
0x0C | 目标加载地址。 | 此分区要加载到的 RAM 地址。 |
0x10 | 目标执行地址。 | 此分区执行时的入口点。 |
0x14 | 镜像中的数据字偏移 | 与启动镜像开始位置相关的分区数据的位置 |
0x18 | 属性位数 | 请参阅 Zynq-7000 SoC 分区属性位 |
0x1C | 节数 | 单一分区内的节数。 |
0x20 | 校验和字偏移 | 启动镜像中对应校验和字的位置。 |
0x24 | 镜像头文件字偏移 | 启动镜像中对应镜像头文件的位置。 |
0x28 | 身份验证证书字偏移 | 启动镜像中对应身份验证证书的位置。 |
0x2C-0x38 | 保留 | 保留 |
0x3C | 头文件校验和 | “分区头文件”中的先前字数总和。 |