]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/QemuVideoDxe/Driver.c
OvmfPkg: add DxePciLibI440FxQ35
[mirror_edk2.git] / OvmfPkg / QemuVideoDxe / Driver.c
index 2194cbef44a47b517112c81692bdb1352bdecf60..8d962b4438982ffbae4e838dd07be4d812a57111 100644 (file)
@@ -52,6 +52,11 @@ QEMU_VIDEO_CARD gQemuVideoCardList[] = {
         0x0100,\r
         QEMU_VIDEO_BOCHS,\r
         L"QEMU QXL VGA"\r
+    },{\r
+        0x1af4,\r
+        0x1050,\r
+        QEMU_VIDEO_BOCHS_MMIO,\r
+        L"QEMU VirtIO VGA"\r
     },{\r
         0 /* end of list */\r
     }\r
@@ -173,6 +178,7 @@ QemuVideoControllerDriverStart (
   EFI_TPL                           OldTpl;\r
   EFI_STATUS                        Status;\r
   QEMU_VIDEO_PRIVATE_DATA           *Private;\r
+  BOOLEAN                           IsQxl;\r
   EFI_DEVICE_PATH_PROTOCOL          *ParentDevicePath;\r
   ACPI_ADR_DEVICE_PATH              AcpiDeviceNode;\r
   PCI_TYPE00                        Pci;\r
@@ -234,6 +240,12 @@ QemuVideoControllerDriverStart (
   }\r
   Private->Variant = Card->Variant;\r
 \r
+  //\r
+  // IsQxl is based on the detected Card->Variant, which at a later point might\r
+  // not match Private->Variant.\r
+  //\r
+  IsQxl = (BOOLEAN)(Card->Variant == QEMU_VIDEO_BOCHS);\r
+\r
   //\r
   // Save original PCI attributes\r
   //\r
@@ -354,7 +366,7 @@ QemuVideoControllerDriverStart (
     break;\r
   case QEMU_VIDEO_BOCHS_MMIO:\r
   case QEMU_VIDEO_BOCHS:\r
-    Status = QemuVideoBochsModeSetup (Private);\r
+    Status = QemuVideoBochsModeSetup (Private, IsQxl);\r
     break;\r
   default:\r
     ASSERT (FALSE);\r
@@ -398,10 +410,12 @@ QemuVideoControllerDriverStart (
     goto UninstallGop;\r
   }\r
 \r
+#if defined MDE_CPU_IA32 || defined MDE_CPU_X64\r
   if (Private->Variant == QEMU_VIDEO_BOCHS_MMIO ||\r
       Private->Variant == QEMU_VIDEO_BOCHS) {\r
     InstallVbeShim (Card->Name, Private->GraphicsOutput.Mode->FrameBufferBase);\r
   }\r
+#endif\r
 \r
   gBS->RestoreTPL (OldTpl);\r
   return EFI_SUCCESS;\r