Subject: Re: NetBSD booting NetBSD on a TS-7xxx
To: Valeriy E. Ushakov <port-arm@NetBSD.org>
From: Jesse Off <joff@embeddedARM.com>
List: port-arm
Date: 12/04/2006 16:30:21
----- Original Message ----- 
From: "Valeriy E. Ushakov" <uwe@ptc.spbu.ru>
To: <port-arm@NetBSD.org>
Sent: Monday, December 04, 2006 2:46 PM
Subject: Re: NetBSD booting NetBSD on a TS-7xxx


> On Mon, Dec 04, 2006 at 10:44:18 -0700, Jesse Off wrote:
>
>> I recently wrote a program to allow NetBSD to boot other OS' from
>> within NetBSD itself.
>
> BTW, are you aware of kloader(4) that's been in the kernel for a few
> years?
>
>    MI:         sys/dev/kloader.c
>    MD (e.g.):  sys/arch/hpcsh/hpcsh/kloader_machdep.c
>
> It doesn't support ARM yet.  It only supports MIPS and SH3, where
> there's a magic VA == PA region, but extending it to support ARM
> shouldn't be a problem.

I was aware of this, but wanted a 100% userspace solution that would work 
with currently deployed NetBSD ARM kernels.  I wasn't as certain extending 
kloader to support ARM would be easier than modifying what I already had to 
do for Linux anyway.   I wrote the one I had to do for Linux in a fairly 
generic way and porting it to NetBSD was only a couple hours.

Also, I looked at the current kloader code and got an uneasy feeling about 
the way uvm_pglistalloc() was used to allocate the temporary image memory. 
It wasn't obvious to me how the code guaranteed a source page would not be 
clobbered before being copied to its eventual destination and also wasn't 
obvious to me how you could change the kernel based on the execution of a 
script (it seems hardcoded with option KLOADER_KERNEL_PATH).

//Jesse Off