Boot Header

Versal ACAP Technical Reference Manual (AM011)

Document ID
AM011
Release Date
2022-04-26
Revision
1.4 English

The boot header in the programmable device image (PDI) is read by the PMC ROM code unit (RCU) to determine key information such as the platform loader and manager (PLM) location and size, the boot mode bus width, and security encryption key details. The boot header format information is listed in the following table. For additional information on the PDI format, boot header, boot header attributes, meta header, or partition headers see Bootgen User Guide (UG1283).

Table 1. Boot Header Format
Offset (Hex) Size (Bytes) Description Details
0x00 16 SelectMAP bus width Used to determine if the SelectMAP bus width is x8, x16, or x32.

See SelectMAP Pattern and Bit Order for the unique entries.

0x10 4 QSPI bus width QSPI bus width description.

This is required to identify the QSPI flash in single/dual stacked or dual parallel mode. 0xAA995566 in the little endian format.

0x14 4 Image identification Boot image identification string.

Contains 4 bytes X, N, L, X in byte order, which is 0x584c4e58 in the little endian format.

0x18 4 Encryption key source This field is used to identify the AES key source:

0x00000000 - Unencrypted

0xA5C3C5A3 - eFUSE red key

0xA5C3C5A5 - eFUSE black key

0x3A5C3C5A - BBRAM red key

0x3A5C3C59 - BBRAM black key

0xA35C7C53 - Boot header black key

0x1C 4 PLM source offset PLM source start address in PDI.
0x20 4 PMC data load address PMC CDO address to load. The PMC CDO data load address must be 0xF200_0000 for proper PLM operation.
0x24 4 PMC data length PMC CDO length.
0x28 4 Total PMC data length PMC CDO length including authentication and encryption overhead.
0x2C 4 PLM length PLM original image size.
0x30 4 Total PLM length PLM image size including the authentication and encryption overhead.
0x34 4 Boot header attributes Boot header attributes.
0x38 32 Black key 256-bit key, only valid when encryption status is set to black key in boot header.
0x58 12 Black IV Initialization vector used when decrypting the black key.
0x64 12 Secure header IV Secure header initialization vector.
0x70 4 PUF shutter value Length of time the PUF samples before it closes the shutter.
0x74 12 Secure header IV for PMC data The IV used to decrypt secure header of PMC data.
0x80 68 reserved Populate with zeroes.
0xC4 4 Meta header offset Offset to the start of the meta header.
0xC8-0x124 96 reserved  
0x128 2048 Register initialization Stores register write pairs for system register initialization. See TRM Boot Header Register Initialization Feature section and Bootgen User Guide (UG1283) for more detail.
0x928 1544 PUF helper data PUF helper data.
0xF30 4 Checksum Header checksum. The boot header checksum covers offset range 0x10 to 0xF30.
0xF34 76 SHA3 padding SHA3 standard padding.