Hi,
This is an important problem to solve. I'm seeing 60x slow down on the graphics component of L4Android right now because of this frame buffer issue.
I'm using an Eee PC which has an i945 chip. I tweaked my configuration a little bit but I still had no luck.
There're two possible bugs(?) here:
(1) The driver got confused because l4pci changes the func field of the pci table. The func field in PCI table is to describe whether there's another device attached to the slot. Here is code in Linux kernel causing problem:
gmch_device = pci_get_device(PCI_VENDOR_ID_INTEL, device, NULL); if (gmch_device && PCI_FUNC(gmch_device->devfn) != 0) { gmch_device = pci_get_device(PCI_VENDOR_ID_INTEL, device, gmch_device); }
On my machine, L4PCI reports the func field of my card (gmch_device in the code) as 1, which makes it find the "next" display card (i.e., executing the if branch). Therefore it cannot find the device.
I worked around it by disabling the if statement, and the kernel can detect the card and map in mmio memory.
(2) L4Linux is unable to execute "wbinvd" instruction. wbvind is a privileged instruction to write back all caches and invalidate them. The driver is executing this instruction at ring 3 -- thus generating a #GP fault.
This is more troublesome and I don't really have a good idea of how to fix it. I appreciate if you can tell me the quickest way of fixing it.
~Haohui
On Mon, Jul 9, 2012 at 4:54 PM, Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
Hi,
On Mon Jul 09, 2012 at 15:49:35 -0500, Mai, Haohui wrote:
Getting rid of mag does improve the performance. I want to push it even further -- can I get rid of fb-drv completely to let L4Linux access the hardware directly?
fb-drv is a passive component doing nothing (except possible paging) after startup so that won't do any difference itself. The alternative here would probably be to not do any VESA/fbmem and let a graphics driver inside L4Linux completely manage the graphics card. Hopefully works as with any other PCI device.
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers