[seL4] experiences running sel4 test on beagleboard

Tim Newsham tim.newsham+sel4 at gmail.com
Tue Aug 5 12:11:56 EST 2014

Here is my experience building and running seL4 on the
BeagleBoard (original, redboard, revision D).  I'm hoping
the notes will be helpful for others who arent very experience
with this platform, like myself.

Start with a BeagleBoard, a 5volt power supply (or the USB
cable for power), a SDCard and an RS232 serial connector.
Note: the BeagleBoard uses RS232 serial levels, not TTL
levels, so you'll need some kind of RS232 connector. I used
a USB<->RS232 (9-pin D-connector) cable.  The beagle board
has serial on header P9, which is a 2x5 header.

    P9 pin 2 (RX) <--> D-connector pin 3 (TX)
    P9 pin 3 (TX) <--> D-connector pin 2 (RX)
    P9 pin 5 (GND) <--> D-connector pin 5 (GND)

I use "screen" or "cu" from linux to connect to the serial line with
one of the following commands (note: I'm in linux and my
account has permissions on /dev/ttyUSB0):

    $ cu -l /dev/ttyUSB0 -s 115200
    $ screen /dev/ttyUSB0 115200

Verify that when you power on the device (no SDCard necessary
yet) you get the u-boot bootloader in your terminal.

Next get and build your seL4 image for the beagleboard. I'm
running the sel4 test project in a debug build.  You'll need to have
the proper prerequisites, as covered in the sel4 build notes.

  $ mkdir sel4/beagle
  $ cd sel4/beagle
  $ repo init -u https://github.com/seL4/sel4test-manifest.git
  $ repo sync
  $ make beagle_debug_xml_defconfig
  $ make menuconfig
  # at this point I adjusted the tools prefix to
  # "arm-none-eabi-" to match the arm toolchain I have
  $ make

At this point you've got an ELF image in the images dir. It has one
section at 0x82000000 starting at offset 0x8000 in the file, and the
start address is 0x82000000.  Mount an SDCard with a FAT filesystem
and nothing else on it and copy the image to your sdcard

  $ cp images/sel4test-driver-image-arm-omap3 /media/SDCARD/
  $ umount /media/SDCARD

now power off the beagle board, move the SDCard to the beagleboard,
power it on and interrupt the u-boot sequence to get a boot loader
prompt.  Enter the following commands to boot the image. They will
load the file so that offset 0x8000 is at 0x82000000 (by loading
the entire file 0x8000 bytes before 0x82000000).  Then it will jump
to the entry point and run the sel4 loader, kernel and tests.

  mmc rescan 0
  fatload mmc 0 0x81ff8000 sel4test-driver-image-arm-omap3
  go 0x82000000

At this point sel4 is up and running and the test program is
running through its tests!

The full output of the tests can be seen at
There are some errors printed during the test, but happily the
test ends with:

    136/136 tests passed.
    All is well in the universe.


More information about the Devel mailing list