On Sun, Jan 24, 2010 at 12:16:11PM +0200, Avi Kivity wrote:
That's not correct - when running with PCI -vga std _is_ a PCI device (and it has a BAR). What's needed is to make the VBE BIOS aware of it.
According to Sebastian, the latest version of vgabios (v0.6c) does support this. I see that the following was added to vbe.c:
+ lfb_addr = pci_get_lfb_addr(0x1234); // experimental vendor + if (lfb_addr > 0) { + info.PhysBasePtr = ((Bit32u)lfb_addr << 16); + }
The vgabios code could use an overhaul - it has many of the same maintenance problems that bochs bios has. A port to gcc would be a big help. Some time back, I ported the base vga code (see the vgasrc/ directory in seabios git), but I haven't looked at the cirrus or vbe extensions.
-Kevin