Datasheet

99
SAM9263 [DATASHEET]
Atmel-6249N-ATARM-SAM9263-Datasheet_14-Mar-16
12.4 DataFlash Boot
The DataFlash Boot program searches for a valid application in the SPI DataFlash memory. If a valid application is
found, this application is loaded into internal SRAM and executed by branching at address 0x0000_0000 after
remap. This application may be the application code or a second-level bootloader.
All the calls to functions are PC relative and do not use absolute addresses.
12.4.1 Valid Image Detection
The DataFlash Boot software looks for a valid application by analyzing the first 28 bytes corresponding to the ARM
exception vectors. These bytes must implement ARM instructions for either branch or load PC with PC relative
addressing.
The sixth vector, at offset 0x14, contains the size of the image to download. The user must replace this vector with
his own vector (see ”Structure of ARM Vector 6”).
Figure 12-3. LDR Opcode
Figure 12-4. B Opcode
Unconditional instruction: 0xE for bits 31 to 28.
Load PC with PC relative addressing instruction:
Rn = Rd = PC = 0xF
I==1
P==1
U offset added (U==1) or subtracted (U==0)
W==1
12.4.2 Structure of ARM Vector 6
The ARM exception vector 6 is used to store information needed by the DataFlash boot program. This information
is described below.
Figure 12-5. Structure of the ARM Vector 6
31 28 27 24 23 20 19 16 15 12 11 0
111001IPU0W1 Rn Rd Addressing Mode
31 28 27 24 23 0
11101010 Offset (24 bits)
31 0
Size of the code to download in bytes