mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
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>
This commit is contained in:
parent
47479c55b0
commit
995b30179b
3 changed files with 106 additions and 0 deletions
9
include/hw/display/ramfb.h
Normal file
9
include/hw/display/ramfb.h
Normal file
|
@ -0,0 +1,9 @@
|
|||
#ifndef RAMFB_H
|
||||
#define RAMFB_H
|
||||
|
||||
/* ramfb.c */
|
||||
typedef struct RAMFBState RAMFBState;
|
||||
void ramfb_display_update(QemuConsole *con, RAMFBState *s);
|
||||
RAMFBState *ramfb_setup(Error **errp);
|
||||
|
||||
#endif /* RAMFB_H */
|
Loading…
Add table
Add a link
Reference in a new issue