Hi Farid,
The first thing to do was to disable the call to the kernel debugger on startup in l4-ka/kernel/src/init.c:init()
#if defined CONFIG_DEBUG_KDB_ONSTART enter_kdebug("startup"); #endif
I did this because I wanted to keep the kernel debugger but I didn't found out how to use it to resume booting.
Try "h" for help - it shows you a list of all kdb commands - isn't that "*nix"-like?
I then had to figure out, that the LINKBASE address in l4-ka/root_task/Makefile had to be changed to a real existing physical address:
< LINKBASE=0x0c200000
LINKBASE=0x07200000
So the ARM-roottask configuration made it into the distribution... :)
I wished the kdb was documented somewhere, not only in its sources :( The screen handling is also not perfect yet (see above with 'd' command).
see above. Furthermore, I added a kdb-doc at http://l4ka.org/docs/kdb.asp.
Dumping c200000 hangs the machine, probably because that address is outside of the physical range.
Yes, that is necessary if you want to have pf handled in the kernel debugger. That way we can force PF-IPCs. When you use kdb we simply assume you know what you do.
So far, so good. I then tried to boot glinux with the following menu.lst entry:
title=L4Ka with glinux kernel=(fd0)/l4ka/rmgr -sigma0 module=(fd0)/l4ka/x86-kernel.nokdb module=(fd0)/l4ka/sigma0 module=(fd0)/l4ka/glinux.gz -s
knowing that I don't have any linux root partition on that FreeBSD box. Anyway, I just wanted to see glinux start and no more for now. As you can see from menu.lst, I had to gzip -9 glinux to fit it on one floppy. GRUB should be able to load gzipped modules. Booting this resulted in the following output screen:
----- cut here -------------- sigma0_main: kernel_info_page is at 0x00107000
sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 sigma0: page 200002 requested twice, old=ff, new=4 ----- cut here -------------- The last line being constantly redrawn in an (endless?) loop.
The Linux's module overlaps with needed physical ram. That overlapping can be avoided by forcing grub to load the modules at a different address (a hack which made it into Dresden's GRUB distribution or use our GRUB-disk). I added an x86-FAQ-page with a description: http://l4ka.org/faq/x86.asp
I can't resume tests on a real pentium right now, so I'll have to look at bochs sources to add support for 4MB superpages. This will take its time though, since I'm not an x86 expert :-).
Good luck and thanks for the extensive feedback.
Volkmar