From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
To: u-boot@lists.denx.de
Cc: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>,
Heinrich Schuchardt <xypron.glpk@gmx.de>,
Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>,
Anatolij Gustschin <agust@denx.de>, Tom Rini <trini@konsulko.com>,
Bin Meng <bmeng.cn@gmail.com>, Asherah Connor <ashe@kivikakk.ee>,
Simon Glass <sjg@chromium.org>, Alexander Graf <agraf@csgraf.de>,
Mark Kettenis <mark.kettenis@xs4all.nl>,
Alper Nebi Yasak <alpernebiyasak@gmail.com>
Subject: [PATCH v2 0/7] Add support for QEMU's ramfb display
Date: Tue, 22 Aug 2023 15:10:18 +0300 [thread overview]
Message-ID: <20230822121026.1007105-1-alpernebiyasak@gmail.com> (raw)
This is a rebase of Alexander Graf's QEMU ramfb support series with
some changes of mine, in part to address reviews and to accommodate
other changes enabling Bochs video driver. The original cover letter is
as follows:
> 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 set adds support to drive the ramfb device in our QEMU arm
> targets. Theoretically, it should work as is with any of the other
> architectures as well though.
>
> With this driver, we have a very simple, KVM compatible way to expose
> GOP via UEFI to payloads and thus enable development and testing of
> graphical OS functionality with QEMU's -M virt.
Inspired by the "video: bochs: Remove the x86 limitation" series [1]
that was recently merged, I have also sent a series adding Bochs
video device support for ARM [2], and assuming that would get merged
before this I've rebased this on that to avoid conflicts.
[1] https://lore.kernel.org/u-boot/20230723044041.1089804-1-bmeng@tinylab.org/
[2] https://lore.kernel.org/u-boot/20230814173944.288356-1-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_*
- Use if (IS_ENABLED(CONFIG_VIDEO_RAMFB)) instead of #ifdef
- Add patch "qfw: Add flag to allow probing before relocation"
- Rebase on "qemu: arm: Enable Bochs, console buffering, USB keyboard"
- Drop env changes from ARM (necessary but in prerequisite series)
- Drop imply VIDEO, SYS_CONSOLE_IN_ENV changes from ARM (in prereq.)
- Probe QFW in ARM QEMU board_early_init_f to bind ramfb pre-reloc
- Add IS_ENABLED(CONFIG_QFW) check and error handling to ARM QEMU
- Drop imply VIDEO, env changes from RISC-V patch (in u-boot/next)
- Drop imply SYS_CONSOLE_IS_IN_ENV from RISC-V patch (def. y if VIDEO)
- Probe QFW in RISC-V QEMU board_early_init_f to bind ramfb pre-reloc
- Add IS_ENABLED(CONFIG_QFW) check and error handling to RISC-V QEMU
- Add patch "x86: qemu: Enable ramfb by default"
v1: https://lore.kernel.org/u-boot/20220227144043.37359-1-agraf@csgraf.de/
Alexander Graf (5):
qfw: Add WRITE definition
ramfb: Add driver for ramfb display
qfw: Spawn ramfb device if its file is present
arm: qemu: Enable ramfb by default
riscv: qemu: Enable ramfb by default
Alper Nebi Yasak (2):
qfw: Add flag to allow probing before relocation
x86: qemu: Enable ramfb by default
arch/arm/Kconfig | 3 +
arch/x86/cpu/qemu/Kconfig | 4 +
board/emulation/qemu-arm/qemu-arm.c | 41 +++++++++++
board/emulation/qemu-riscv/Kconfig | 5 ++
board/emulation/qemu-riscv/qemu-riscv.c | 41 +++++++++++
board/emulation/qemu-x86/qemu-x86.c | 47 ++++++++++++
configs/qemu-x86_64_defconfig | 4 +-
configs/qemu-x86_defconfig | 1 -
drivers/misc/qfw.c | 25 +++++++
drivers/misc/qfw_mmio.c | 1 +
drivers/misc/qfw_pio.c | 1 +
drivers/misc/qfw_sandbox.c | 1 +
drivers/video/Kconfig | 30 ++++++++
drivers/video/Makefile | 1 +
drivers/video/ramfb.c | 97 +++++++++++++++++++++++++
include/qfw.h | 11 +++
16 files changed, 309 insertions(+), 4 deletions(-)
create mode 100644 drivers/video/ramfb.c
base-commit: 832148f675e427060be074c276956962fa9b5cb6
prerequisite-patch-id: 2c8662d18f6f1e2d4e014bcd5d468e0396064f4f
prerequisite-patch-id: 5f3e5e1d814187841ce299df0da16df16d0121c3
prerequisite-patch-id: adbd0fb953e726ea5ea0b248e00092dfc318fd46
prerequisite-patch-id: 7470d3af5e9ded16eb5a4de7c7264062dcb3ef7f
--
2.40.1
next reply other threads:[~2023-08-22 12:10 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-22 12:10 Alper Nebi Yasak [this message]
2023-08-22 12:10 ` [PATCH v2 1/7] qfw: Add WRITE definition Alper Nebi Yasak
2023-08-22 12:10 ` [PATCH v2 2/7] ramfb: Add driver for ramfb display Alper Nebi Yasak
2023-08-22 18:56 ` Simon Glass
2023-08-22 12:10 ` [PATCH v2 3/7] qfw: Spawn ramfb device if its file is present Alper Nebi Yasak
2023-08-22 18:56 ` Simon Glass
2023-08-28 10:33 ` Alper Nebi Yasak
2023-08-22 12:10 ` [PATCH v2 4/7] qfw: Add flag to allow probing before relocation Alper Nebi Yasak
2023-08-22 18:56 ` Simon Glass
2023-08-28 15:22 ` Alper Nebi Yasak
2023-08-28 15:27 ` Tom Rini
2023-08-22 12:10 ` [PATCH v2 5/7] arm: qemu: Enable ramfb by default Alper Nebi Yasak
2023-08-22 18:56 ` Simon Glass
2023-08-28 15:46 ` Alper Nebi Yasak
2023-08-28 17:54 ` Simon Glass
2023-08-28 18:28 ` Alper Nebi Yasak
2023-08-28 20:32 ` Alexander Graf
2023-08-28 20:38 ` Simon Glass
2023-08-28 20:56 ` Alexander Graf
2023-08-22 12:10 ` [PATCH v2 6/7] riscv: " Alper Nebi Yasak
2023-08-22 18:56 ` Simon Glass
2023-08-22 12:10 ` [PATCH v2 7/7] x86: " Alper Nebi Yasak
2023-08-22 18:56 ` Simon Glass
2023-08-28 15:40 ` Alper Nebi Yasak
2023-08-28 15:47 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230822121026.1007105-1-alpernebiyasak@gmail.com \
--to=alpernebiyasak@gmail.com \
--cc=agraf@csgraf.de \
--cc=agust@denx.de \
--cc=ashe@kivikakk.ee \
--cc=bmeng.cn@gmail.com \
--cc=mark.kettenis@xs4all.nl \
--cc=rayagonda.kokatanur@broadcom.com \
--cc=sjg@chromium.org \
--cc=trini@konsulko.com \
--cc=tuomas.tynkkynen@iki.fi \
--cc=u-boot@lists.denx.de \
--cc=xypron.glpk@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).