Compiling AT91bootstrap 3.7

This article illustrates how to compile at91bootstrap 3.7 for Acqua A5, Aria G25 and Arietta G25 modules

For the FOX Board G20 please read this article: AcmeBoot - A tiny bootloader for the FOX Board G20

AT91bootstrap is the 2nd level bootloader for Atmel AT91 SoC providing a set of algorithms to manage the hardware initialization such as clock speed configuration, PIO settings, DDR2 DRAM initialization. After that it downloads your main application, usually the Linux Kernel image, from the first microSD partition to the DDR2 RAM and runs it from there.

The binary executable file of at91bootstrap must be stored in the first FAT16 or FAT32 partition of the bootable SD card changing the name in boot.bin.

At startup RomBOOT, that is the 1st levet booloader saved in the Atmel MPU ROM, searches and loads boot.ini from microSD card to the SRAM located inside the MPU itself and runs it from there.

Toolchain installation

First of all you need to install the toolchain (cross compiler, linker, etc) on your Linux Ubuntu PC following this article (tested on Ubuntu 15.04):

Download AT91bootstrap v 3.7 sources

Download from GitHub the Atmel AT91boostrap version 3.7 sources:

* at91bootstrap-3.7.zip

Uncompress it by typing:

$ unzip at91bootstrap-3.7.zip

Move inside the new directory and download the patch from our GitHub repository:

Applying the patch:

~/at91bootstrap-3.7 $ patch -p1 <  at91bootstrap-3.7-nocmdline.patch

Check wich is the defconfig filename of your board

Board Ram size defconfig
Acqua A5 256 MB acqua-256m_defconfig
Acqua A5 512 MB acqua-512m_defconfig
Aria G25 128 MB aria-128m_defconfig
Aria G25 256 MB aria-256m_defconfig
Arietta G25 128 MB arietta-128m_defconfig
Arietta G25 256 MB arietta-256m_defconfig


and use it on the following command:

~/at91bootstrap-3.7 $ make defconfig

Check the configuration menu

If you want to take a look to the at91bootstrap config launch:

~/at91bootstrap-3.7 $ make menuconfig

then save and exit.

Launch the compilation

To launch the compilation type:

~/at91bootstrap-3.7 $ make CROSS_COMPILE=arm-linux-gnueabi-
...

Installation

Copy the binary just created on the first partition of SD card renaming it in boot.bin. These exaamples are valid if you are using a zImage format for your Linux image:

For Acqua A5:

~/at91bootstrap-3.7 $ cp binaries/sama5d3_acqua-sdcardboot-linux-zimage-dt-3.7.bin /media/$USER/boot/boot.bin

For Aria G25:

~/at91bootstrap-3.7 $ cp binaries/at91sam9x5_aria-sdcardboot-linux-zimage-dt-3.7.bin /media/$USER/boot/boot.bin

For Arietta G25:

~/at91bootstrap-3.7 $ cp binaries/at91sam9x5_arietta-sdcardboot-linux-zimage-dt-3.7.bin /media/$USER/boot/boot.bin