public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Jordan Justen <jordan.l.justen@intel.com>
To: Laszlo Ersek <lersek@redhat.com>,
Cc: "Ard Biesheuvel" <ard.biesheuvel@linaro.org>,
	"edk2-devel-01" <edk2-devel@lists.01.org>
Subject: Re: [PATCH 00/11] OvmfPkg, ArmVirtPkg: GOP driver for the VirtIo GPU (virtio-gpu-pci)
Date: Thu, 01 Sep 2016 11:03:28 -0700	[thread overview]
Message-ID: <147275300806.20661.4606850370467291385@jljusten-ivb> (raw)
In-Reply-To: <2c5b6038-a51a-9206-392b-d391c0aabf51@redhat.com>

On 2016-09-01 09:29:28, Laszlo Ersek wrote:
> On 08/31/16 22:43, Jordan Justen wrote:
> > 
> > If an OS can't load or find the native driver, the framebuffer also
> > provides a way to communicate with the user.
> 
> I agree that exposing the framebuffer address through the GOP (at boot
> time) so that the runtime OS can directly access the framebuffer (at
> runtime) is useful. For example, in Windows 8 and Windows 10 guests,
> this is how QXL can be initially used, interactively, until the native
> QXL drivers are installed.
> 
> I also agree that making a directly accessible framebuffer an *optional*

I can't dispute that it is optional by UEFI spec, but I think it is
commonly available (and for good reason).

> feature in the UEFI spec was the right thing to do! Graphics output
> *should* be supportable at least at boot time even if the device lacks a
> linear framebuffer (and even if the above OS fallback will therefore not
> work).
>

Isn't there generally a window after ExitBootServices is called, and
before the OS has it's own native driver loaded? For example, often
the Linux boot loader calls EBS before starting the kernel. What if
the kernel doesn't have the virtio gpu driver? Now there's no possible
way to signal the user.

This is just the Linux example, but for various OS's there could be
any number of reasons for something similar to occur.

> > 
> > Regarding VirtIo GPU: Shouldn't we wait until it makes it into the
> > actual specs?
> 
> No, we should not, at this point.
>

<snip>

> However, things have changed recently. I've received pings from three
> organizations that the driver has become more urgent for them. Combined
> with the facts that the 2D feature set of virtio-gpu has been part of
> QEMU since 2.4 [1], and a 2D Linux guest driver has existed for
> virtio-gpu since Linux 4.2 [2] [3], it seemed justified to shift the
> focus to working code, rather than standardization.
>

Ok. I guess it is the de-facto standard then. That is a good argument
to move forward, but I hope standardization doesn't lead to any
annoying compat issues.

> > Is there any chance to update the spec provide a simple (directly
> > scanned out) framebuffer mode?
> 
> As described in both the spec and several places in this series, such a
> device already exists (both specified and implemented): it is called
> "virtio-vga". "Virtio-vga" is the combination of "virtio-gpu-pci" plus a
> legacy VGA framebuffer (the one you also get with QXL and stdvga).
> 
> It is exactly this framebuffer that breaks in aarch64 KVM guests, due to
> architectural / KVM cache coherence issues (= as in, stuff that has been
> shipped in physical hardware already). For that reason, the
> "qemu-system-aarch64" binary, unlike "qemu-system-x86_64", does not even
> include the "virtio-vga" device model -- the framebuffer would be broken
> *anyway* on KVM. Instead, there we have to use "virtio-gpu-pci".
>

I think there would be value to have a non-VGA device that could still
configure a simple framebuffer. VGA does bring a fair amount of other
baggage. But, your point is good, that this does essentially 'fill the
gap' allowing for a temporary framebuffer while also allowing virtio
gpu to be used by the native OS driver.

> In other words, lacking a framebuffer is a *bonus* (which side-steps the
> aarch64 architectural / KVM problem).
>

It doesn't sound like a bonus. :)

Couldn't framebuffer support be an optional capability of the virtio
gpu device?

-Jordan


  reply	other threads:[~2016-09-01 18:03 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-19 12:49 [PATCH 00/11] OvmfPkg, ArmVirtPkg: GOP driver for the VirtIo GPU (virtio-gpu-pci) Laszlo Ersek
2016-08-19 12:49 ` [PATCH 01/11] OvmfPkg/QemuVideoDxe: don't incorrectly bind virtio-gpu-pci Laszlo Ersek
2016-08-19 12:49 ` [PATCH 02/11] OvmfPkg/Virtio10Dxe: don't bind virtio-vga Laszlo Ersek
2016-08-19 12:49 ` [PATCH 03/11] OvmfPkg/PlatformBootManagerLib: relax device class requirement for ConOut Laszlo Ersek
2016-08-19 12:49 ` [PATCH 04/11] OvmfPkg/IndustryStandard: add type definitions for the virtio GPU device Laszlo Ersek
2016-08-19 12:49 ` [PATCH 05/11] OvmfPkg/VirtioGpuDxe: introduce with Component Name 2 and Driver Binding Laszlo Ersek
2016-08-19 12:49 ` [PATCH 06/11] OvmfPkg: include VirtioGpuDxe in the platform DSC/FDF files Laszlo Ersek
2016-08-19 12:49 ` [PATCH 07/11] ArmVirtPkg/ArmVirtQemu: " Laszlo Ersek
2016-08-19 13:14   ` Ard Biesheuvel
2016-08-19 12:49 ` [PATCH 08/11] OvmfPkg/VirtioGpuDxe: initialize and tear down VirtIo GPU device Laszlo Ersek
2016-08-19 12:49 ` [PATCH 09/11] OvmfPkg/VirtioGpuDxe: provide functions for sending VirtIo GPU commands Laszlo Ersek
2016-08-19 12:49 ` [PATCH 10/11] OvmfPkg/VirtioGpuDxe: implement EFI_GRAPHICS_OUTPUT_PROTOCOL Laszlo Ersek
2016-08-19 12:49 ` [PATCH 11/11] ArmVirtPkg: remove PcdKludgeMapPciMmioAsCached Laszlo Ersek
2016-08-19 13:16   ` Ard Biesheuvel
2016-08-19 13:06 ` [PATCH 00/11] OvmfPkg, ArmVirtPkg: GOP driver for the VirtIo GPU (virtio-gpu-pci) Ard Biesheuvel
2016-08-19 14:25   ` Laszlo Ersek
2016-08-31 20:43     ` Jordan Justen
2016-09-01  7:44       ` Ard Biesheuvel
2016-09-01 16:48         ` Laszlo Ersek
2016-09-01 16:29       ` Laszlo Ersek
2016-09-01 18:03         ` Jordan Justen [this message]
2016-09-01 18:46           ` Laszlo Ersek
2016-09-01 19:52             ` Jordan Justen
2016-09-01 20:23               ` Ard Biesheuvel
2016-09-01 20:26                 ` Ard Biesheuvel
2016-09-01 20:52                 ` Jordan Justen
2016-09-01 20:44               ` Laszlo Ersek
2016-09-05 14:17               ` Gerd Hoffmann
2016-08-30 15:07 ` Laszlo Ersek
2016-09-01 20:32 ` Jordan Justen
2016-09-01 21:07   ` Laszlo Ersek
2016-09-01 22:02 ` Laszlo Ersek
     [not found]   ` <57CD6463.90903@suse.de>
2016-09-05 12:56     ` Laszlo Ersek
     [not found]       ` <57CD6C25.7000406@suse.de>
2016-09-05 13:17         ` Laszlo Ersek

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-list 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=147275300806.20661.4606850370467291385@jljusten-ivb \
    --to=devel@edk2.groups.io \
    /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