On 10/20/06, Patrick McNamara <[EMAIL PROTECTED]> wrote:

I've seen a number of people at various times note that the register
interface is not well defined and that some of the functional interface
is still up in the air as to how it will work.  That shouldn't stop
people from starting on the drivers.  Registers are easily abstracted
and readily changeable if the code is properly written.  Changing a
register location should be as simple as changing a single #define.


Fair enough.

There will be one PCI BAR dedicated to all configuration registers.
This includes peripherals, the drawing engine, video controller,
memory controller, etc.

We don't need to be very "efficient" with how we assign addresses into
that space.  So let's break up the address space and leave lots of
extra room.  For instance, the programmable things (video and DMA
controllers) will have 512-word instruction memories.  The DMA
controller may have more than that.  Fine.  Give these 4096-word
ranges.  Next, there's the drawing engine.  Just for fun, give it
32768 words (the first 8 "blocks").  Upon examination of the engine
pipeline, we'll divide it up into power-of-two sized subregions such
that there is at least one for each major pipeline stage.  If the
engine needs more space (unlikely), we'll just push the other blocks
around a bit (or start assigning them addresses from the top).

Dividing things up this way is nice because as addresses are being
processed, each level of the hierarchy only needs to test some part of
the address.
_______________________________________________
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