Boot Fiasco at ARM on QEMU

Tsai, Tung-Chieh tsaitungchieh at gmail.com
Wed Sep 24 16:13:10 CEST 2008


Dear Adam,

  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 ?

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 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 ?
  * 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` ?

On Sun, Sep 21, 2008 at 08:32:43PM +0200, Adam Lackorzynski wrote:
> 
> On Sat Sep 20, 2008 at 17:01:04 +0800, Tsai, Tung-Chieh wrote:
> > Dear All,
> > 
> >   I'm try to boot fiasco kernel which is compiled to integrator(arm926)
> > on QMEU. I see this thread : 
> > 
> >   http://osdir.com/ml/micro-kernel.l4.devel/2007/msg00303.html
> > 
> > So I guess it should be worked. But I got some problem, when I use the
> > following command :
> > 
> >   qemu-system-arm -kernel fiasco.image -serial stdio -d in_asm
> > 
> > there is no output on QEMU. I watch the log of QEMU, find that it fails
> > to go to '_start_kernel' in 0xf0003000 from 'bootstrap_main' because
> > there is nothing in 0xf0003000.
> > 
> > As I know, there is no physical memory in QEMU's integratorcp emulation.
> > It only put memory on 0x0 and 0x80000000. So I guess the way I try is
> > wrong, there must be something I lost. Do I have to use some kind of
> > bootloader like grub in ia32 or putting some file by initrd, mtdblock,
> > etc... And couold anyone give some advice about how to run it on QEMU.
> 
> bootstrap is the initial bootstrapper which loads Fiasco, sigma0,
> roottask and all the other programs. Go to l4/pkg/bootstrap/server/src,
> possibly edit modules.list, and call 'make E=entryname' (like E=hello)
> and a bootstrap.image file will be generated in the object directory of
> bootstrap. See also the README is this directory, the most important
> thing is the setting of the BOOTSTRAP_SEARCH_PATH to enable bootstrap to
> find the right Fiasco image.
> The bootstrap.image file is the one to be loaded by QEmu, like:
>   qemu-system-arm -kernel bootstrap.image -serial stdio ...
> 
> 
> Adam
> -- 
> Adam                 adam at os.inf.tu-dresden.de
>   Lackorzynski         http://os.inf.tu-dresden.de/~adam/
> 
> _______________________________________________
> l4-hackers mailing list
> l4-hackers at os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers




More information about the l4-hackers mailing list