[SeaBIOS] [PATCH 2/3] vgahooks: Register 155f vga hooks for Xen Intel passthrough devices
julian.pidancet at gmail.com
julian.pidancet at gmail.com
Mon Jan 30 14:55:55 CET 2012
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;
if (strcmp(CBvendor, "KONTRON") == 0 && strcmp(CBpart, "986LCD-M") == 0)
--
Julian Pidancet
More information about the SeaBIOS
mailing list