Versal AI Edge Series Gen 2 and Versal Prime Series Gen 2 Boot Header - 2025.1 English - UG1283

Bootgen User Guide (UG1283)

Document ID
UG1283
Release Date
2025-05-29
Version
2025.1 English

The boot header is used by BootROM in Versal AI Edge Series Gen 2 and Versal Prime Series Gen 2 devices. Based on the attributes set in the boot header, it validates the platform loader and manager (PLM) and loads it to the PMC RAM. The initial 16 bytes are reserved for SelectMAP bus width detection. BootROM/PLM ignores this data, so Bootgen does not include this data in any of the operations for example checksum, SHA, and encryption. The boot header is always in plain text.

The following are the values in binaries used for detecting SMAP width while in table it is pattern used for that purpose.

  • X8: [LSB] 00 00 00 DD 11 22 33 44 55 66 77 88 99 AA BB CC [MSB]
  • X16: [LSB] 00 00 DD 00 22 11 44 33 66 55 88 77 AA 99 CC BB [MSB]
  • X32: [LSB] DD 00 00 00 44 33 22 11 88 77 66 55 CC BB AA 99 [MSB]
Note: The default SelectMAP width is X32.
Table 1. Versal AI Edge Series Gen 2 and Versal Prime Series Gen 2 Boot Header Table
Start Offset (Dec) Start Offset (Hex) Size (B) Size (words) Field Description
0 0x0 16 4 SMAP Bus Width Words Used to determine the SMAP bus width X8: [LSB] 00 00 00 DD 11 22 33 44 55 66 77 88 99 AA BB CC [MSB] X16: [LSB] 00 00 DD 00 22 11 44 33 66 55 88 77 AA 99 CC BB [MSB] X32: [LSB] DD 00 00 00 44 33 22 11 88 77 66 55 CC BB AA 99 [MSB]
16 0x10 4 1 Width detection 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.
20 0x14 4 1 Image identification Boot image identification string. Contains 4 bytes X, N, L, X in byte order, which is 0x584c4e58 in the little-endian format.
24 0x18 4 1 Encryption status AES Key Source and Type
28 0x1C 4 1 Source offset Source offset of PMCFW in DPI
32 0x20 4 1 PMC CDO load address Data partition start address to load
36 0x24 4 1 PMC CDO length Data partition size
40 0x28 4 1 Total PMC CDO length Data partition size including authentication and encryption overhead
44 0x2C 4 1 PLM length PMCFW size
48 0x30 4 1 Total PLM length PMCFW partition size including authentication and encryption overhead
52 0x34 4 1 Image attributes Image Attributes
56 0x38 32 8 Grey/Black Key Boot header black/Grey key storage
88 0x58 12 3 Grey/Black IV Boot header black/Grey IV storage
100 0x64 12 3 Secure Header IV for Hash Block Secure header IV
112 0x70 4 1 PUF Shutter Value PUF shutter value
116 0x74 4 1 Ring Oscillator Config value Ring Oscillator Value, Default is zero
120 0x78 4 1 Partition revocation ID Partition revocation ID
124 0x7C 516 129 User Data User Data (Default - fill with zeroes)
640 0x280 4 1 Authentication Header-1 Authentication Header
644 0x284 4 1 HASH Block Size - 1 HASH Block size - Filled with Zeros (for optional block)
648 0x288 4 1 Total PPK Size - 1 PPK Size with padding to align
652 0x28C 4 1 Actual PPK Size - 1 Actual PPK 1 Size
656 0x290 4 1 Total PDI Signature Size - 1 Signature Size with padding to align
660 0x294 4 1 Actual PDI Signature Size - 1 Actual PDI Signature 1 Size
664 0x298 56 14 ROM Reserved Reserved. Fill with zeroes
720 0x2D0 100 25 PLM Reserved Reserved for PLM
820 0x334 2048 512 Reg Init Register initialization. Same as that of Alto
2868 0xB34 1544 386 PUF HD PUF Helper data
4412 0x113C 4 1 Check Sum checksum is calculated from 0x10 till 0x1138 First, sum all the values then negate that and extract 4 bytes out of it.