qemu-e2k/hw
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
..
9pfs 9p: xattr: Properly translate xattrcreate flags 2018-06-07 12:17:22 +02:00
acpi nvdimm: make persistence option symbolic 2018-06-11 22:19:57 +03:00
adc
alpha iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
arm iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
audio hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init 2018-06-01 15:14:31 +02:00
block Block layer patches: 2018-06-15 16:30:27 +01:00
bt
char hw/char/parallel: Convert away from old_mmio 2018-06-15 15:23:34 +01:00
core hw/core/or-irq: Support more than 16 inputs to an OR gate 2018-06-15 15:23:34 +01:00
cpu
cris hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
display hw/display: add ramfb, a simple boot framebuffer living in guest ram 2018-06-18 11:22:15 +02:00
dma iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
gpio hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init 2018-06-01 15:14:31 +02:00
hppa acpi, vhost, misc: fixes, features 2018-06-04 10:15:16 +01:00
i2c ppc4xx_i2c: Clean up and improve error logging 2018-06-12 10:44:36 +10:00
i386 iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
ide block: Remove deprecated -drive option serial 2018-06-15 14:49:44 +02:00
input hw/input/pckbd: Convert away from old_mmio 2018-06-15 15:23:34 +01:00
intc arm: Don't crash if user tries to use a Cortex-M CPU without an NVIC 2018-06-15 15:23:34 +01:00
ipack
ipmi object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence 2018-06-12 12:07:30 +02:00
isa hw/isa/superio: Fix inconsistent use of Chardev->be 2018-06-01 15:13:46 +02:00
lm32 hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
m68k hw/m68k/mcf5206: Convert away from old_mmio 2018-06-15 15:23:34 +01:00
mem nvdimm: fix typo in label-size definition 2018-05-23 17:02:03 +03:00
microblaze hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
mips hw/mips/boston: Add trailing '\n' to qemu_log() calls 2018-06-08 13:15:33 +01:00
misc aspeed_scu: Implement RNG register 2018-06-15 15:23:34 +01:00
moxie Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
net e1000e: Do not auto-clear ICR bits which aren't set in EIAC 2018-06-15 10:39:53 +08:00
nios2 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
nvram * Linux header upgrade (Peter) 2018-06-01 18:24:16 +01:00
openrisc Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
pci virtio,vhost,pci,pc: features, cleanups 2018-03-20 15:48:34 +00:00
pci-bridge virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
pci-host uninorth: remove token register from uninorth device 2018-06-12 09:33:52 +10:00
pcmcia
ppc iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
rdma hw/rdma: Fix possible out of bounds access to port GID index 2018-05-03 20:52:29 +03:00
riscv hw: Do not include "exec/address-spaces.h" if it is not necessary 2018-06-01 14:15:10 +02:00
s390x iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
scsi block: Remove deprecated -drive option serial 2018-06-15 14:49:44 +02:00
sd sdcard: Disable CMD19/CMD23 for Spec v2 2018-06-08 13:15:34 +01:00
sh4 hw/sh/sh7750: Convert away from old_mmio 2018-06-15 15:23:34 +01:00
smbios Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
sparc iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
sparc64 iommu: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
ssi object: fix OBJ_PROP_LINK_UNREF_ON_RELEASE ambivalence 2018-06-12 12:07:30 +02:00
timer hw/digic: Add trailing '\n' to qemu_log() calls 2018-06-08 13:15:33 +01:00
tpm tpm: extend TPM TIS with state migration support 2018-05-24 12:07:04 -04:00
tricore hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-03-12 16:12:46 +01:00
unicore32 hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
usb block: Remove deprecated -drive option serial 2018-06-15 14:49:44 +02:00
vfio iommu: Add IOMMU index argument to notifier APIs 2018-06-15 15:23:34 +01:00
virtio iommu: Add IOMMU index argument to notifier APIs 2018-06-15 15:23:34 +01:00
watchdog hw/watchdog/wdt_i6300esb: Convert away from old_mmio 2018-06-15 15:23:34 +01:00
xen * Linux header upgrade (Peter) 2018-06-01 18:24:16 +01:00
xenpv
xtensa hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
Makefile.objs hw: allow compiling out SCSI 2018-06-01 15:14:31 +02:00