Boot Fiasco at ARM on QEMU

Adam Lackorzynski adam at
Thu Sep 25 19:56:30 CEST 2008


On Wed Sep 24, 2008 at 22:13:10 +0800, Tsai, Tung-Chieh wrote:
>   Thanks for your help. I found that my problem is that I thought I
> could boot kernel image 'fiasco' independently without other things.
> Now I make the package under '.../l4/' and use `.../l4/pkg/bootstrap` 
> to pack kernel image, run it on qemu, it has the following assertion 
> failed message :
> Hello from Startup::stage2
> Assertion failed: 'prev_next'
>   in
>   /path/to/tuods/source/snapshot/kernel/fiasco/src/kern/buddy_alloc.cpp:34
>   at f0004da8
> Could you please tell me what does this means ?

That likely means that the system memory size is not configured
properly. The l4-config system contains a parameter to configure the
platform memory size. It's called RAM_SIZE_MB. Is that set properly?

> Besides, I have a few question :
>   * What's your building environment ? I use gcc-4.2.2 build by
>     buildroot, it will has some strange problem on gcc itself.
>     And then I test some corss-compiler I have, some works but
>     some failed. gcc-3.4.4-glibc-2.3.5 build by crosstool works
>     but gcc-3.4.5-glibc-2.3.5 failed on the PRE_LOAD test of 
>     `make -C l4 config`.
>     Is there any recommend version of cross-compiler ?

I use 4.2, and that works (most of the time ;). If the failure is
something that could be a bug in the build system it would be good to

>   * I guess what bootstrap do is just packing sigma0, roottask, and
>     so on, then do what a boot-loader do. So, if I can put them
>     on correct position, for examples, by some tools or another 
>     boot loader, is the bootstrap still necessary ?

Bootstrap also fills out memory information and sets up a bit multi-boot
structures, so yes, it's necessary.

>   * Since all packages in '.../l4/pkg' are not necessary to build
>     a hello test, is there a way to build just only what I need,
>     not the whole package under `.../l4/pkg` ?

Admittedly you need quite a few packages to just build the hello target.
The repomgr hello target should just contain the packages that are
needed. But if you're just interested in the kernel, you should not need
to recompile pkg/ very often?!

Adam                 adam at

More information about the l4-hackers mailing list