Compiling AT91bootstrap

AT91bootstrap is the 2nd level bootloader used by the Microchip ARM MPUs to initializate the internal hardware (clocks, peripherals, DDR DRAM, etc) at startup and load the Linux Kernel image from the first microSD partition. This article illustrates how to compile at91bootstrap for the RoadRunner module

Tested with at91bootstrap version 3.9

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 16.04):

Download the latest AT91bootstrap version from Microchip GitHub repository:

The GitHub repository is available here:

Clone this repository in your Linux PC by typing:

git clone
cd at91bootstrap

Set the board configuration


make sama5d2_roadrunner_defconfig

Acqua with 256MB of RAM:

make acqua-256m_defconfig

Acqua with 512MB of RAM:

make acqua-512m_defconfig

Aria with 128MB of RAM:

make aria-128m_defconfig

Aria with 256MB of RAM:

make aria-128m_defconfig

Arietta with 128MB of RAM:

make arietta-128m_defconfig

Arietta with 256MB of RAM:

make arietta-256m_defconfig

Change the default configuration

If you want to take a look to the at91bootstrap configuration run:

make menuconfig


launch the compilation by typing:

make CROSS_COMPILE=arm-linux-gnueabihf-

it will generate a binary fine in ./binaries directory with a different name for any board type.

A symbolic link is generated automatically during the at91bootstrap compilation so you can refer to it with the name boot.bin.

Copy boot.bin on the first microSD partition by typing:

cp binaries/boot.bin /media/$USER/BOOT

On the Roadrunner board Be sure that PA30 (MMC1 CD) is wired on GND.

To boot at91bootstrap using the QuadSPI of the Roadrunner follow this guide:

Sergio Tanzilli
System designer and Acme co-founder
Personal email:
Webpages: - -
Github repositories: and

Bruna Mandolino