Hi Nick,
welcome to the mailing list!
I'm trying to build the Pi platform.
Running: gcc-arm-linux-gnueabi --version gives: arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Why are you using the Linaro tool chain? The Genode tool chain should work just fine as it supports both x86 and ARM. Please follow the instructions given here:
http://genode.org/download/tool-chain
Program core/rpi/core COMPILE _main.o cc1plus: error: unrecognized command line option ‘-std=gnu++11’ make[3]: *** [_main.o] Error 1 make[2]: *** [core.prg] Error 2 make[1]: *** [gen_deps_and_build_targets] Error 2 make[1]: Leaving directory `/home/nick/genode-13.08/build.rpi' Error: Genode build failed make: *** [run/demo] Error 255
It looks like the GCC version 4.6 does not support C++11. Switching to the Genode tool chain should solve the problem.
The Raspberry-Pi support as contained in Genode's master branch does support basic devices such as the IRQ controller, UART, and timer. So for a start, I'd recommend to start with a simpler scenario. The simplest one is possibly 'base/run/printf'. It starts a program that prints some messages over UART. Once you got this one working, you could do the next step. For doing so, you might be interested in the following branch:
https://github.com/nfeske/genode/commits/rpi
This is my current topic branch for the Raspberry Pi. It contains drivers for the framebuffer and USB HID. The latter one is not working perfectly yet though. So please be prepared for a somewhat bumpy ride. ;-)
The USB-driver support is contained in the 'dde_linux' repository. It is based on the Linux USB stack. You will need to download the Linux sources by issuing 'make prepare' from within 'dde_linux'. Before compiling the USB driver, you will also need to obtain the dwc-otg (that is the USB host controller) driver as contained in the Raspberry-Pi version of the Linux kernel (unfortunately this driver is not contained in the mainline of Linux):
https://github.com/raspberrypi/linux.git
After checking out the rpi-3.10.y branch, you will find the driver at 'drivers/usb/host' in the directories called 'dwc_common_port' and 'dwc_otg'. To make those files accessible to 'dde_linux', create symlinks pointing those directories at 'dde_linux/contrib/drivers/usb/host/'. For the record, I have reduced the number of used USB host channels ('dwc_param_host_channels_default') from 8 to 2 (in 'drivers/usb/host/dwc_otg/dwc_otg_core_if.h').
As of now, I have not implemented the support for the FIQ optimization that is needed to reduce the IRQ load to a bearable level on Linux. Hence, on Genode, the USB driver is still severely impeding the system performance. However, with the branch above, you can principally execute the 'run/demo' scenario. (Don't forget to add the 'dde_linux' repository to the 'REPOSITORIES' declaration in your '<build-dir>/etc/build.conf' file)
Best regards Norman