Subject: Re: testing netbsd1.1 on a PB520
To: Erik Bertelsen <erik@sockdev.uni-c.dk>
From: Allen Briggs <briggs@puma.bevd.blacksburg.va.us>
List: port-mac68k
Date: 12/27/1995 22:21:43
> The video relocation is unsuccessfull because bootstrap_mac68k is called
> with the tc parameter set to 0 instead of a value containg the 
> 0x80000000 bit.

Yes.  The tc is a register that defines the "translation control" for
the MMU.  The 0x80000000 value means that the translation control is
enabled.  On the '030 and '851.  The routine that it really matters to
is get_mapping() in machdep.c which calls get_physical() (also in
machdep.c), which depends on the '030/'851 style page tables.  I have
suggested to a couple of people that it would help to see an '040
version of these calls, but haven't heard back from anyone yet...  ;-)

> Can anyone explain what the use of (macos.)tc is ? Allen??

It's used to determine if the MMU is enabled.  If it is, NetBSD attempts
to get the MacOS's MMU mapping.  We can tell from this some things like
the wierd mapping that the IIsi/ci/etc use for internal video.

> The actual panic is caused because videoaddr is 0x60000000 and therefore
> outside of the NUBUS videorange of F9000000 to FF000000.

This is also figured out as a side-effect of the above...  Apple's
internal video devices seem to cluster in a few different address
spaces, and the code in get_mapping() tries to figure out where the
screen is.  Incidentally, for some systems, it will only work if the
internal screen is the MacOS primary one at boot time.

-allen

-- 
Allen Briggs - end killing - allen.briggs@bev.net ** MacBSD == NetBSD/mac68k **
   Where does all my time go?  <a href="http://www.netbsd.org/">Guess.</a>