
          ==================================================
          Getting started with 'base-hw' on Freescale i.MX31
          ==================================================


                            Martin Stein

Abstract
########

This is a short tutorial that depicts a handy way to get a Genode ELF-image,
build with 'base-hw', started on the Freescale i.MX31. For informations
about how to build Genode images with 'base-hw', have a look at
'<GENODE_DIR>/base-hw/doc/hw.txt'. This tutorial is dedicated to common
Linux systems, but all examples originate from a Ubuntu 11.10.


Tutorial
########

Connect the i.MX31 to your local Ethernet through its RJ45 connector.
Additionally connect the i.MX31 to your machine through its COM port.
We use the bootloader that is installed on the board by the manufacturer, it's
the LogicLoader by Logic Product Development, Version 2.3.5-IMX31_10 0001.
Now install the following packages to communicate with the i.MX31:

! apt-get install tftp-hpa minicom

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

! TFTP_USERNAME="tftp"
! TFTP_DIRECTORY="/var/lib/tftpboot"
! TFTP_ADDRESS="0.0.0.0:69"
! TFTP_OPTIONS="-l"

Tell TFTP wich image to provide:

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

Where '<GENODE_BOOT_ELF>' is the absolute path of the targeted ELF image.
Start TFTP to enable the upload of the image:

! service tftp-hpa restart

Precautionary determine the inet address of your TFTP machine:

! ifconfig

Start Minicom in configuration mode:

! minicom -s

Go to 'Serial port setting' and ensure that the device is set to the
TTY of the COM port you've conntected the i.MX31 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 in a dedicated terminal:

! minicom

Plug in the i.MX31 power connector or push the 'S1' button if the i.MX31 is
already powered. Minicom should now show the following message below some
bootloader info:

! losh>

We have to start DHCP first, so in the Minicom console type:

! ifconfig sm0 dhcp

Wait until DHCP is started:

! Starting DHCP on sm0 ...
! losh>

Then load the Genode image:

! load elf /tftp/<INET_ADDR>:/var/lib/tftpboot/image.elf

Where '<INET_ADDR>' is the inet address of your TFTP machine.
To execute the loaded image type:

! exec start

Now your Genode scenario should start and offer its debug output
in Minicom. You can boot other images by redirecting the link
'/var/lib/tftpboot/image.elf' accordingly, restarting your i.MX31
and instructing LogicLoader again as described above.

