On Tue, Nov 2, 2010 at 8:13 AM, Mark Marshall <[email protected]> wrote:
> 742
> ===
> I've made a fwe modifications to config_space.v.  I've used parameters for
> the size of the BARS, and passed "low_bit" to cfg_address_decode as a
> parameter.  This has possibly reduced some logic and has made it clearer (to
> both the comppiler and human reader) that this will never change.  I've
> added the include file and pulled the VID and PID from there.  I've added
> the "if (write_bytes[n])" statements into the writes to the "fake_write"
> registers (which are needed, but we would probably get away without).

It's been a long time, but IIRC, I had designed them to be variable
because I had in the back of my mind the idea that we might want them
changeable.

The applications of this are rare.  When colleagues and I were
developing graphics drivers for PPC machines running AIX, we ran into
a problem where you could not map more than four memory apertures into
a user process.  (They didn't even have mmap, so we had to do some
weird stuff in the kernel driver.)  Some of our graphics cards wanted
to expose three BARs, meaning that we couldn't support multi-head.
Our solution was to rearrange (after boot up) the physical addresses
and sizes of the BARs so that AIX thought we were mapping in only a
single physical region that included all three, and then we could
support four heads.  To make this work, we had to have one BAR (the
largest one) request twice the space it really needed.  Then in the
kernel driver, we'd shrink it by half and then reposition the other
BARs into the remaining void.

But do we care about AIX now?

-- 
Timothy Normand Miller
http://www.cse.ohio-state.edu/~millerti
Open Graphics Project
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to