[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC] Xen Virtual Framebuffer

  • To: Anthony Liguori <aliguori@xxxxxxxxxx>
  • From: Jon Smirl <jonsmirl@xxxxxxxxx>
  • Date: Mon, 5 Dec 2005 22:13:18 -0500
  • Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Antonino A. Daplas" <adaplas@xxxxxxxxx>
  • Delivery-date: Tue, 06 Dec 2005 03:13:40 +0000
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=ZI9sWMLV52ySth9Ei32v6g6EHwUO4F6YS7l3zCeq/qR8GkhMAEmPU+kh02kX7UldyzqwTpQKyLV311IpN5/VG3t09BnjNrFENY9P+iX/aZlHD2V6hING7fI11J4UzpUGGBDLj0sSbdS9MR6lko16+6ZLXar6suu5EVhBAGfbmfg=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

On 12/5/05, Anthony Liguori <aliguori@xxxxxxxxxx> wrote:
> Jon Smirl wrote:
> >After thinking about this for a while, wouldn't Xen be better off with
> >a virtual VGA device instead of a virtual fbdev? The virtual VGA
> >device will work for other operating systems as well as Linux.
> >Implementing a VESA BIOS may be better than emulating VGA.
> >http://www.vesa.org/public/VBE/vbecore3.pdf
> >
> >
> This is how Qemu does it so it's what we do for VT.  The VMI spec
> (VMware paravirtual spec) assumes that you'll be doing device emulation
> and calls for an emulated PCI bus.  Xen achieves really good performance
> though by avoiding device emulation.  Native speed device emulation is
> an active area of research though so this might not always be the case :-)
> We don't currently do that in Xen though so it would be a considerable
> amount of work to emulate a PCI bus and a VGA device (not to mention an
> emu86 to be able to run the BIOS).

VGA devices don't live on the PCI bus, they are ISA legacy devices at
fixed IO ports/RAM address. But VESA is a better solution than the VGA

Does Xen supply a BIOS into the virtual machine? If so, just implement
the VESA entry points. Most of the Xen-based VESA entry points will do
nothing, but they can't return the not-implemented error. This is very
similar to what you are doing with a virtual fbdev, but the VESA
scheme will work for Windows too. Linux already has a vesafb driver
that will use the entry points you provide.

However, I am assuming that Windows/Linux will fallback to using VESA
calls if they don't find a physical VGA device. There isn't a simple
way to test this since every video card that implements VESA also
implements VGA. If you want to get errors from Linux while it is still
in real mode you need to implement the BIOS INT 10 interface.

Jon Smirl

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.