On Sun, Jan 24, 2010 at 02:18:43AM +0200, Izik Eidus wrote:
On Sat, 23 Jan 2010 19:03:46 -0500 "Kevin O'Connor" kevin@koconnor.net wrote:
On Sun, Jan 24, 2010 at 01:35:21AM +0200, Izik Eidus wrote:
On Sat, 23 Jan 2010 18:10:37 -0500 "Kevin O'Connor" kevin@koconnor.net wrote:
What is special about 0xe0000000 that the OS can't map pci devices there? Normal machines don't treat 0xe0000000 as special, why does the VBE device require that?
From the last time I looked on the code 0xe0000000 was the LFB address, LFB is used by vesa devices as the framebuffer memory area, this mean that vesa devices (not the case for vga) will try to map this 0xe000000 physical memory.
Okay, but why does the device hardcoded 0xe0000000 - why doesn't it use a PCI bar? A PCI bar should also be sufficient to stop the OS from mapping two things to the same address, and it has the advantage of not requiring special code in the BIOS.
VESA standard is unrelated to pci devices, and therefore it can be used with isa devices...
VGA shows up as a PCI device under qemu. Is there a reason why making the LFB part of a PCI bar of the VGA device will not work? Doing it that way seems like a simpler solution. It's also probably what real modern machines do.
-Kevin