Atmel Evaluation Kit AT91SAM9M10-G45-EK AT91SAM9M10-G45-EK Data Sheet

Product codes
AT91SAM9M10-G45-EK
Page of 1361
 53
SAM9M10 [DATASHEET]
6355F–ATARM–12-Mar-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 SAM9M10 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.