On Mon, Sep 22, 2003 at 12:34:33PM -0600, Nathanael D. Noblet wrote:
ORIGINAL 01:00.0 VGA compatible controller: Trident Microsystems CyberBlade/i1 (rev 6a) 00: 23 10 00 85 07 00 b0 02 6a 00 00 03 00 20 00 00 10: 00 00 80 e1 00 00 00 e2 00 00 00 e1 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 23 10 00 85 30: 00 00 00 00 80 00 00 00 00 00 00 00 0b 01 00 00 LINUXBIOS with extracted VGABIOS 01:00.0 VGA compatible controller: Trident Microsystems CyberBlade/i1 (rev 6a) 00: 23 10 00 85 03 00 b0 02 6a 00 00 03 00 40 00 00 10: 00 00 80 fd 00 00 80 fe 00 00 00 fe 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 23 10 00 85 30: 00 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00
I remember working on a sis530 board that had to set particular registers, I'm wondering if someone can give me a little tutorial on how to read these values and turn them into a corresponding register address so that I can play around with the settings to get it all working. Once I have that all working like the original bios I guess the direct vga changes could incorporate the changes and we would not need the VGABIOS if I am not mistaken? I'd like to help, but need to know how to go about reading the above in a better way then I know right now...
This is PCI configuration space registers. And it is not the device specific part. Usually there is no intersting thing here. You see some differences in resource assignment. Different BIOSes assign different framebuffer address, etc.
The real fun part is in the extended VGA registers. And just dumping them all is not a trivial task. You can see what the standard VGA registers look like at FreeVGA project. Our VGA device has lots of extended registers over this standard. Some of them are on "the other side" of standard registers (something like "reading this standard register 4 times turns it into the extended register").