[SeaBIOS] [PATCH 2/3] vgahooks: Register 155f vga hooks for Xen Intel passthrough devices
Kevin O'Connor
kevin at koconnor.net
Wed Feb 1 05:13:29 CET 2012
On Mon, Jan 30, 2012 at 01:55:55PM +0000, julian.pidancet at gmail.com wrote:
> From: Julian Pidancet <julian.pidancet at citrix.com>
>
> Some Intel VGA option ROMs require some 155f hooks implemented in the
> BIOS.
>
> Signed-off-by: Julian Pidancet <julian.pidancet at citrix.com>
> ---
> src/vgahooks.c | 20 +++++++++++++++++++-
> 1 files changed, 19 insertions(+), 1 deletions(-)
>
> diff --git a/src/vgahooks.c b/src/vgahooks.c
> index a8f667c..ca12e31 100644
> --- a/src/vgahooks.c
> +++ b/src/vgahooks.c
> @@ -11,6 +11,7 @@
> #include "pci_ids.h" // PCI_VENDOR_ID_VIA
> #include "util.h" // handle_155f
> #include "config.h" // CONFIG_*
> +#include "xen.h" // usingXen
>
> #define VH_VIA 1
> #define VH_INTEL 2
> @@ -228,6 +229,15 @@ getac_setup(struct pci_device *pci)
> {
> }
>
> +static void
> +xen_vgapt_setup(struct pci_device *pci)
> +{
> + if (pci->vendor == 0x8086 && pci->class == 0x300) {
> + VGAHookHandlerType = VH_INTEL;
> + IntelDisplayType = BOOT_DISPLAY_DEFAULT;
> + IntelDisplayId = 3;
> + }
> +}
>
> /****************************************************************
> * Entry and setup
> @@ -254,7 +264,15 @@ handle_155f(struct bregs *regs)
> void
> vgahook_setup(struct pci_device *pci)
> {
> - if (!CONFIG_VGAHOOKS || !CBvendor || !CBpart)
> + if (!CONFIG_VGAHOOKS)
> + return;
> +
> + if (usingXen()) {
> + xen_vgapt_setup(pci);
> + return;
> + }
> +
> + if (!CBvendor || !CBpart)
> return;
Is Xen passthrough special, or will the same thing occur on KVM
passthrough? If the 155f hooks are needed on Intel VGA cards, I
wouldn't tie it to Xen - we can just turn it on by default and enable
it if the VGA card is recognized as Intel based.
-Kevin
More information about the SeaBIOS
mailing list