Booting Fiasco with U-Boot (or: what is 0x002000000?)
adam at os.inf.tu-dresden.de
Wed Nov 3 19:51:46 CET 2010
On Wed Nov 03, 2010 at 11:09:43 -0700, Thomas DuBuisson wrote:
> Thanks for the previous help with building Fiasco/L4Re. Now that its
> built I have given a couple stabs at booting it on my beagleboard like
> device (I'll document all this in a blog and or wiki when/if I
> finish). Unfortunately I can't seem to get any sign of life on the
> screen (perhaps I should solder up a serial line for debugging
> purposes). What I've done:
There's no UART connector? You definitely should have a UART.
> 1) Cross compiled L4Re and Fiasco for the beagleboard.
> 2) Copied l4re, lua, moe, fiasco, and created hello.lua to the SDs
> first partition (the fat boot partition).
> 3) Rebuilt/copied over u-boot.bin using:
> #define CONFIG_EXTRA_ENV_SETTINGS \
> "bootargs=tbr=x console=tty1 omapfb.mode=dvi:1024x600MR-16 at 60
> omapfb.vrfb=1 omapfb.vram=0:8M,1:4M,2:8M root=/dev/mmcblk0p2
> rootdelay=1 rootfstype=ext3\0"
> #define CONFIG_BOOTCOMMAND \
> "mmc init; fatload mmc 0 0x02000000 fiasco; bootm 0x02000000"
> Though I have tried different addresses including what I think is a
> typo on the "Getting Started" page of 0x002000000.
> So some questions are:
> 1) I'm pretty sure the bootargs need changed. For example, does
> u-boot need to load ned, moe, and hello? Where should they be loaded?
> Any other comments on what fiasco expects the bootloader to do? (this
> is different than what the wiki provides of "how to do those
> unspecified things using GRUB")
> 2) To what address should I load fiasco? I assume it matters.
> 3) If these questions are already answered somewhere then I'd be more
> than happy with a link.
On ARM, booting works by generating an image which contains all the
binaries (fiasco, l4re, moe, ned, etc...). This image is then transfered
to the target and booted. It unpacks itself...
So, do the following. Go to the build-directory and do:
$ make image E=hello
Given everything is found (check l4/conf/Makeconf.boot otherwise) it
will generate a images/bootstrap.uimage (and images/bootstrap.elf and
images/bootstrap.raw). Copy bootstrap.uimage to the SD-Card and start it
with (or similar)
fatload mmc 0 0x80ffffc0 bootstrap.uimage
bootm should probably also work. It doesn't really matter where you put
the uimage, it relocates itself if necessary. Taking the right address
just does not slow it down (probably not noticable).
Adam adam at os.inf.tu-dresden.de
More information about the l4-hackers