Spartan UltraScale+ 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 Spartan UltraScale+. 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 meant for SelectMAP bus width detection. BootROM/PLM ignores this data, so Bootgen should not include this data in any of its operations like checksum, SHA, and encryption. The boot header is always in plain text.

Table 1. Spartan UltraScale+ Boot Header
Offset Size (Byte) Name Description
0x0 16 SelectMAP Bus Width Words

Used to determine if the SelectMAP bus width is x8, x16, or x32.

0x10 4 Width Detection QSPI bus width description. This is required to identify the QSPI flash in single or dual stacked mode. 0xAA995566 in little endian format.
0x14 4 Image Identification Boot image identification string. Contains four bytes (X, N, L, and X) in byte order, which is 0x584c4e58 in the little endian format.
0x18 4 Encryption Key Source AES key source and type :
  • 0x00000000 Un-encrypted
  • 0xA5C3C5A3 eFUSE Key
  • 0xA5C3C5A5 eFUSE PUF KEK
  • 0xA5C3C5A7 eFUSE Family KEK
  • 0xA35C7C53 BH PUF KEK
  • 0xA35C7CA5 BH Family KEK
0x1C 4 Source Offset Source offset of PLM in PDI
0x20 4 PL Data Load Address Data partition start address to load
0x24 4 PL Data Length Data partition size
0x28 4 Total PL Data Length Data partition size including auth and enc overhead
0x2C 4 PLM Length PLM size
0x30 4 Total PLM Length PLM image size including auth and enc overhead
0x34 4 Boot Header Attributes Refer to the table in Spartan UltraScale+ Boot Header Attributes
0x38 32 Grey/Black Key Boot header black/grey key storage
0x58 12 Grey/Black IV Boot header black/grey IV storage
0x64 12 Secure Header IV for Hash Block Secure header IV
0x70 4 Encryption Revocation ID Encryption revocation ID
0x74 4 Authentication Header - 1 Hash algorithm selection, authentication algorithm is explained in Spartan UltraScale+ Authentication Certificate.
0x78 4 HASH Block Size - 1 HASH block size filled with zeros (for optional block)
0x7C 4 Total PPK Size - 1 PPK Size with padding to make it aligned
0x80 4 Actual PPK Size - 1 Actual PPK 1 size
0x84 4 Total PDI Signature Size - 1 Signature size with padding to make it aligned
0x88 4 Actual PDI Signature Size - 1 Actual PDI signature size 1
0x8C 4 PUF Image Id PUF PDI identification string
0x90 4 PUF Shutter Value PUF shutter value
0x94 4 Ring Oscillator Config Value Ring oscillator value, default is zero
0x98 4 PUF HD Length PUF helper data size
0x9C 60 ROM Reserved Reserved, fill with zeroes
0xD8 4 User Defined Component Revision User defined component revision
0xDC 96 PLM Reserved Reserved, used by PLM
0x13C 512 Reg Init Register initialization
0x33C 4 Check Sum Checksum is calculated at 0x338