[Open-graphics] From PCI to VGA registers

Michael Meeuwisse mickeymeeuw at gmail.com
Wed Aug 8 17:12:27 EDT 2007


Hello all,

I'm trying to get a better picture of everything that's needed for a  
video card, so I can hopefully help out in the near future with well,  
something. I'm willing to document a whole lot of things (as soon as  
I understand it myself).

Right now I convinced myself I 'get' how PCI works, but right after  
that I'm stuck. I'm hoping somebody can answer (some of) the  
following questions;

a) How do plain VGA registers (lots of documentation talks about  
things like address 3B4h) get 'mapped' to the correct PCI device? Is  
address 3B4h in C/BE#'s 'I/O Space', 'Memory Space', or some added  
fields to the configuration space?

b) If I plug in a PCI device which identifies with Base Class 03h,  
Sub Class 00h and Interface 00h, will the PCI BIOS and/or 'main' BIOS  
use this automagically or is some action from the PCI cards' point of  
view required? How tightly is this coupled with question a? Do I (the  
PCI card) need to request any mapping?

c) What's all this talk about VGA BIOS? Where is it located  
(motherboard or PCI card) and if this contains code which is executed  
by any other BIOS calls and/or interrupts, what does it (as a bare  
minimum) need to support?

d) All registers seem to be explained, but I can't figure out how you  
switch the graphics mode. Every document seems to say 'just switch to  
mode 3', but from a PCI card perspective, how is this done? Is this a  
specific register? VGA BIOS instruction?

That were the more fundamental questions for now, I got a few 'less  
tricky' ones as well :)

d) How is OGD1 doing this whole VGA BIOS thing, and why can't I find  
anything of it in the CVS?

e) Is there a movie available of OGD1 working at OSCON? Really  
curious, that's all. :)

Thanks!

Mike
www.wacco.mveas.com


More information about the Open-graphics mailing list