57
SAM9G45 [DATASHEET]
6438K–ATARM–12-Feb-13
11. Boot Strategies
The system always boots at address 0x0. To ensure maximum boot possibilities the memory layout can be
changed with two parameters.
REMAP allows the user to layout the internal SRAM bank to 0x0 to ease the development. This is done by
software once the system has boot.
BMS allows the user to layout to 0x0, when convenient, the ROM or an external memory. This is done by
hardware at reset.
Note: All the memory blocks can always be seen at their specified base addresses that are not concerned by these
parameters.
The SAM9G45 manages a boot memory that depends on the level on the BMS pin at reset. The internal memory
area mapped between address 0x0 and 0x000F FFFF is reserved to this effect.
If BMS is detected at 0, the boot memory is the memory connected on the Chip Select 0 of the External Bus
Interface.
Boot on on-chip RC
Boot with the default configuration for the Static Memory Controller, byte select mode, 16-bit data bus,
Read/Write controlled by Chip Select, allows boot on 16-bit non-volatile memory.
For optimization purpose, nothing else is done. To speed up the boot sequence user programmed software should
perform a complete configuration:
Enable the 32768 Hz oscillator if best accuracy is needed
Program the PMC (main oscillator enable or bypass mode)
Program and Start the PLL
Reprogram the SMC setup, cycle, hold, mode timings registers for EBI CS0 to adapt them to the new clock
Switch the system clock to the new value
If BMS is detected at 1, the boot memory is the embedded ROM and the boot program described below is
executed.
11.1
Boot Program
The Boot Program is contained in the embedded ROM. It is also called: “Rom Code” or “First level bootloader”. At
power on, if the BMS pin is detected at 1, the boot memory is the embedded ROM and the Boot Program is
executed.
The Boot Program consists of several steps. First, it performs device initialization. Then it attempts to boot from
external non volatile memories (NVM). And finally, if no valid program is found in NVM, it executes a monitor called
SAM-BA Monitor.