vfio makes a nice interface to start looking at supporting VGA devices assigned to virtual machines (ie. userspace drivers) because we can so easily add additional ranges for a device. In this patch we add legacy MMIO (below 1MB) and I/O port (64k) to devices with PCI class code VGA. We can then use the kernel VGA arbiter service to change chipset routing for each access to the VGA ranges defined in the PCI spec. The rest of the region space not used by VGA is left inaccessible until we add future feature that needs some other legacy range. There's also a qemu userspace companion series to this which learns how to look for this new feature flag and setup ranges. Together they get a step closer to supporting vfio-based VGA assignment, but it doesn't yet work. I'm posting in this broken state both for archival purposes as well as the hope that someone has ideas of what might be missing or be able to pick up and run with this code. Some cards are able to get through execution of their VGA BIOS with these patches, but none that I've seen sync the monitor to VGA text mode from seabios. With a hack in qemu for a card specific backdoor on a Radeon HD5450 I've been able to get syslinux graphics mode to work and Windows will use it during normal bootup. I have no idea what might be missing for VGA text mode. Thanks, Alex --- Alex Williamson (1): vfio-pci: [NOT FOR COMMIT] Add support for legacy MMIO & I/O port towards VGA support drivers/vfio/pci/vfio_pci.c | 74 ++++++++++++--- drivers/vfio/pci/vfio_pci_private.h | 6 + drivers/vfio/pci/vfio_pci_rdwr.c | 170 +++++++++++++++++++++++++++-------- include/uapi/linux/vfio.h | 3 + 4 files changed, 197 insertions(+), 56 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html