995b30179b
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> |
||
---|---|---|
.. | ||
ads7846.c | ||
bcm2835_fb.c | ||
blizzard.c | ||
bochs-display.c | ||
cg3.c | ||
cirrus_vga_rop2.h | ||
cirrus_vga_rop.h | ||
cirrus_vga.c | ||
dpcd.c | ||
exynos4210_fimd.c | ||
framebuffer.c | ||
framebuffer.h | ||
g364fb.c | ||
jazz_led.c | ||
Makefile.objs | ||
milkymist-tmu2.c | ||
milkymist-vgafb_template.h | ||
milkymist-vgafb.c | ||
omap_dss.c | ||
omap_lcd_template.h | ||
omap_lcdc.c | ||
pl110_template.h | ||
pl110.c | ||
pxa2xx_lcd.c | ||
pxa2xx_template.h | ||
qxl-logger.c | ||
qxl-render.c | ||
qxl.c | ||
qxl.h | ||
ramfb.c | ||
sii9022.c | ||
sm501_template.h | ||
sm501.c | ||
ssd0303.c | ||
ssd0323.c | ||
tc6393xb_template.h | ||
tc6393xb.c | ||
tcx.c | ||
trace-events | ||
vga_int.h | ||
vga_regs.h | ||
vga-helpers.h | ||
vga-isa-mm.c | ||
vga-isa.c | ||
vga-pci.c | ||
vga.c | ||
virtio-gpu-3d.c | ||
virtio-gpu-pci.c | ||
virtio-gpu.c | ||
virtio-vga.c | ||
vmware_vga.c | ||
xenfb.c | ||
xlnx_dp.c |