> > > * From the discussion going on here, it looks like initialising the
> > > video card is not straightforward at all. Is a PCI VGA card more
> > > difficult to set up that any other types of PCI cards?
>
> It's totally straightforward, if you have proper documentation.  The
> VGA BIOS, also, is just code in ROM that the CPU executes.  It is
> called from the system BIOS at an appropriate time.  VGA is only made
> complex by the fact that PC BIOS and software assume certain specific
> capabilities of the graphics card.

The difference with a VGA card is that they have a magic handshake that makes 
them respond to a hardcoded set of magic addresses (The legacy vga IO ports 
and memory range). For pretty much all other PCI devices the card only 
responds to the standard PCI resource ranges as configured via the BAR.

Some classes of device (e.g. USB hosts) do have a standard programming 
interface. For everything else you just have to know what device you're 
talking to, and act accordingly.

In order to facilitate early boot access to a device some cards have a chunk 
of ROM BIOS code on them. Typically this will be x86/pc machine code and/or 
Forth OpenFirmware code. If you can't run this natively you have to either 
emulate it (Xfree86 contains an x86 emulator for this purpose), or just build 
the setup code into your system and ignore the rom.

For non-x86 systems we generally don't care about vga compatibility. For x86 
systems we have the rombios to do whatever setup we need (upload programs, 
etc) to make it work.

Paul
_______________________________________________
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