
On Tue, 22 Aug 2023 at 06:10, Alper Nebi Yasak alpernebiyasak@gmail.com wrote:
From: Alexander Graf agraf@csgraf.de
QEMU implements multiple ways to expose graphics output to the virt machine, but most of them are incompatible with hardware virtualization.
The one that does work reliably is ramfb. It's a very simple mechanism in which the guest reserves a memory region for the frame buffer and then notifies the host about its location and properties. The host then just displays the contents of the frame buffer on screen.
This patch implements a trivial version of a ramfb driver - hard coded to a single resolution set in Kconfig.
Signed-off-by: Alexander Graf agraf@csgraf.de [Alper: Deduplicate depends on DM_VIDEO, drop MAINTAINERS, decouple from EFI_LOADER, add .bind(), kconfigurable resolution, struct in .h] Co-developed-by: Alper Nebi Yasak alpernebiyasak@gmail.com Signed-off-by: Alper Nebi Yasak alpernebiyasak@gmail.com
Changes in v2:
- Remove extra "depends on DM_VIDEO" already in "if VIDEO"
- Drop drivers/video/MAINTAINERS file
- Decouple framebuffer allocation from EFI_LOADER
- Add .bind() method for ramfb driver
- Make resolution configurable with kconfig
- Move struct to qfw.h and add comments for members
- Use RAMFB_* definitions instead of DEFAULT_*
drivers/video/Kconfig | 30 +++++++++++++ drivers/video/Makefile | 1 + drivers/video/ramfb.c | 97 ++++++++++++++++++++++++++++++++++++++++++ include/qfw.h | 10 +++++ 4 files changed, 138 insertions(+) create mode 100644 drivers/video/ramfb.c
Reviewed-by: Simon Glass sjg@chromium.org