Getting started with 'genode/base-hw' on PandaBoard A2

This is a short tutorial that depicts a handy way to get a Genode ELF image, build with base-hw, started on the PandaBoard A2. It is dedicated to common Linux systems, but all examples originate from a Ubuntu 10.10.

Tutorial

Connect the PandaBoard to your local Ethernet through its RJ45 connector. Additionally connect the PandaBoard to your machine through its COM port. Ensure that you have installed the genode tool chain that is available at:

http://genode.org/download/tool-chain

Get the genode tool chain]

Ensure that <GENODE_GCC_DIR>/bin/ is in your PATH variable. Get the linaro U-Boot repository and compile U-Boot for PandaBoard:

 git clone git://git.linaro.org/boot/u-boot-linaro-stable.git
 cd <UBOOT_DIR>
 make CROSS_COMPILE=genode-arm- omap4_panda_config
 make CROSS_COMPILE=genode-arm-

During the compilation i had some errors. The first was in assembly code, it seemed to originate from a slip with the typo and was easy to fix. The second kind of errors occured because the GCC version had no support for direct array initialization, thus i avoided them by simply initialize the array elements separately.

Now install the following packages to communicate with the PandaBoard:

 sudo apt-get install tftp-hpa minicom

Open /etc/default/tftpd-hpa with a text editor and ensure that it has the following content:

 # /etc/default/tftpd-hpa
 TFTP_USERNAME="tftp"
 TFTP_DIRECTORY="/var/lib/tftpboot"
 TFTP_ADDRESS="0.0.0.0:69"
 TFTP_OPTIONS="-l"

Tell U-Boot wich image to load on boot command:

 cd /var/lib/tftpboot/
 ln -s <GENODE_BOOT_ELF> image.elf

Start TFTP to enable the upload of the image:

 sudo service tftp-hpa restart

Start Minicom in configuration mode:

 minicom -s

Go to Serial port setting and ensure that the device is set the TTY of the COM port you've conntected PandaBoard with, in my case it was /dev/ttyS0. Configure the other settings for a baud rate of 115200, 8 bit char length, no parity and 1 stop bit. Quit Minicom and start it once more:

 minicom

Mount your SD-card and copy the U-Boot files to its boot partition:

 cd <UBOOT_DIR>; cp MLO /media/boot/; cp u-boot.bin /media/boot/

Unmount the SD card and insert it into the appropriate PandaBoard slot. Plug in the power connector or push the S1 button if the PandaBoard is already powered.

Minicom should now show the following message:

 Hit any key to stop autoboot:

We have to stop autoboot and type in this line to load and boot the genode image via ethernet:

 usb start; dhcp; bootelf 0x82000000

Now the ELF image should start correctly and offer some debug output in minicom. You can now boot further images by redirecting the link /var/lib/tftpboot/image.elf accordingly, restarting your pandaboard and instructing uboot again as described above.