SAM4CP [DATASHEET]
43051E–ATPL–08/14
36
8.1.5
Boot Strategy
Figure 8-4
below shows a load view of the memory at boot time.
Figure 8-4.
Simplified Load View at Boot Time
8.1.5.1 Application Core (Core 0) Boot Process
The application processor (CM4P0) always boots at the address 0x0. To ensure maximum boot possibilities, the memory
layout can be changed via GPNVM. A General Purpose NVM (GPNVM) bit is used to boot either on the ROM (default) or
from the Flash. The GPNVM bit can be cleared or set through the commands “Clear General-purpose NVM Bit” and “Set
General-purpose NVM Bit” of the EEFC User Interface respectively. Setting GPNVM Bit 1 selects the boot from the Flash
whereas clearing this bit selects the boot from the ROM. Asserting ERASE clears the GPNVM Bit 1 and thus selects the
boot from the ROM by default.
8.1.5.2 Coprocessor Core (Core 1) Boot Process
After reset, the Sub-system 1 is hold in reset and with no clock. It is up to the Master Application (Core 0 Application)
running on the Core 0 to enable the Sub-system 1. Then the application code can be downloaded into the CM4P1 Boot
memory (SRAM1), and CM4P0 can afterwards deassert the CM4P1 reset line. The secondary processor (CM4P1)
always identifies SRAM1 as “Boot memory”.
8.1.5.3 Sub-system 1 Startup Sequence
After the Core 0 is booted from Flash, the Core 0 Application must perform the following steps:
1.
Enable Core 1 System Clock (Bus and peripherals).
2.
Enable Core 1 Clock.
3.
Release Core 1 System Reset (Bus and peripherals).
4.
Enable SRAM1 and SRAM2 Clock.
5.
Copy Core 1 Application from Flash into SRAM1.
6.
Release Core 1 Reset.
After Step 6, the Core 1 boots from SRAM1 Memory.
SRAM0
SRAM1
Core 0
Application Core
(Cortex-M4)
ICode / DCode Bus
S-Bus
ICode / DCode Bus
S-Bus
SRAM2
Flash
Core 0
Application
Core1
Application
(Binary Img.)
Clock & Reset
Control
Core 1
Coprocessor Core
(Cortex-M4F)
Sub-system 0
Sub-system 1
Note: Matrices, AHB and APB Bridges are not represented.
MPU
NVIC
FPU
NVIC