Subject: Re: Using different start address for kernel?
To: None <port-sparc@netbsd.org>
From: Valeriy E. Ushakov <uwe@ptc.spbu.ru>
List: port-sparc
Date: 04/12/2001 02:43:51
On Wed, Apr 11, 2001 at 15:03:40 -0000, eeh@netbsd.org wrote:
> To relocate the kernel you need to:
>
> 1) change KERNBASE to the new location
>
> 2) frob the values in vmparam.h
>
> 3) frob the values in param.h
>
> 4) frob the value in Makefile.sparc
5) frob LOADADDR in loadfile_machdep.h so that secondary boot places
kernel at load-base
Ok. So far so good. Now it *does* jump to high virtual memory!
It crashes shortly after in this code:
ok 20 steps
[...]
f1008034 wrpsr %g3, 0
Watchdog Reset
%PSR 0400.1bc5
%TBR f000.01e0
%PC f100.8038
%nPC f100.803c
Which is this piece of locore.s after startmap_done:
rd %psr, %g3 ! paranoia: make sure ...
andn %g3, PSR_ET, %g3 ! we have traps off
wr %g3, 0, %psr ! so that we can fiddle safely
nop; nop; nop
Which I would definitely call a progress ;-)
> The only issue with moving the kernel is compatibility
> with other machines, since they all run the same kernel.
> This was not an issue with sparc64 since it does not use the
> same kernel as 32-bit sparcs.
Well, I guess we'll worry about this when (if) this baby goes
multiuser.
Thanks.
PS: Called up a friend that I lent JS1/OBP2 (the supported one) to.
He said he wrote keyboard/mouse support for it and is cleaning it up.
SY, Uwe
--
uwe@ptc.spbu.ru | Zu Grunde kommen
http://www.ptc.spbu.ru/~uwe/ | Ist zu Grunde gehen