ZHCSBT2G November 2012 – October 2017 66AK2H06 , 66AK2H12 , 66AK2H14
PRODUCTION DATA.
The boot sequence is a process by which the internal memory is loaded with program and data sections. The boot sequence is started automatically after each power-on reset or warm reset.
The 66AK2Hxx supports several boot processes that begin execution at the ROM base address, which contains the bootloader code necessary to support various device boot modes. The boot processes are software-driven and use the BOOTMODE[15:0] device configuration inputs to determine the software configuration that must be completed. For more details on boot sequence, see the KeyStone II Architecture ARM Bootloader User's Guide.
For 66AK2Hxx nonsecure devices, there are two types of booting: the C66x CorePac as the boot master and the ARM CorePac as the boot master. For secure devices, the C66x CorePac is always the secure master and the C66x CorePac0 or ARM CorePac Core0 can be the boot master. The ARM CorePac does not support no-boot mode. Both the C66x CorePacs and the ARM CorePac need to read the BOOTMODE register to determine how to proceed with the boot.
Table 10-1 shows memory space reserved for boot by the C66x CorePac.
START ADDRESS | SIZE | DESCRIPTION |
---|---|---|
0x80_0000 | 0x1_0000 | Reserved |
0x8e_7f80 | 0x80 | C66x CorePac ROM version string |
0x8e_8000 | 0x7f00 | Boot Master Table overlayed with scratch |
0x8e_767c | 4 | Boot Master Table Valid Length Field |
0x8e_fff0 | 4 | Host Data Address (boot magic address for secure boot through master peripherals) |
0x8f_7800 | 0x410 | Secure host Data structure |
0x8f_a290 | 0x4000 | Boot Stack |
0x8f_e290 | 0x90 | Boot Log Data |
0x8f_e320 | 0x20 | Boot Status Stack |
0x8f_e410 | 0xf0 | Boot Stats |
0x8f_e520 | 0x13fc | Boot Data |
0x8f_f91c | 0x404 | Boot Trace Info |
0x8f_fd20 | 0x180 | DDR Config |
0x8f_fea0 | 0x60 | Boot RAM call table |
0x8f_ff00 | 0x80 | Boot Parameter table |
0x8f_fff8 | 0x4 | Secure Signal Magic address |
0x8f_fffc | 0x4 | Boot Magic address |
Table 10-2 shows addresses reserved for boot by the ARM CorePac.
START ADDRESS | SIZE | DESCRIPTION |
---|---|---|
0xc57_e000 | 0xc00 | Context RAM not scrubbed on secure boot |
0xc58_6f80 | 0x80 | Global level 0 nonsecure translation table |
0xc58_7000 | 0x5000 | Global nonsecure page table for memory covering ROM |
0xc58_c000 | 0x1000 | Core 0 nonsecure level 1 translation table |
0xc58_d000 | 0x1000 | Core 1 nonsecure level 1 translation table |
0xc58_e000 | 0x1000 | Core 2 nonsecure level 1 translation table |
0xc58_f000 | 0x1000 | Core 3 nonsecure level 1 translation table |
0xc59_0000 | 0x7f00 | Packet memory buffer |
0xc59_7f00 | 4 | Host Data Address (boot magic address for secure boot through master peripherals) |
0xc5a_6e00 | 0x200 | DDR3a configuration structure |
0xc5a_7000 | 0x3000 | Boot Data |
0xc5a_a000 | 0x3000 | Supervisor stack, each core gets 0xc00 bytes |
0xc5a_d000 | 4 | Arm boot magic address, core 0 |
0xc5a_d004 | 4 | Arm boot magic address, core 1 |
0xc5a_d008 | 4 | Arm boot magic address, core 2 |
0xc5a_d00c | 4 | Arm boot magic address, core 3 |
0xc5a_e000 | 0x400 | Abort stack, core 0 |
0xc5a_e400 | 0x400 | Abort stack, core 1 |
0xc5a_e800 | 0x400 | Abort stack, core 2 |
0xc5a_ec00 | 0x400 | Abort stack, core 3 |
0xc5a_f000 | 0x400 | Unknown mode stack, core 0 |
0xc5a_f400 | 0x400 | Unknown mode stack, core 1 |
0xc5a_f800 | 0x400 | Unknown mode stack, core 2 |
0xc5a_fc00 | 0x400 | Unknown mode stack, core 3 |
0xc5b_0000 | 0x180 | Boot Version string, core 0 |
0xc5b_0180 | 0x80 | Boot status stack, core 0 |
0xc5b_0200 | 0x100 | Boot stats, core 0 |
0xc5b_0300 | 0x100 | Boot log, core 0 |
0x5b_0400 | 0x100 | Boot RAM call table, core 0 |
0xc5b_0500 | 0x100 | Boot parameter tables, core 0 |
0xc5b_0600 | 0x19e0 | Boot Data, core 0 |
0xc5b_1fe0 | 0x1010 | Boot Trace, core 0 |
0xc5b_4000 | 0x180 | Boot Version string, core 1 |
0xc5b_4180 | 0x80 | Boot status stack, core 1 |
0xc5b_4200 | 0x100 | Boot stats, core 1 |
0xc5b_4300 | 0x100 | Boot log, core 1 |
0x5b_4400 | 0x100 | Boot RAM call table, core 1 |
0xc5b_4500 | 0x100 | Boot parameter tables, core 1 |
0xc5b_4600 | 0x19e0 | Boot Data, core 1 |
0xc5b_5fe0 | 0x1010 | Boot Trace, core 1 |
0xc5b_8000 | 0x180 | Boot Version string, core 2 |
0xc5b_8180 | 0x80 | Boot status stack, core 2 |
0xc5b_8200 | 0x100 | Boot stats, core 2 |
0xc5b_8300 | 0x100 | Boot log, core 2 |
0x5b_8400 | 0x100 | Boot RAM call table, core 2 |
0xc5b_8500 | 0x100 | Boot parameter tables, core 2 |
0xc5b_8600 | 0x19e0 | Boot Data, core 2 |
0xc5b_9fe0 | 0x1010 | Boot Trace, core 2 |
0xc5b_c000 | 0x180 | Boot Version string, core 3 |
0xc5b_c180 | 0x80 | Boot status stack, core 3 |
0xc5b_c200 | 0x100 | Boot stats, core 3 |
0xc5b_c300 | 0x100 | Boot log, core 3 |
0x5b_c400 | 0x100 | Boot RAM call table, core 3 |
0xc5b_c500 | 0x100 | Boot parameter tables, core 3 |
0xc5b_c600 | 0x19e0 | Boot Data, core 3 |
0xc5b_dfe0 | 0x1010 | Boot Trace, core 3 |
0xc5c_0000 | 0x4_0000 | Secure MSMC |