[Qemu-devel] [PATCH 0/4] ramfb: simple boot framebuffer, no legacy vga

Gerd Hoffmann posted 4 patches 6 years, 5 months ago
Only 3 patches received!
There is a newer version of this series
include/hw/display/ramfb.h |   8 +++
hw/display/ramfb-testdev.c |  87 ++++++++++++++++++++++++++
hw/display/ramfb.c         |  94 ++++++++++++++++++++++++++++
hw/display/virtio-ramfb.c  | 149 +++++++++++++++++++++++++++++++++++++++++++++
hw/display/Makefile.objs   |   5 +-
pc-bios/bios-256k.bin      | Bin 262144 -> 262144 bytes
pc-bios/vgabios-ramfb.bin  | Bin 0 -> 28160 bytes
7 files changed, 342 insertions(+), 1 deletion(-)
create mode 100644 include/hw/display/ramfb.h
create mode 100644 hw/display/ramfb-testdev.c
create mode 100644 hw/display/ramfb.c
create mode 100644 hw/display/virtio-ramfb.c
create mode 100644 pc-bios/vgabios-ramfb.bin
[Qemu-devel] [PATCH 0/4] ramfb: simple boot framebuffer, no legacy vga
Posted by Gerd Hoffmann 6 years, 5 months ago
  Hi,

Ok folks, here is a experimental patch series for a legacy free boot
framebuffer.  If you want play with it I recommend getting the bits from

	https://www.kraxel.org/cgit/qemu/log/?h=sirius/ramfb

because they come with an updated seabios and a new vgabios rom.

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.  So it is *really* intended to be only active for a short time
at boot, before the guest loaded the drivers for the real display
hardware.

seavgabios is able to emulate vga text mode on top of a framebuffer, for
coreboot native graphics initialialization.  Which works fine for
everything which writes text using the vgabios interface (basically
everyhing which works with sgabios).

So I hacked that up to work with ramfb.  Right now it's proof-of-concept
code with too much cut+paste, so it will clearly need a bunch of
cleanups if this approach turns out to be workable.  Look here:
	https://www.kraxe.org/cgit/seabios/log/?h=ramfb

So, how to play?

There is ramfb-testdev.  Standalone device, for testing purposes.  Also
listens on vga ports and logs any access, so we can see the bad boys ;)
Use "qemu -vga none -device ramfb-testdev".

There is virtio-ramfb.  Simlar to virtio-vga, but using ramfb instead of
adding vga compatibility.  Shows how you can wire up ramfb support to
some display device.  Unlike virtio-vga it should work fine on arm.  Use
"qemu -vga none -device virtio-ramfb" for this one.

What works?

Boot loaders all use vgabios calls for text mode, so they show up just
fine.  Also ipxe, seabios itself of course.  So you can boot up your
linux guest.  vesafb works too.

What doesn't work?

vgacon (direct vga hardware access).

Windows (bios mode).  Boot logo shows up just fine.  But at some point
windows does lots of vga register accesses (even though it sets the
video mode via vesa bios interface) and appears to be unhappy that
things don't work as expected because there is no actual vga hardware.

Future plans:

Try use that as vgpu boot display.  Requires solving that windows issue
somehow, otherwise it's going to be a non-starter.

Trick László into writing a UEFI driver for that.  Linux will use efifb
not vgacon then, and hopefully Windows doesn't try access vga registers
either.

Comments?
Hints on the windows issue anyone?

enjoy,
  Gerd

Gerd Hoffmann (4):
  [testing] update bios, add vgabios-ramfb
  ramfb: simple boot framebuffer living in guest ram
  add virtio-ramfb
  add ramfb-testdev

 include/hw/display/ramfb.h |   8 +++
 hw/display/ramfb-testdev.c |  87 ++++++++++++++++++++++++++
 hw/display/ramfb.c         |  94 ++++++++++++++++++++++++++++
 hw/display/virtio-ramfb.c  | 149 +++++++++++++++++++++++++++++++++++++++++++++
 hw/display/Makefile.objs   |   5 +-
 pc-bios/bios-256k.bin      | Bin 262144 -> 262144 bytes
 pc-bios/vgabios-ramfb.bin  | Bin 0 -> 28160 bytes
 7 files changed, 342 insertions(+), 1 deletion(-)
 create mode 100644 include/hw/display/ramfb.h
 create mode 100644 hw/display/ramfb-testdev.c
 create mode 100644 hw/display/ramfb.c
 create mode 100644 hw/display/virtio-ramfb.c
 create mode 100644 pc-bios/vgabios-ramfb.bin

-- 
2.9.3


Re: [Qemu-devel] [PATCH 0/4] ramfb: simple boot framebuffer, no legacy vga
Posted by Laszlo Ersek 6 years, 5 months ago
CC Ard & Drew

Hi,

On 11/17/17 13:04, Gerd Hoffmann wrote:
>   Hi,
> 
> Ok folks, here is a experimental patch series for a legacy free boot
> framebuffer.  If you want play with it I recommend getting the bits from
> 
> 	https://www.kraxel.org/cgit/qemu/log/?h=sirius/ramfb
> 
> because they come with an updated seabios and a new vgabios rom.
> 
> 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.

Please add documentation on the "fourcc" (pixel format?) and "flags"
fields. Also please document the endianness of the integer fields.

