After writing up the virtual mdev device emulating a display supporting the bochs vbe dispi interface (mbochs.ko) and seeing how simple it actually is I've figured that would be useful for qemu too. So, here it is, -device bochs-display. It is basically -device VGA without legacy vga emulation. PCI bar 0 is the framebuffer, PCI bar 2 is mmio with the registers. The vga registers are simply not there though, neither in the legacy ioport location nor in the mmio bar. Consequently it is PCI class DISPLAY_OTHER not DISPLAY_VGA. So there is no text mode emulation, no weird video modes (planar, 256color palette), no memory window at 0xa0000. Just a linear framebuffer in the pci memory bar. And the amount of code to emulate this (and therefore the attack surface) is an order of magnitude smaller when compared to vga emulation. Compatibility wise it works with OVMF (latest git master). The bochs-drm.ko linux kernel module can handle it just fine too. So UEFI guests should not see any functional difference to VGA. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-id: 20180522165058.15404-4-kraxel@redhat.com
48 lines
1.6 KiB
Makefile
48 lines
1.6 KiB
Makefile
common-obj-$(CONFIG_ADS7846) += ads7846.o
|
|
common-obj-$(CONFIG_VGA_CIRRUS) += cirrus_vga.o
|
|
common-obj-$(CONFIG_G364FB) += g364fb.o
|
|
common-obj-$(CONFIG_JAZZ_LED) += jazz_led.o
|
|
common-obj-$(CONFIG_PL110) += pl110.o
|
|
common-obj-$(CONFIG_SII9022) += sii9022.o
|
|
common-obj-$(CONFIG_SSD0303) += ssd0303.o
|
|
common-obj-$(CONFIG_SSD0323) += ssd0323.o
|
|
common-obj-$(CONFIG_XEN) += xenfb.o
|
|
|
|
common-obj-$(CONFIG_VGA_PCI) += vga-pci.o
|
|
common-obj-$(CONFIG_VGA_PCI) += bochs-display.o
|
|
common-obj-$(CONFIG_VGA_ISA) += vga-isa.o
|
|
common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o
|
|
common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o
|
|
|
|
common-obj-$(CONFIG_BLIZZARD) += blizzard.o
|
|
common-obj-$(CONFIG_EXYNOS4) += exynos4210_fimd.o
|
|
common-obj-$(CONFIG_FRAMEBUFFER) += framebuffer.o
|
|
common-obj-$(CONFIG_MILKYMIST) += milkymist-vgafb.o
|
|
common-obj-$(CONFIG_ZAURUS) += tc6393xb.o
|
|
|
|
common-obj-$(CONFIG_MILKYMIST_TMU2) += milkymist-tmu2.o
|
|
milkymist-tmu2.o-cflags := $(X11_CFLAGS)
|
|
milkymist-tmu2.o-libs := $(X11_LIBS)
|
|
|
|
obj-$(CONFIG_OMAP) += omap_dss.o
|
|
obj-$(CONFIG_OMAP) += omap_lcdc.o
|
|
obj-$(CONFIG_PXA2XX) += pxa2xx_lcd.o
|
|
obj-$(CONFIG_RASPI) += bcm2835_fb.o
|
|
obj-$(CONFIG_SM501) += sm501.o
|
|
obj-$(CONFIG_TCX) += tcx.o
|
|
obj-$(CONFIG_CG3) += cg3.o
|
|
|
|
obj-$(CONFIG_VGA) += vga.o
|
|
|
|
common-obj-$(CONFIG_QXL) += qxl.o qxl-logger.o qxl-render.o
|
|
|
|
obj-$(CONFIG_VIRTIO) += virtio-gpu.o virtio-gpu-3d.o
|
|
obj-$(CONFIG_VIRTIO_PCI) += virtio-gpu-pci.o
|
|
obj-$(CONFIG_VIRTIO_VGA) += virtio-vga.o
|
|
virtio-gpu.o-cflags := $(VIRGL_CFLAGS)
|
|
virtio-gpu.o-libs += $(VIRGL_LIBS)
|
|
virtio-gpu-3d.o-cflags := $(VIRGL_CFLAGS)
|
|
virtio-gpu-3d.o-libs += $(VIRGL_LIBS)
|
|
obj-$(CONFIG_DPCD) += dpcd.o
|
|
obj-$(CONFIG_XLNX_ZYNQMP_ARM) += xlnx_dp.o
|