qemu-e2k/hw/display
Gerd Hoffmann 995b30179b hw/display: add ramfb, a simple boot framebuffer living in guest ram
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>
2018-06-18 11:22:15 +02:00
..
ads7846.c
bcm2835_fb.c display: use local path for local headers 2018-06-01 19:20:37 +03:00
blizzard.c
bochs-display.c bochs-display: add missing break 2018-06-04 09:44:10 +02:00
cg3.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
cirrus_vga_rop2.h
cirrus_vga_rop.h
cirrus_vga.c
dpcd.c
exynos4210_fimd.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
framebuffer.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
framebuffer.h
g364fb.c g364fb: fix DirtyBitmapSnapshot leak 2018-03-06 14:00:58 +01:00
jazz_led.c
Makefile.objs hw/display: add ramfb, a simple boot framebuffer living in guest ram 2018-06-18 11:22:15 +02:00
milkymist-tmu2.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
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: fix local renderer crash 2018-05-07 11:47:57 +02:00
qxl.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
qxl.h
ramfb.c hw/display: add ramfb, a simple boot framebuffer living in guest ram 2018-06-18 11:22:15 +02:00
sii9022.c hw/sii9022: Add support for Silicon Image SII9022 2018-03-01 11:13:36 +00:00
sm501_template.h
sm501.c hw: Do not include "exec/address-spaces.h" if it is not necessary 2018-06-01 14:15:10 +02:00
ssd0303.c hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init 2018-06-01 15:14:31 +02:00
ssd0323.c
tc6393xb_template.h
tc6393xb.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
tcx.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
trace-events hw/sii9022: Add support for Silicon Image SII9022 2018-03-01 11:13:36 +00:00
vga_int.h vga: move bochs vbe defines to header file 2018-05-24 10:42:13 +02:00
vga_regs.h
vga-helpers.h
vga-isa-mm.c
vga-isa.c
vga-pci.c vga-pci: use PCI_VGA_MMIO_SIZE 2018-05-24 10:42:13 +02:00
vga.c vga: cleanup surface handling 2018-06-04 09:44:10 +02:00
virtio-gpu-3d.c virtio-gpu-3d: add support for second capability set (v4) 2018-02-26 13:41:34 +01:00
virtio-gpu-pci.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
virtio-gpu.c virtio-gpu-3d: add support for second capability set (v4) 2018-02-26 13:41:34 +01:00
virtio-vga.c
vmware_vga.c
xenfb.c
xlnx_dp.c object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence 2018-06-12 12:07:30 +02:00