> 
> 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.  So it is *really* intended to be only active for a short time
> at boot, before the guest loaded the drivers for the real display
> hardware.
> 
> seavgabios is able to emulate vga text mode on top of a framebuffer, for
> coreboot native graphics initialialization.  Which works fine for
> everything which writes text using the vgabios interface (basically
> everyhing which works with sgabios).
> 
> So I hacked that up to work with ramfb.  Right now it's proof-of-concept
> code with too much cut+paste, so it will clearly need a bunch of
> cleanups if this approach turns out to be workable.  Look here:
> 	https://www.kraxe.org/cgit/seabios/log/?h=ramfb
> 
> So, how to play?
> 
> There is ramfb-testdev.  Standalone device, for testing purposes.  Also
> listens on vga ports and logs any access, so we can see the bad boys ;)
> Use "qemu -vga none -device ramfb-testdev".
> 
> There is virtio-ramfb.  Simlar to virtio-vga, but using ramfb instead of
> adding vga compatibility.  Shows how you can wire up ramfb support to
> some display device.  Unlike virtio-vga it should work fine on arm.  Use
> "qemu -vga none -device virtio-ramfb" for this one.

(Side note: <https://bugzilla.tianocore.org/show_bug.cgi?id=785>.)

We should make sure that any device model that combines ramfb with
another PCI display device is not matched by the OVMF driver for that
PCI display device. IOW, we should use separate PCI IDs or subsystem IDs
(I don't recall the details off-hand). I'd like to avoid messing with
the current device probing code in OVMF. It just wouldn't be nice if two
independent drivers (e.g. VirtioGpuDxe and a supposed "RamFbDxe") bound
the two interfaces at the same time.

This device will take a DXE driver or UEFI driver that does not follow
the UEFI driver model because there's no "controller handle" to bind.
(The thing to probe is an fw_cfg file.)

> 
> What works?
> 
> Boot loaders all use vgabios calls for text mode, so they show up just
> fine.  Also ipxe, seabios itself of course.  So you can boot up your
> linux guest.  vesafb works too.
> 
> What doesn't work?
> 
> vgacon (direct vga hardware access).
> 
> Windows (bios mode).  Boot logo shows up just fine.  But at some point
> windows does lots of vga register accesses (even though it sets the
> video mode via vesa bios interface) and appears to be unhappy that
> things don't work as expected because there is no actual vga hardware.
> 
> Future plans:
> 
> Try use that as vgpu boot display.  Requires solving that windows issue
> somehow, otherwise it's going to be a non-starter.
> 
> Trick László into writing a UEFI driver for that.

I cannot imagine when I'll get to this. :(

Feel free to file a BZ somewhere (TianoCore or RH Bugzilla) and/or poke
me occasionally. My TODO list is full of things than are *all* more
urgenterer than all the other things on the list.

I'm nearing TODO list bankruptcy (IRL too).

> Linux will use efifb
> not vgacon then, and hopefully Windows doesn't try access vga registers
> either.
> 
> Comments?
> Hints on the windows issue anyone?

We looked into those when we worked on the Int10h VBE shim in OVMF. We
decided the VGA register accesses were way too complicated and so we did
the shim for BOCHS VGA and QXL only. IIRC. (I could be conflating things.)

This looks like a great job, honestly; I'm sorry I can't say more
positive things about a GOP driver for it right now.

Thanks,
Laszlo

> 
> enjoy,
>   Gerd
> 
> Gerd Hoffmann (4):
>   [testing] update bios, add vgabios-ramfb
>   ramfb: simple boot framebuffer living in guest ram
>   add virtio-ramfb
>   add ramfb-testdev
> 
>  include/hw/display/ramfb.h |   8 +++
>  hw/display/ramfb-testdev.c |  87 ++++++++++++++++++++++++++
>  hw/display/ramfb.c         |  94 ++++++++++++++++++++++++++++
>  hw/display/virtio-ramfb.c  | 149 +++++++++++++++++++++++++++++++++++++++++++++
>  hw/display/Makefile.objs   |   5 +-
>  pc-bios/bios-256k.bin      | Bin 262144 -> 262144 bytes
>  pc-bios/vgabios-ramfb.bin  | Bin 0 -> 28160 bytes
>  7 files changed, 342 insertions(+), 1 deletion(-)
>  create mode 100644 include/hw/display/ramfb.h
>  create mode 100644 hw/display/ramfb-testdev.c
>  create mode 100644 hw/display/ramfb.c
>  create mode 100644 hw/display/virtio-ramfb.c
>  create mode 100644 pc-bios/vgabios-ramfb.bin
> 


[Qemu-devel] [PATCH 1/4] [testing] update bios, add vgabios-ramfb
Posted by Gerd Hoffmann 6 years, 5 months ago
source code: https://www.kraxe.org/cgit/seabios/log/?h=ramfb
---
 pc-bios/bios-256k.bin     | Bin 262144 -> 262144 bytes
 pc-bios/vgabios-ramfb.bin | Bin 0 -> 28160 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 pc-bios/vgabios-ramfb.bin

diff --git a/pc-bios/bios-256k.bin b/pc-bios/bios-256k.bin
index e1d6b159277844320e3b1dfcbc74946ddef29026..ee51c3d61ce16a2f2139b704f073f06640a282f8 100644
GIT binary patch
delta 14336
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
BC}scv

delta 14320
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

diff --git a/pc-bios/vgabios-ramfb.bin b/pc-bios/vgabios-ramfb.bin
new file mode 100644
index 0000000000000000000000000000000000000000..2f632cb21dfcca61704ab8dac18137cda43f30d4
GIT binary patch
literal 28160
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
D7Y2Ds

literal 0
HcmV?d00001

-- 
2.9.3