The boot framebuffer is expected to be configured by the firmware, so it uses fw_cfg as interface. Initialization goes as follows: (1) Check whenever etc/ramfb is present. (2) Allocate framebuffer from RAM. (3) Fill struct RAMFBCfg, write it to etc/ramfb. Done. You can write stuff to the framebuffer now, and it should appear automagically on the screen. Note that this isn't very efficient because it does a full display update on each refresh. No dirty tracking. Dirty tracking would have to be active for the whole ram slot, so that wouldn't be very efficient either. For a boot display which is active for a short time only this isn't a big deal. As permanent guest display something better should be used (if possible). This is the ramfb core code. Some windup is needed for display devices which want have a ramfb boot display. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Laszlo Ersek <lersek@redhat.com> Message-id: 20180613122948.18149-2-kraxel@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
50 lines
1.7 KiB
Makefile
50 lines
1.7 KiB
Makefile
common-obj-y += ramfb.o
|
|
|
|
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_GPU) += virtio-gpu.o virtio-gpu-3d.o
|
|
obj-$(call land,$(CONFIG_VIRTIO_GPU),$(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
|