Beaglebone Black

This page contains info about building seL4 on Beaglebone Black.

Building for the Beaglebone Black

These instructions were written by Tim Newsham. The Beaglebone is a community-supported port.


We suggest using the arm-linux-gnueabi- cross-compilers. Use the instructions on getting a toolchain.



Checkout the sel4test project using repo as per seL4Test

repo init -u
repo sync
mkdir cbuild
cd cbuild
../init-build -DPLATFORM=am335x -DAARCH32=1
# The default cmake wrapper sets up a default configuration for the target platform.
# To change individual settings, run `ccmake` and change the configuration
# parameters to suit your needs.

Generated binaries can be found in the images/ directory.

Booting on the Beaglebone Black

Hardware Requirements

Interacting with U-Boot

Connect a serial adapter between your development box and the Beaglebone Black. Use a serial program such as minicom or screen to connect to the serial port at 115200 bps

screen /dev/ttyUSB0 115200

Power on the device and hit enter a few times to interrupt the normal boot process and get a U-Boot prompt.

To boot from SDcard, copy the sel4test-driver-image-arm-am335x binary to a FAT32 partition on an SDCard and place the card in the Beaglebone Black. Connect the serial device, power up the Beaglebone Black, and hit ENTER to interrupt the normal boot process. Finally, enter the following commands at the U-Boot prompt to load and run the image:

fatload mmc 0 ${loadaddr} sel4test-driver-image-arm-am335x
go ${loadaddr}

To boot over Ethernet, configure your DHCP server to provide a DHCP lease and to specify sel4test (or refos) as the boot file. Configure a TFTP server to serve sel4test-driver-image-arm-am335x file. Plug the Ethernet cable and connect the serial device to the Beaglebone black. Power the device up and hit ENTER to interrupt the normal boot process. Then, at the U-Boot prompt enter:

go ${loadaddr}

To load an alternate image from the TFTP server at, use:

dhcp ${loadaddr}
go ${loadaddr}

Other resources