]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/PlatformBootManagerLib/PlatformData.c
OvmfPkg/PlatformBootManagerLib: Use a Xen console for ConOut/ConIn
[mirror_edk2.git] / OvmfPkg / Library / PlatformBootManagerLib / PlatformData.c
index 36aab784d79b989fd9288fba6ddbdbe7ac40568e..2858c3dfd5cad0c4ba5e6bf867b143aca1081ff6 100644 (file)
@@ -9,18 +9,19 @@
 \r
 #include "BdsPlatform.h"\r
 #include <Guid/QemuRamfb.h>\r
+#include <Guid/SerialPortLibVendor.h>\r
 \r
 //\r
-// Debug Agent UART Device Path structure\r
+// Vendor UART Device Path structure\r
 //\r
-#pragma pack(1)\r
+#pragma pack (1)\r
 typedef struct {\r
   VENDOR_DEVICE_PATH        VendorHardware;\r
   UART_DEVICE_PATH          Uart;\r
   VENDOR_DEVICE_PATH        TerminalType;\r
   EFI_DEVICE_PATH_PROTOCOL  End;\r
 } VENDOR_UART_DEVICE_PATH;\r
-#pragma pack()\r
+#pragma pack ()\r
 \r
 //\r
 // USB Keyboard Device Path structure\r
@@ -141,6 +142,37 @@ STATIC VENDOR_RAMFB_DEVICE_PATH gQemuRamfbDevicePath = {
   gEndEntire\r
 };\r
 \r
+STATIC VENDOR_UART_DEVICE_PATH gXenConsoleDevicePath = {\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
+    EDKII_SERIAL_PORT_LIB_VENDOR_GUID\r
+  },\r
+  {\r
+    {\r
+      MESSAGING_DEVICE_PATH,\r
+      MSG_UART_DP,\r
+      {\r
+        (UINT8) (sizeof (UART_DEVICE_PATH)),\r
+        (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8)\r
+      }\r
+    },\r
+    0,\r
+    FixedPcdGet64 (PcdUartDefaultBaudRate),\r
+    FixedPcdGet8 (PcdUartDefaultDataBits),\r
+    FixedPcdGet8 (PcdUartDefaultParity),\r
+    FixedPcdGet8 (PcdUartDefaultStopBits),\r
+  },\r
+  gPcAnsiTerminal,\r
+  gEndEntire\r
+};\r
+\r
 //\r
 // Predefined platform default console device path\r
 //\r
@@ -163,6 +195,17 @@ PLATFORM_CONSOLE_CONNECT_ENTRY   gPlatformConsole[] = {
   }\r
 };\r
 \r
+PLATFORM_CONSOLE_CONNECT_ENTRY   gXenPlatformConsole[] = {\r
+  {\r
+    (EFI_DEVICE_PATH_PROTOCOL *)&gXenConsoleDevicePath,\r
+    (CONSOLE_OUT | CONSOLE_IN | STD_ERROR)\r
+  },\r
+  {\r
+    NULL,\r
+    0\r
+  }\r
+};\r
+\r
 //\r
 // Predefined platform connect sequence\r
 //\r