Subject: Re: Kernel Start-up Question
To: Allen Briggs <briggs@canolog.ninthwonder.com>
From: I-Jong Lin <ijonglin@EE.Princeton.EDU>
List: port-mac68k
Date: 08/25/1998 20:07:42
> 
> > When Netbsd first boots with an '040 processor, what page size
> > should the MMU (the translation control register) be set to?  
> > 4K or 8K?  Or does the page size depend on some sort of kernel 
> > configuration?
> 
> The kernel reprograms the page tables at boot time, so the only reason
> to have the MMU configured is to allow the machdep.c:get_mapping() call
> from pmap_bootstrap.c:bootstrap_mac68k() to work.  Can you boot at all
> with the MMU disabled?

Whoa.  That would simplify things greatly if I could boot w/
the MMU off because the problem is that two boots actually need to occur.  
When the NetBSD booter starts the NetBSD kernel, the accelerator turns off 
and the '030 starts to boot.  By poking a particular memory location, the
'030 is switched off, '040 switches on and starts up on the reset
vector at a vector table which is located at memory location 0.
I've figured out most of that problem.  The thing is that when
the switch occurs, the page tables must also be changed to
reflect the '030 to '040 switch.  However, if the MMU is never on,
I can just use the physical addresses and not worry about
this translation problem.

So, how do you boot w/ the MMU disabled?


> 
> In more answer to your question, it looks like machdep.c:get_physical()
> will work with either 8K or 4K page size.

Thanks.
> 
> When you are running with your accelerator configured, does it show that
> you have a 68040 running?  Does NetBSD know that you have a 68040, or
> does it still think that you have an '030?
> 

I'm not too sure about that actually.  The screen tends to freeze before
any text comes up, so it's kinda hard to tell what's going on.  I'm
pretty sure that it switches though -- it always crashes when I poke
that special memory location.

> -allen
> 
> -- 

Thanks in advance,
I-Jong