On 03/13/14 09:22, Gerd Hoffmann wrote: >> +---------->IS_PCI_VGA (Pci): >> | "Found PCI VGA device" > >>> + k->class_id = PCI_CLASS_DISPLAY_OTHER; >> >> and from qemu's "include/hw/pci/pci_ids.h": >> >>> #define PCI_CLASS_DISPLAY_VGA 0x0300 >>> #define PCI_CLASS_DISPLAY_OTHER 0x0380 >> >> I think this is the cause of the mismatch. > > Yes, it is. First byte (0x03) of the class says what it is, second byte > of class (0x00 / 0x80) specifies the programming interface. > > So, it is a display adapter, but it isn't vga compatible, therefore > specifying PCI_CLASS_DISPLAY_VGA would be asking for trouble as trying > to program it using the standard vga io ports isn't going to work ... > > [ same picture with virtio-gpu btw: The variant with the vga compat > bits declares itself as PCI_CLASS_DISPLAY_VGA whereas the variant > without is PCI_CLASS_DISPLAY_OTHER ] > >> Does the following OVMF patch help? >> >>> - if (IS_PCI_VGA (Pci)) { >>> + if (IS_PCI_DISPLAY (Pci)) { > > Yes.
Please ping me when the series is merged and I will submit the patch (possibly also correcting the related "Vga" references throughout the file). Thanks Laszlo