On Fri, 2007-08-31 at 15:26 -0400, Tom Sylla wrote:
> [...]
> 'setpci' is a common linux tool that will do it. You need to set bit 0
> of offset 30h in config space for that card. Then you can read from
> the memory location reported by lspci.

I see. So it is OK the alter the PCI config behind the kernel's back, in
other words?

> You could also just read the
> shadowed version in the c000 segment.

Since I have three cards in this machine, though, I don't think there is
any way for me to know which one is shadowed there at the moment, right?

Generally, I wonder how the X server manages this thing. If I'm not
mistaken, some drivers routinely call into its card's VGA BIOS to do
various things whose real interfaces are undocumented. But the VGA BIOS
must reasonably expect to be able to access the card through the VGA
registers, as it cannot know where the card's PCI resources have been
mapped, right? Therefore, I guess that the X driver has to tell the card
to start decoding VGA addresses before running the BIOS code and then
tell it to stop again after the BIOS code returns (if it didn't tell it
to stop, it would never work with several cards in a system). But when
running more than one X server (I currently run three servers, one for
each card), there has to be some mutual exclusion device to make sure
that only one card decodes VGA addresses at a time.

I think I will try and look through some X drivers for hints on how it
is done.

Fredrik Tolf


_______________________________________________
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