The Partition Header specifies the start and end addresses of each partition within the boot image. This helps in accurately locating and loading the partitions during the boot process.
Offset | Name | Description |
---|---|---|
0x0 | Partition Data Word Length | Encrypted partition data length |
0x4 | Extracted Data Word Length | Unencrypted data length |
0x8 | Total Partition Word Length (Includes Authentication Certificate) | The total encrypted + padding + expansion +authentication length |
0xC | Next Partition header offset | Offset of next partition header |
0x10 | Destination Execution Address (Lower Half) | The executable address of this partition after loading. |
0x14 | Destination Execution Address (Higher Half) | The executable address of this partition after loading. |
0x18 | Destination Load Address (Lower Half) | The RAM address into which this partition is to be loaded. For elf files Bootgen automatically reads from elf format. For RAW data users has to specify where to load it. For CFI and Config data it should be 0xFFFF_FFFF |
0x1C | Destination Load Address (Higher Half) | The RAM address into which this partition is to be loaded. For elf files Bootgen will automatically read from elf format. For RAW data users has to specify where to load it. For CFI and Config data it should be 0xFFFF_FFFF |
0x20 | Data Word Offset in Image | The position of the partition data relative to the start of the boot image. |
0x24 | Attribute Bits | See Partition Attributes Table |
0x28 | Section Count | If image type is elf, it says how many more partitions are associated with this elf. |
0x2C | Checksum Word Offset | The location of the checksum word in the boot image. |
0x30 | Partition ID | Partition ID |
0x34 | Hash block Authentication Certification Word Offset | The location of the Hash block Authentication Certification in the boot image when authentication exists and is zero if authentication is not enabled |
0x38 – 0x40 | IV | IV for PH’s Secure header |
0x44 | Encryption Key select |
Encryption status : 0x00000000 – Unencrypted 256-bit key sizes 0xA5C3C5A3 - eFUSE Key 0xA5C3C5A5 - eFUSE Black Key 0xA5C3C5A7 - eFUSE Obfuscated Key 0x3A5C3C5A - BBRAM Key 0x3A5C3C59 - BBRAM Black Key 0x3A5C3C57 - BBRAM Obfuscated Key 0xA35C7C53 - Boot Header Black Key 0xA35C7CA5 - Boot Header Obfuscated Key 128 and 256 bit key sizes 0x5C3CA5A3 - eFUSE User Key 0 0x5C3CA5A5 - eFUSE User key 0 Black 0x5C3CA5A7 - eFUSE User key 0 Obfuscated 0xC3A5C5A3 - eFUSE User Key 1 0xC3A5C5A5 - eFUSE User key 1 Black 0xC3A5C5A7 - eFUSE User key 1 Obfuscated 0xC5C3A5A3 - User Key 0 0xC3A5C5B3 - User Key 1 0xC5C3A5C3 - User Key 2 0xC3A5C5D3 - User Key 3 0xC5C3A5E3 - User Key 4 0xC3A5C5F3 - User Key 5 0xC5C3A563 - User Key 6 0xC3A5C573 - User Key 7 |
0x48 | IV for KEK decryption | IV for decrypting black or obfuscated key |
0x54 | Partition revocation ID | Revocation ID for partition which is valid in case of image is in encrypted format |
0x54 | Partition revocation ID | Revocation ID for partition which is valid in case of image is in encrypted format |
0x58 | Measured Boot Address | Single Byte Measured Boot Address |
0x5C | Authentication Header | Hash algorithm selection and authentication algorithm |
0x60 | Hash block length | Hash block length for Partition |
0x64 | Hash block offset | Partition hash block offset |
0x68 | Total PPK Size | Includes key alignment length in case, else actual PPK size |
0x6C | Actual PPK Size | Actual PPK size |
0x70 | Total Hash block signature size | Hash block signature Size with padding to make it aligned |
0x74 | Actual Hash block signature size | Actual Hash block signature size |
0x78 | Reserved | 0 |
0x7C | Header Checksum | A sum of the previous words in the Partition Header |
Partition Header Table Attribute
The following table lists the partition header table attributes.
Bit Field | Name | Description |
---|---|---|
31:29 | Destination Cluster |
0 - A78 Cluster 0 (or) R52 Cluster 0 1 - A78 Cluster 1 (or) R52 Cluster 1 2 - A78 Cluster 2 (or) R52 Cluster 2 3 - A78 Cluster 3 (or) R52 Cluster 3 4- R52 Cluster 4 |
28:27 | DPA CM Enable |
0x00 – Disabled 0x11 – Enabled |
26:24 | Partition Type |
0 – Reserved 1 - elf 2 - Configuration Data Object 3 - Cframe Data (PL data) 4 – Raw Data 5 – Raw elf 6 – CFI GSR CSC unmask frames 7 – CFI GSR CSC mask frames |
23 | HiVec |
VInitHi setting for RPU/APU(32-bit) processor. 0 – LoVec 1 – HiVec |
22:21 | Reserved | 0 |
20:19 | TCM Boot Flag | 00 – TCM Boot Flag Not set by User 11 - TCM Boot Flag set by Use |
18 | BE or LE |
0 – Little Endian (Default) 1 – Big Endian |
17:16 | Partition Owner |
0 - PLM (Default) 1 - Non-PLM 2,3 – Reserved |
15:14 | Reserved | |
13:12 | Checksum Type |
00b - No Checksum (Default) 11b – SHA3 |
11:8 | Destination CPU |
0 – None (Default for non-elf files) 1 - A78-0 2 - A78-1 3 – A78-2 4 – A78-3 5 - R52-0 6 - R52-1 7- Reserved 8 – ASU 9 – AIE 10-15 – Reserved |
7:6 | Reserved | |
5:4 | Cluster Lockstep |
0x0 – Lockstep Disabled 0x3 – Lockstep Enabled |
3 | A78 CPU execution state |
0 - Aarch64 (default) 1 - Aarch32 |
2:1 | EL level the A78 core should be configured for |
00b – EL0 01b – EL1 10b – EL2 11b – EL3 (Default) |
0 | TZ secure partition |
0 – Non-Secure 1 – Secure (Default) This bit indicates if the PLM is required to configure the core (on which this partition needs to execute) must be configured as TZ secure or not. Default value is 0. |