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 the Bootgen User Guide (UG1283).
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 Bus Width Detect 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. |
0x14
|
4 | Image identification | Boot image identification
string. Contains 4 bytes X, N, L, X in byte
order, which is |
0x18
|
4 | Encryption key source | This field is used to identify
the AES key source:
|
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. Note: This shutter value must match the shutter value
that was used during PUF registration.
|
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. |