Re: Kickstart panics

BERTRAND Joel <[email protected]> Mon, 04 Oct 2010 18:48:01 +0200
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Philipp Kupferschmied a écrit :
> Hi,
>
>> 	Grub launchs kickstart, loads kernel, sigma0 and panics. I have
>> attached a screeshoot. I don't understand this output and I haven't
> find
>> any documentation to help me. What does "choose a different link base"
>> mean ?
>
> The error means that Sigma0 is loaded to a memory location where it
> overlaps with the kernel image.
> You can use the "--with-s0-linkbase=BASE" option of the configure script
> (in the user subdir) to change the address to which sigma0 is loaded.
> You can also change the linkbase of Kickstart and the roottask if
> necessary, by using "--with-kickstart-linkbase=BASE" or  "--with-
> roottask-linkbase=BASE", respectively.

	OK, I have rebuilt userland with :

$(SRCDIR)/kernel/configure \
             --with-kickstart-linkbase=0x100000 \
             --with-s0-linkbase=0x40000 \
             --with-roottask-linkbase=0x60000 \
             --prefix=$(BUILDDIR)/kernel/build)

and I obtain :

cauchy:[~/openvms] > qemu -hdc freevms.img -serial stdio
KickStart 0.12.56
Detected multiboot compliant loader
  kernel    (0x0011b000-0x00158ce6)   => 0x40101000
   (0x0011b1a0-0x00134700) -> 0x00400000-0x00419560
   (0x00134700-0x00135008) -> 0x00600000-0x00600908
   (0x00136000-0x00137e38) -> 0x00800000-0x00801e38
   (0x00138000-0x0014b000) -> 0x00a00000-0x00a13000
   (0x0014b000-0x00151b28) -> 0x40101000-0x40107b28
  sigma0    (0x00159000-0x00172b30)   => 0x00040000
   (0x001590c0-0x0015f080) -> 0x00040000-0x00045fc0
  roottask  (0x00173000-0x001e0043)   => 0x00050000
   (0x00173100-0x001898a0) -> 0x00050000-0x000667a0
Launching kernel ...
qemu: fatal: Trying to execute code outside RAM or ROM at 0x40101000

EAX=40101000 EBX=40101000 ECX=00000fa0 EDX=00000000
ESI=00000000 EDI=000365e0 EBP=00102878 ESP=00102878
EIP=40101000 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
CS =0008 00000000 ffffffff 00cf9a00 DPL=0 CS32 [-R-]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
FS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]

	This emulator only has 128 MB. I don't undestand following line:

kernel    (0x0011b000-0x00158ce6)   => 0x40101000

because 0x40101000 isn't addressable. Other question : I suppose that 
kernel is mapped in 0x00400000-0x00419560, 0x00600000-0x00600908, 
0x00800000-0x00801e38 and 0x00a00000-0x00a13000. How I can configure 
these addresses ? This configuration takes more than 10 MB only for kernel !

	Best regards,

	JKB