Atmel Evaluation Kit AT91SAM9X35-EK AT91SAM9X35-EK Data Sheet

Product codes
AT91SAM9X35-EK
Page of 1301
50
SAM9X35 [DATASHEET]
11055E–ATARM–10-Mar-2014
11.
Boot Strategies
The system always boots at address 0x0. To ensure maximum boot possibilities, the memory layout can be changed
thanks to the BMS pin. This allows the user to layout the ROM or an external memory to 0x0. The sampling of the BMS
pin is done at reset.
If BMS is detected at 0, the controller boots on the memory connected to Chip Select 0 of the External Bus Interface.
In this boot mode, the chip starts with its default parameters (all registers in their reset state), including as follows:
 The main clock is the on-chip 12 MHz RC oscillator 
 The Static Memory Controller is configured with its default parameters
The user software in the external memory performs 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 timing 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 ROM Code
The ROM Code is a boot program contained in the embedded ROM. It is also called “First level bootloader”.
The ROM Code performs several steps:
Basic chip initialization: XTal or external clock frequency detection
Attempt to retrieve a valid code from external non-volatile memories (NVM)
Execution of a monitor called SAM-BA Monitor, in case no valid application has been found on any NVM
11.2 Flow Diagram
The ROM Code implements the algorithm shown below in 
Figure 11-1. ROM Code Algorithm Flow Diagram
SAM-BA Monitor
Copy and run it 
in internal SRAM 
Yes
Chip Setup
Valid boot code 
found in one 
NVM
No