Booting Barrelfish on PandaBoard

If you are building Barrelfish for the first time, please have a look at the README file and the notes given in Getting_Started.

Instructions how to get an extra serial/uart interface connected to your computer are here.

Toolchain

In addition to the requirements listed in Getting_Started, we are using the Ubuntu/Linaro toolchain for cross-compiling ARM.

$ arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Building a Barrelfish PandaBoard image

We need to build for armv7 and then run make PandaboardES:

$ mkdir build; cd build
$ ../tip/hake/hake.sh -i . -s ../tip/ -a armv7

Then run the following:

$ make -j4 PandaboardES
...
OK - pandaboard boot image is built.

This creates the boot image armv7_omap44xx_image.

Building usbboot

To boot armv7_omap44xx_image on a Pandaboard we need usbboot. The Barrelfish source tree now contains a copy of usbboot.

Additional packages for building it are required:

sudo apt-get install libusb-1.0-0-dev freebsd-glue libfreebsd-glue-0 libelf-freebsd-dev

The Makefile will build usbboot on demand. It can be built explicitly using

make tools/bin/usbboot

Booting barrelfish

Connect to the serial:

$ picocom -b 115200 /dev/ttyUSB0

And boot PandaBoard using usbboot

make usbboot_panda

You should see Barrelfish booting on your picocom window:

MMU enabled
paging_arm_reset: base: 0x80000000, length: 0x40000000.
invalidate cache
invalidate TLB
startup_early
kernel_startup_early done!
paging_map_device_section: 0x8400c000, 0xffe00000, 0x48020000.
omap serial_init[2]: base = 0xffe00000 0xffe20000
omap serial_init[2]: done.
Barrelfish CPU driver starting on ARMv7 OMAP44xx Board id 0x000008e0
...

BarrelfishWiki: PandaBoard (last edited 2016-10-25 20:23:38 by LukasHumbel)