April 26th, 2006

face

fixing dual card in Xorg 7.0

Two card setups seem to have been a bit broken of late, so I started doing some investigation as I have a setup at work to upgrade.

I setup my PC here with two radeon cards, one AGP and one PCI.

First bug I had to fix was X.org was moving the PCI resources around behind the kernels back, it was looking at an Intel PCI bridge as non-transparent, however the kernel believed it was transparent, so I
added a fix to X.org to deal with the bridge correctly, this stopped X.org moving my resources around. Also the X server wouldn't assign resources up at top end of memory, but Linux would.

Next the X.org BIOS extraction code is quite hairy and does a lot of resource moving around before trying to read the BIOS from the secondary card, surprisingly enough it falls over on later kernels,
it just happens the kernel now supports reading the ROM from /sysfs so I added a hook to the BIOS code to read the BIOS from sysfs and if it doesn't work fall back to the old code.

The patches are in bugs 6750 and 6751 and I've checked them into X server CVS head. I think there might still be more work to do on the second card POST, but I'll have to do some more later.