Zynq 7000 SoC 启动头文件 - 2023.2 简体中文

Vitis 统一软件平台文档 嵌入式软件开发 (UG1400)

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文

此外,启动头文件还包含 Zynq 7000 SoC 寄存器初始化表。在向 FSBL 交接控制权之前,BootROM 使用启动头文件来查找 FSBL 的位置和长度信息以及有关对系统进行初始化的详细信息。

Bootgen 将启动头文件附加到某一启动镜像开头处。启动头文件表为包含主启动加载程序(如 FSBL)相关启动信息的结构。此结构在整个启动镜像中唯一。该表由 BootROM 解析,以判定闪存中 FSBL 存储位置以及 OCM 中所需的 FSBL 加载位置。其中还存储有部分加密和身份验证相关的参数。

其他启动镜像组件包括:

下表提供了 AMD Zynq™ 7000 SoC 启动头文件的地址偏移、参数和描述。

表 1. Zynq 7000 SoC 启动头文件
地址偏移 参数 描述
0x00-0x1F Arm® Vector table 由 Bootgen 使用虚拟矢量表填充(Arm 操作代码 0xEAFFFFFE,即用于捕获未初始化矢量的 branch-to-self 无限循环)。
0x20 Width Detection Word 此项是识别单堆叠模式、双堆叠模式或双并行模式下的 QSPI 闪存所必需的。0xAA995566(小字节序格式)。
0x24 Header Signature 包含 4 字节的“X”、“N”、“L”、“X”(按字节顺序),按小字节序格式为 0x584c4e58
0x28 Key Source 器件中加密密钥的位置:
  • 0x3A5C3C5A:BBRAM 中的加密密钥。
  • 0xA5C3C5A3:eFUSE 中的加密密钥。
  • 0x00000000:未加密。
0x2C Header Version 0x01010000
0x30 Source Offset 此镜像文件中 FSBL(启动加载程序)的位置。
0x34 FSBL Image Length 解密后 FSBL 的长度。
0x38 FSBL Load Address (RAM) FSBL 要复制到的目标 RAM 地址。
0x3C FSBL Execution address (RAM) FSBL 执行的入口矢量。
0x40 Total FSBL Length 加密后 FSBL 的总大小,包括身份验证证书(如有)和填充。
0x44 QSPI Configuration Word 硬编码为 0x00000001
0x48 Boot Header Checksum 从偏移 0x200x44(含)的字数总和。这些字假定按小字节序。
0x4c-0x97 User Defined Fields 76 字节
0x98 Image Header Table Offset 指向镜像头文件表的指针
0x9C Partition Header Table Offset 指向分区头文件表的指针