Hi,
while having punched the VESA framebuffer driver to work properly with the PCI driver I stumbled over a minor bug in the handle_pci_port_read() function in ifx86emu.cc, lines 183 and 185. The resource index is calculated as an address offset, whereas it should be an index (which equals the address offset divided by 4).
Some additional info (in the context of VESA BIOS madness): The VESA BIOS in use here also required 16bit read accesses (easy to add, the port offset to 0xcfc can be used to shift the value) and some other odd stuff from the PCI config space. Interestingly, it also knows exactly where to look for the gfx card in the PCI space; there was no enumeration at all (probably initialized the values at the startup). After the changes pci_drv and vesa_drv decided to work together again instead of stealing each others cookies.
Greets,
Robert
Hey Robert,
thanks for hint, the fix will be in the SVN soon.
Greets