On Sat Oct 14, 2006 at 12:37:08 +0900, WanKeun Jo wrote:
I tried to run Fiasco-L4Linux on Xscale board. I'm using L4Linux-2.6.17 version.
First, I made a bootstap image (=bootstrap.raw) and loaded on Xscale and run it. But some server programs' ranges were overlapped, so I fixed some server programs' DEFAULT_RELOC_arm address, and then started working.
Ok, fine.
During the boot process, "Warning: Unable to open an initial console" is warned and halt. I checked on boot process after ram disk is loaded, dev file path lookup fails.. So as to mount dev file system again after loading ram disk, I added "devfs options" to fs/Kconfig. And then the warning message is not presented.
You need to to have some files under /dev in your ramdisk, esp. console, then this message goes away. Enabling devfs is no option as it's gone in 2.6.18.
But after that, I got a new error message
Assertion failed: 'space() == current_space()' in /home/jowkju/project/Microkernel/Fiasco/Fiasco_Xscale/l4/kernel/fiasco/src/kern/thread- pagefault.cpp:82 at f0005400
This error may occur during the "init" program in ram disk execute. However, there may not be errors in init program because it works well in the 2.6.16 version. And maybe the problem occurs during the context switching between "init" program and other threads...
It's from Fiasco and has primarily nothing to do with L4Linux in the first place. There was a subtle bug recently which has been fixed in CVS for some time now. This bug triggers the above assertion. Go to src/kern/arm/ivt.S and check if swi_entry looks like this.
swi_entry: switch_to_kernel exceptionframe 4
If not, i.e. switch_to_kernel is missing, add it. It should make the assertion go away.
Adam