]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: add QemuRamfb to platform console
authorGerd Hoffmann <kraxel@redhat.com>
Wed, 13 Jun 2018 07:29:35 +0000 (09:29 +0200)
committerLaszlo Ersek <lersek@redhat.com>
Thu, 14 Jun 2018 09:56:45 +0000 (11:56 +0200)
Add QemuRamfbDxe device path to the list of platform console devices,
so ConSplitter will pick up the device even though it isn't a PCI GPU.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
OvmfPkg/Library/PlatformBootManagerLib/PlatformData.c

index a50cd7bcaf903f19fc6b53a74092e2301f745f6d..1250a6d351ffd63affc09c463ebff77facc75e50 100644 (file)
@@ -14,6 +14,7 @@
 **/\r
 \r
 #include "BdsPlatform.h"\r
+#include <Guid/QemuRamfb.h>\r
 \r
 //\r
 // Debug Agent UART Device Path structure\r
@@ -37,6 +38,17 @@ typedef struct {
 } USB_KEYBOARD_DEVICE_PATH;\r
 #pragma pack ()\r
 \r
+//\r
+// QemuRamfb Device Path structure\r
+//\r
+#pragma pack (1)\r
+typedef struct {\r
+  VENDOR_DEVICE_PATH        Vendor;\r
+  ACPI_ADR_DEVICE_PATH      AcpiAdr;\r
+  EFI_DEVICE_PATH_PROTOCOL  End;\r
+} VENDOR_RAMFB_DEVICE_PATH;\r
+#pragma pack ()\r
+\r
 ACPI_HID_DEVICE_PATH       gPnpPs2KeyboardDeviceNode  = gPnpPs2Keyboard;\r
 ACPI_HID_DEVICE_PATH       gPnp16550ComPortDeviceNode = gPnp16550ComPort;\r
 UART_DEVICE_PATH           gUartDeviceNode            = gUart;\r
@@ -100,6 +112,41 @@ STATIC USB_KEYBOARD_DEVICE_PATH gUsbKeyboardDevicePath = {
   gEndEntire\r
 };\r
 \r
+STATIC VENDOR_RAMFB_DEVICE_PATH gQemuRamfbDevicePath = {\r
+  {\r
+    {\r
+      HARDWARE_DEVICE_PATH,\r
+      HW_VENDOR_DP,\r
+      {\r
+        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
+        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
+      }\r
+    },\r
+    QEMU_RAMFB_GUID,\r
+  },\r
+  {\r
+    {\r
+      ACPI_DEVICE_PATH,\r
+      ACPI_ADR_DP,\r
+      {\r
+        (UINT8) (sizeof (ACPI_ADR_DEVICE_PATH)),\r
+        (UINT8) ((sizeof (ACPI_ADR_DEVICE_PATH)) >> 8)\r
+      }\r
+    },\r
+    ACPI_DISPLAY_ADR (\r
+      1,                                       // DeviceIdScheme\r
+      0,                                       // HeadId\r
+      0,                                       // NonVgaOutput\r
+      1,                                       // BiosCanDetect\r
+      0,                                       // VendorInfo\r
+      ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL,  // Type\r
+      0,                                       // Port\r
+      0                                        // Index\r
+      ),\r
+  },\r
+  gEndEntire\r
+};\r
+\r
 //\r
 // Predefined platform default console device path\r
 //\r
@@ -112,6 +159,10 @@ PLATFORM_CONSOLE_CONNECT_ENTRY   gPlatformConsole[] = {
     (EFI_DEVICE_PATH_PROTOCOL *)&gUsbKeyboardDevicePath,\r
     CONSOLE_IN\r
   },\r
+  {\r
+    (EFI_DEVICE_PATH_PROTOCOL *)&gQemuRamfbDevicePath,\r
+    CONSOLE_OUT\r
+  },\r
   {\r
     NULL,\r
     0\r