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