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