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 ...