![](http://datasheet.mmic.net.cn/30000/MQ83C154DXXX-25-883R_datasheet_2377229/MQ83C154DXXX-25-883R_73.png)
73
6384E–ATARM–05-Feb-10
AT91SAM9G20
13. AT91SAM9G20 Boot Program
13.1
Overview
The Boot Program integrates different programs that manage download and/or upload into the
different memories of the product.
First, it initializes the Debug Unit serial port (DBGU) and the USB High Speed Device Port.
The Boot program tries to detect SPI flash memories. The Serial Flash Boot program and Data-
Flash
Boot program are executed. It looks for a sequence of seven valid ARM exception
vectors in a Serial Flash or DataFlash connected to the SPI. All these vectors must be B-branch
or LDR load register instructions except for the sixth vector. This vector is used to store the size
of the image to download.
If a valid sequence is found, code is downloaded into the internal SRAM. This is followed by a
remap and a jump to the first address of the SRAM.
If no valid ARM vector sequence is found, NAND Flash Boot program is then executed. The
NAND Flash Boot program looks for a sequence of seven valid ARM exception vectors. If such a
sequence is found, code is downloaded into the internal SRAM. This is followed by a remap and
a jump to the first address of the SRAM.
If no valid ARM exception vector is found, the SDCard Boot program is then executed. It looks
for a boot.bin file in the root directory of a FAT12/16/32 formatted SDCard on SlotA. If such a file
is found, code is downloaded into the internal SRAM. This is followed by a remap and a jump to
the first address of the SRAM.
If the SDCard is not formatted or if boot.bin file is not found, TWI Boot program is then executed.
The TWI Boot program searches for a valid application in an EEPROM memory. If such a file is
found, code is downloaded into the internal SRAM. This is followed by a remap and a jump to
the first address of the SRAM.
If no valid application is found, SAM-BA Boot is then executed. It waits for transactions either on
the USB device, or on the DBGU serial port.
13.2
Flow Diagram
The Boot Program implements the algorithm in
Figure 13-1.