On Fri, May 10, 2019 at 12:20:56PM +0300, Marcel Apfelbaum wrote:
On 5/10/19 11:59 AM, Gerd Hoffmann wrote:
Got it, thanks. Is a pity ramfb is not a PCI device :), it was worth the
If you look for a simple pci display device check out bochs-display.
It's simliar to stdvga (so ovmf and bochs-drm.ko can drive it just
fine), but without legacy vga emulation, only a linear framebuffer is
supported. And code size is a fraction of stdvga ...
I actually need the ramfb display in conjunction with kvmgt.
I want to be able to save the VM state to disk, which is actually a kind
of 'live migration' as far as I understand, but live-migration can't work
we use device assignment (vfio-pci-nohotplug device).
vfio live migration is being worked on btw.
I was hoping to be able to hot-unplug/hot-plug the vfio device,
but as the name suggests, can't do so since
the ramfb display uses fw-config to pass the configuration to firmware.
Yes, fw_cfg files can't be hotplugged, that is where this restriction
How hard/possible is to make ramfb display a PCI device and move the
configuration from fw-config to PCI configuration space?
Well, the whole point of using ramfb is that it is *not* a pci device,
but something you can attach to other devices as boot display. Right
now we have that for vfio only, in theory it can likewise be done for
virtio (so you can use virtio-ramfb instead of virtio-vga for bios
display support). Prototype exists. Given that OVMF has a full
virtio-gpu driver there isn't much need for that though ...
Piggyback on the pci config space of the device you are attaching ramfb
to isn't going to work very well for unknown devices (i.e. vfio case).
For virtio it would have worked without too much trouble probably, using
a vendor capability to grab some register space.
For a separate pci device you can just use bochs-display. Maybe add
some logic for the automagic display switching (i.e. if vfio has a valid
framebuffer use that and bochs-display otherwise).