
73
6462B–ATARM–6-Sep-11
SAM9G10
13. SAM9G10 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.
Then the SD Card Boot program is executed. It looks for a boot.bin file in the root directory of a
FAT12/16/32 formatted SD Card. 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 SD Card is not formatted or if boot.bin file is not found, TWI Boot program is then exe-
cuted. The TWI Boot program searches for a valid application in a 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 ARM vector sequence is found, SAM-BA Boot is then executed. It waits for transac-
tions either on the USB device, or on the DBGU serial port.