Subject: why doesnt my video card work--answer?
To: None <macbsd-development@NetBSD.ORG>
From: Charles J. Williams <chas@ohm.nrl.navy.mil>
List: macbsd-development
Date: 02/04/1995 18:06:09
after getting a recent kernel built, i decided to give my supermac 8/24 card
another try.  here are the results: (btw, all of this is on a mac IIcx)

low = 0x0  high = 0x800000   (hey 8 megs)
log = 0xf9000000 phys = 0xf9000000 len = 0x6000000
  video address = 0x902aaab0
  wierd mapping = 0x0
  length = 0x0
DEBUG: ...
DEBUG: about to set MMU control (hold your breath)

well, i held my breath until i turned blue but nothing happened.  just frozen.
putting my mac II hi res video card, back in the messages appear as:

low = 0x0  high = 0x800000
log = 0xf9000000 phys = 0xf9000000 len = 0x6000000
  video address = 0xf9900020
  wierd mapping = 0x0
  length = 0x0

ok, so i am going to take a wild stab (after reading a bit of the source code)
and say "what is going on?"  i see that the nubus is mapped to the last 6M of 
virtual memory (which is where it "physically" resides apparently i.e. the
linear mapping comment in machdep.c)

i look at the video address of the mac ii card, and say "ah yes, the video
card is in nubus space, and when the mmu takes over i will have a map back
to that address" becuase get_mapping() took care of mapping these ranges.
why is the supermac card not in nubus space?  i am going to take a guess
that a logical to physical mapping for the supermac is never created and
turning on the mmu makes the card "disappear"

reading other parts of the source code, i notice that internal video can be
mapped to nubus space, making it necessary to remap some of nubus space.
i suppose some vendors could make nubus space somewhere else.  would you do
this to get around non-32 bit clean ROMs (dirty ROMs?) if you where going to
be providing things like accelerated quickdraw, etc.

am i nuts?  i almost managed to eat a whole bag of pistachios while thinking
about this.

--chas iii
chas@ohm.nrl.navy.mil