Zynq-7000 SoC Boot Header - 2021.2 English

Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400)

Document ID
English (United States)
Release Date
2021.2 English

Bootgen attaches a boot header at the beginning of a boot image. The boot header table is a structure that contains information related to booting the primary bootloader, such as the FSBL. There is only one such structure in the entire boot image. This table is parsed by BootROM to get determine where FSBL is stored in flash and where it needs to be loaded in OCM. Some encryption and authentication related parameters are also stored in here. The additional boot image components are:

Additionally, the Boot Header contains a Zynq-7000 SoC Register Initialization Table. BootROM uses the boot header to find the location and length of FSBL and other details to initialize the system before handing off the control to FSBL.

The following table provides the address offsets, parameters, and descriptions for the Zynq®-7000 SoC Boot Header.

Table 1. Zynq-7000 SoC Boot Header
Address Offset Parameter Description
0x00-0x1F Arm® Vector table Filled with dummy vector table by Bootgen (Arm Op code 0xEAFFFFFE, which is a branch-to-self infinite loop intended to catch uninitialized vectors.
0x20 Width Detection Word This is required to identify the QSPI flash in single/dual stacked or dual parallel mode. 0xAA995566 in little endian format.
0x24 Header Signature Contains 4 bytes ‘X’,’N’,’L’,’X’ in byte order, which is 0x584c4e58 in little endian format.
0x28 Key Source Location of encryption key within the device:
  • 0x3A5C3C5A: Encryption key in BBRAM.
  • 0xA5C3C5A3: Encryption key in eFUSE.
  • 0x00000000: Not Encrypted.
0x2C Header Version 0x01010000
0x30 Source Offset Location of FSBL (bootloader) in this image file.
0x34 FSBL Image Length Length of the FSBL, after decryption.
0x38 FSBL Load Address (RAM) Destination RAM address to which to copy the FSBL.
0x3C FSBL Execution address (RAM) Entry vector for FSBL execution.
0x40 Total FSBL Length Total size of FSBL after encryption, including authentication certificate (if any) and padding.
0x44 QSPI Configuration Word Hard coded to 0x00000001.
0x48 Boot Header Checksum Sum of words from offset 0x20 to 0x44 inclusive. The words are assumed to be little endian.
0x4c-0x97 User Defined Fields 76 bytes
0x98 Image Header Table Offset Pointer to Image Header Table
0x9C Partition Header Table Offset Pointer to Partition Header Table