Proper way to enable port access tracing with current xserver

Tiago Vignatti vignatti at c3sl.ufpr.br
Tue Jan 20 20:09:01 PST 2009


Hi,

Alex Villací­s Lasso escreveu:
> Another question I have is this: as far as I understand, PCI video cards 
> have to run the POST (or do an equivalent operation) in order to execute 
> the chipset-specific hocus-pocus that enables legacy vga port access 
> (0x3c0 through 0x3df). So only one chipset can be mapped into that I/O 
> address range at a time (right?). 

right. Note that some modern video cards can entirely scape from this 
legacy VGA crappy.


> When initializing a secondary card via 
> POST, the real-mode code of the secondary card will also attempt to map 
> its own registers into that range (I would assume). So what steps are 
> taken in the xserver to move the primary card out of the way (if at all) 
> so that the second card initializes properly? What happens if the 
> drivers for both chipsets require some access to the legacy I/O ports in 
> order to perform normal operations?

this is currently addressed by the RAC module inside the Xorg server. 
But this module is selfish and only provides informations to its X 
server. If you have two or more applications (e.g. X servers) trying to 
use the VGA registers then the machine will probably hang (maybe not 
hang, but you will see a lot of crazy things on screen... like the 
lights of a rave party, or a screen that remembers an Atari game... 
well, it will depends in the kind of things you'll be smoking).


Cheers,

-- 
Tiago Vignatti
C3SL - Centro de Computação Científica e Software Livre
www.c3sl.ufpr.br



More information about the xorg mailing list