Package1: Difference between revisions

add package1 header format
Line 7: Line 7:


== Package1ldr ==
== Package1ldr ==
The code for this stage is stored in plaintext inside the package. By looking into the BCT's bootloader0_info (normal) or bootloader1_info (safe mode), the boot ROM starts executing this stage at address 0x40010020 in IRAM.
The code for this stage is stored in plaintext inside the package. By looking into the BCT's bootloader0_info (normal) or bootloader1_info (safe mode), the boot ROM starts executing this stage at address 0x40010020 in IRAM (0x40010040 for 4.0.0+).
 
=== Header ===
 
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x4
| Package1ldr hash (first four bytes of SHA256(package1ldr)).
|-
| 0x4
| 0x4
| Secure Monitor hash (first four bytes of SHA256(secure_monitor)).
|-
| 0x8
| 0x4
| NX Bootloader hash (first four bytes of SHA256(nx_bootloader)).
|-
| 0xC
| 0x4
| Unknown hash
|-
| 0x10
| 0xE
| Build Timestamp (yyyyMMddHHmmss)
|-
| 0x1E
| 0x2
| Unknown (version?)
|-
|}


=== Initialization ===
=== Initialization ===