[SeaBIOS] RFC: Primary VGA
Alex Williamson
alex.williamson at redhat.com
Thu Feb 28 16:26:54 CET 2013
On Thu, 2013-02-28 at 08:50 +0200, Michael S. Tsirkin wrote:
> On Wed, Feb 27, 2013 at 02:16:23PM -0700, Alex Williamson wrote:
> >
> > When we start adding root ports and bridges to systems we need some
> > concept of a primary VGA device.The differentiation of the primary
> > device is that it's the default one that responds to the Legacy VGA
> > address ranges. PCs often have a BIOS selection for this.
> >
> > Seabios already seems to have some concept of this and looks for a VGA
> > class device for which the parent devices all have VGA routing enabled.
> > This seems to work today if QEMU initializes VGA routing for the path it
> > considers the primary.
> >
> > The first question is whether this bridge path pre-configuration is what
> > we want to keep as the way QEMU communicates the primary VGA device to
> > Seabios? Obviously we could switch to some kind of fwcfg interface, but
> > I tend to think what we have is sufficient.
> >
> > If it is sufficient, then I think we need to rebuild that path on system
> > reset and we need some way to specify which device to use. One option
> > would be some kind of per PCIDevice property, perhaps "primary_vga". A
> > downside is that users can abuse it by trying to set it for more than
> > one device. Maybe a better approach would be to add a machine property
> > for it, -machine primary_vga=$id.
>
> Yes. And a command to change it when we support hotplug in the future?
Looking at how this would happen on bare metal, there are ACPI methods
_GPD (Get Post Device), _SPD (Set Post Device), and _VPD (Video Post
Options). So I imagine that if we supported VGA hotplug we'd use those
to let the guest specify the primary and continue to use an algorithm in
SeaBIOS to post to the lowest B:D.F VGA device if unspecified. I don't
know that we need some kind of QMP/QAPI runtime command to change the
VGA post device externally on the next boot, real systems likely doesn't
have such a hook. For now I'll just start with making SeaBIOS have a
way to enable and post the first VGA device when it's behind bridges.
Thanks,
Alex
> > We'll also need some reasonable way
> > to pick a default if unspecified.
> >
> > Does anyone have any thoughts on managing this? Thanks,
> >
> > Alex
More information about the SeaBIOS
mailing list