RE: Kickstart issue

Jan Stoess <[email protected]> Mon, 29 Mar 2010 12:45:13 +0200
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
-----------------------------------------------------------------------------------------------------------------
From: Felipe Astroza [mailto:[email protected]] 
Sent: Saturday, March 27, 2010 7:13 AM
To: Jan Stoess
Subject: Re: Kickstart issue

 I don't know who should read this email, but i30www.ira.uka.de suggested to you as contact for L4KA project. A few days ago I began to "play"  with L4KA::Pistachio, I read the compile instructions and I built my image for QEMU, unfortunately I got in trouble to run Kickstart (hg version). In "l4ka-pistachio/user/util/kickstart/mbi-loader.cc" I added a few lines for tracking the array "mods" 
and my result is the following:

qemu-system-x86_64 -hda disk.img -boot c -nographic

Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory
KickStart 0.12.56                                                                             
Detected multiboot compliant loader                                                           
 kernel    (0x0011a000-0x0013d083)   => 0x40101000                                            
  (0x0011a1a0-0x001296c0) -> 0x00400000-0x0040f520                                                                                                   
mods[0].start = 0x0011a000, mods[0].end = 0x0013d083                                          
mods[1].start = 0x0013e000, mods[1].end = 0x00155a2b                                          
mods[2].start = 0x00156000, mods[2].end = 0x001bb8e2                                          
  (0x001296c0-0x00129fc8) -> 0x00600000-0x00600908                                                                                                 
mods[0].start = 0x0011a000, mods[0].end = 0x0013d083                                          
mods[1].start = 0x0013e000, mods[1].end = 0x00155a2b                                          
mods[2].start = 0x00156000, mods[2].end = 0x001bb8e2                                          
  (0x0012a000-0x0012bd9a) -> 0x00800000-0x00801d9a
mods[0].start = 0x0011a000, mods[0].end = 0x0013d083
mods[1].start = 0x0013e000, mods[1].end = 0x00155a2b
mods[2].start = 0x00156000, mods[2].end = 0x001bb8e2
  (0x0012bda0-0x00131da0) -> 0x00a00000-0x00a06000
mods[0].start = 0x0011a000, mods[0].end = 0x0013d083
mods[1].start = 0x0013e000, mods[1].end = 0x00155a2b
mods[2].start = 0x00156000, mods[2].end = 0x001bb8e2
  (0x00132000-0x001385c8) -> 0x40101000-0x401075c8
mods[0].start = 0x0011a000, mods[0].end = 0x0013d083
mods[1].start = 0x0013e000, mods[1].end = 0x00155a2b
mods[2].start = 0x00156000, mods[2].end = 0x001bb8e2
 sigma0    (0x0013e000-0x00155a2b)   => 0x00f00000
  (0x0013e0c0-0x001442d8) -> 0x00f00000-0x00f06218
mods[0].start = 0x00400000, mods[0].end = 0x401075c8
mods[1].start = 0x0013e000, mods[1].end = 0x00155a2b
mods[2].start = 0x00156000, mods[2].end = 0x001bb8e2
     Conflict with module 0 (0x00400000-0x401075c8)
     Please choose a different link base
PANIC: FAIL in line 168

After that the kernel elf is loaded (5 regions are copied from file), "mods[0]" start and end is changed to lower and upper addresses of loaded kernel. 
mods[0].start = 0x00400000, mods[0].end = 0x401075c8
This behavior wastes around 1 GiB. 

it's for simplicity?, 

change sigma0's linkbase is the only solution?

I've changed the sigma0 linkbase but this exceeds the assigned RAM memory. I've used the "end" kernel address (0x401075c8), because according to kickstart 0x00400000-0x401075c8 belongs to "kernel" module. I would like contribute to the project, but I need your feedback about this. Definitively kickstart does not detect correctly the modules conflicts. If you have a clever solution let me know, otherwise, I would be pleased to contribute to kickstart. 

Cheers
2010/3/22 Felipe Astroza <[email protected]>
Hi,

Felipe Astroza
http://felipe.astroza.cl
Chile

-----------------------------------------------------------------------------------------------------------------
Hi Felipe,

Please post such questions to the l4ka mailing list.

First of all, why is the memory wasted? You should still be able to access all memory except the reserved boot memory regions, whether it is contiguous or not.
 
Our linkbases are just default values, which may be adapted if required if needed, e.g., because of memory constraints on the destination hardware. 

Using the exact kernel end address as start address for sigma0 is not advisable, since the former may change with different builds.

Cheers, 
-Jan


--
Jan Stoess
KIT/UKa System Architecture Group
Phone: +49 (721) 608-4056
Fax: +49 (721) 608-7664
http://os.ibds.kit.edu/stoess