]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.h
OvmfPkg/PlatformBootManagerLib: Remove dependency on Mps.h
[mirror_edk2.git] / OvmfPkg / Library / PlatformBootManagerLib / BdsPlatform.h
index d6ff31608028acb79132a5a45a8ea673398a1746..49a072b4009361d871d33010688844117d74cf7e 100644 (file)
@@ -1,14 +1,8 @@
 /** @file\r
   Platform BDS customizations include file.\r
 \r
-  Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.<BR>\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 Module Name:\r
 \r
@@ -30,6 +24,7 @@ Abstract:
 #include <IndustryStandard/Acpi.h>\r
 #include <IndustryStandard/SmBios.h>\r
 #include <IndustryStandard/PeImage.h>\r
+#include <IndustryStandard/Virtio095.h>\r
 \r
 #include <Library/DebugLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
@@ -39,8 +34,8 @@ Abstract:
 #include <Library/BaseLib.h>\r
 #include <Library/PcdLib.h>\r
 #include <Library/PciLib.h>\r
-#include <Library/GenericBdsLib.h>\r
-#include <Library/PlatformBdsLib.h>\r
+#include <Library/UefiBootManagerLib.h>\r
+#include <Library/BootLogoLib.h>\r
 #include <Library/HobLib.h>\r
 #include <Library/UefiLib.h>\r
 #include <Library/DxeServicesTableLib.h>\r
@@ -48,6 +43,8 @@ Abstract:
 #include <Library/IoLib.h>\r
 #include <Library/NvVarsFileLib.h>\r
 #include <Library/QemuFwCfgLib.h>\r
+#include <Library/QemuFwCfgS3Lib.h>\r
+#include <Library/QemuBootOrderLib.h>\r
 \r
 #include <Protocol/Decompress.h>\r
 #include <Protocol/PciIo.h>\r
@@ -56,32 +53,22 @@ Abstract:
 #include <Protocol/PciRootBridgeIo.h>\r
 #include <Protocol/S3SaveState.h>\r
 #include <Protocol/DxeSmmReadyToLock.h>\r
+#include <Protocol/LoadedImage.h>\r
 \r
 #include <Guid/Acpi.h>\r
 #include <Guid/SmBios.h>\r
-#include <Guid/Mps.h>\r
 #include <Guid/HobList.h>\r
 #include <Guid/GlobalVariable.h>\r
 #include <Guid/EventGroup.h>\r
+#include <Guid/DebugAgentGuid.h>\r
 \r
 #include <OvmfPlatforms.h>\r
 \r
-extern BDS_CONSOLE_CONNECT_ENTRY  gPlatformConsole[];\r
 extern EFI_DEVICE_PATH_PROTOCOL   *gPlatformConnectSequence[];\r
-extern EFI_DEVICE_PATH_PROTOCOL   *gPlatformDriverOption[];\r
 extern ACPI_HID_DEVICE_PATH       gPnpPs2KeyboardDeviceNode;\r
 extern ACPI_HID_DEVICE_PATH       gPnp16550ComPortDeviceNode;\r
 extern UART_DEVICE_PATH           gUartDeviceNode;\r
 extern VENDOR_DEVICE_PATH         gTerminalTypeDeviceNode;\r
-//\r
-//\r
-//\r
-#define VarConsoleInpDev        L"ConInDev"\r
-#define VarConsoleInp           L"ConIn"\r
-#define VarConsoleOutDev        L"ConOutDev"\r
-#define VarConsoleOut           L"ConOut"\r
-#define VarErrorOutDev          L"ErrOutDev"\r
-#define VarErrorOut             L"ErrOut"\r
 \r
 #define PCI_DEVICE_PATH_NODE(Func, Dev) \\r
   { \\r
@@ -153,129 +140,39 @@ extern VENDOR_DEVICE_PATH         gTerminalTypeDeviceNode;
     DEVICE_PATH_MESSAGING_PC_ANSI \\r
   }\r
 \r
+#define gEndEntire \\r
+  { \\r
+    END_DEVICE_PATH_TYPE, \\r
+    END_ENTIRE_DEVICE_PATH_SUBTYPE, \\r
+    { \\r
+      END_DEVICE_PATH_LENGTH, \\r
+      0 \\r
+    } \\r
+  }\r
+\r
 #define PCI_CLASS_SCC          0x07\r
 #define PCI_SUBCLASS_SERIAL    0x00\r
 #define PCI_IF_16550           0x02\r
 #define IS_PCI_16550SERIAL(_p)           IS_CLASS3 (_p, PCI_CLASS_SCC, PCI_SUBCLASS_SERIAL, PCI_IF_16550)\r
-\r
-#define EFI_SYSTEM_TABLE_MAX_ADDRESS 0xFFFFFFFF\r
-#define SYS_TABLE_PAD(ptr) (((~ptr) +1) & 0x07 )\r
-\r
 #define IS_PCI_ISA_PDECODE(_p)        IS_CLASS3 (_p, PCI_CLASS_BRIDGE, PCI_CLASS_BRIDGE_ISA_PDECODE, 0)\r
 \r
 typedef struct {\r
-  ACPI_HID_DEVICE_PATH      PciRootBridge;\r
-  PCI_DEVICE_PATH           IsaBridge;\r
-  ACPI_HID_DEVICE_PATH      Keyboard;\r
-  EFI_DEVICE_PATH_PROTOCOL  End;\r
-} PLATFORM_DUMMY_ISA_KEYBOARD_DEVICE_PATH;\r
-\r
-typedef struct {\r
-  ACPI_HID_DEVICE_PATH      PciRootBridge;\r
-  PCI_DEVICE_PATH           IsaBridge;\r
-  ACPI_HID_DEVICE_PATH      IsaSerial;\r
-  UART_DEVICE_PATH          Uart;\r
-  VENDOR_DEVICE_PATH        TerminalType;\r
-  EFI_DEVICE_PATH_PROTOCOL  End;\r
-} PLATFORM_DUMMY_ISA_SERIAL_DEVICE_PATH;\r
-\r
-typedef struct {\r
-  ACPI_HID_DEVICE_PATH      PciRootBridge;\r
-  PCI_DEVICE_PATH           VgaDevice;\r
-  EFI_DEVICE_PATH_PROTOCOL  End;\r
-} PLATFORM_DUMMY_PCI_VGA_DEVICE_PATH;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
+  UINTN                     ConnectType;\r
+} PLATFORM_CONSOLE_CONNECT_ENTRY;\r
 \r
-typedef struct {\r
-  ACPI_HID_DEVICE_PATH      PciRootBridge;\r
-  PCI_DEVICE_PATH           PciBridge;\r
-  PCI_DEVICE_PATH           SerialDevice;\r
-  UART_DEVICE_PATH          Uart;\r
-  VENDOR_DEVICE_PATH        TerminalType;\r
-  EFI_DEVICE_PATH_PROTOCOL  End;\r
-} PLATFORM_DUMMY_PCI_SERIAL_DEVICE_PATH;\r
-\r
-//\r
-// the short form device path for Usb keyboard\r
-//\r
-#define CLASS_HID           3\r
-#define SUBCLASS_BOOT       1\r
-#define PROTOCOL_KEYBOARD   1\r
-\r
-typedef struct {\r
-  USB_CLASS_DEVICE_PATH           UsbClass;\r
-  EFI_DEVICE_PATH_PROTOCOL        End;\r
-} USB_CLASS_FORMAT_DEVICE_PATH;\r
+#define CONSOLE_OUT BIT0\r
+#define CONSOLE_IN  BIT1\r
+#define STD_ERROR   BIT2\r
+extern PLATFORM_CONSOLE_CONNECT_ENTRY  gPlatformConsole[];\r
 \r
 //\r
 // Platform BDS Functions\r
 //\r
 \r
 VOID\r
-PlatformBdsGetDriverOption (\r
-  IN LIST_ENTRY               *BdsDriverLists\r
-  );\r
-\r
-EFI_STATUS\r
-BdsMemoryTest (\r
-  EXTENDMEM_COVERAGE_LEVEL Level\r
-  );\r
-\r
-EFI_STATUS\r
-PlatformBdsShowProgress (\r
-  EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleForeground,\r
-  EFI_GRAPHICS_OUTPUT_BLT_PIXEL TitleBackground,\r
-  CHAR16                        *Title,\r
-  EFI_GRAPHICS_OUTPUT_BLT_PIXEL ProgressColor,\r
-  UINTN                         Progress,\r
-  UINTN                         PreviousValue\r
-  );\r
-\r
-VOID\r
-PlatformBdsConnectSequence (\r
-  VOID\r
-  );\r
-\r
-EFI_STATUS\r
-ProcessCapsules (\r
-  EFI_BOOT_MODE BootMode\r
-  );\r
-\r
-EFI_STATUS\r
-PlatformBdsConnectConsole (\r
-  IN BDS_CONSOLE_CONNECT_ENTRY   *PlatformConsole\r
-  );\r
-\r
-EFI_STATUS\r
-PlatformBdsNoConsoleAction (\r
-  VOID\r
-  );\r
-\r
-EFI_STATUS\r
-ConvertMpsTable (\r
-  IN OUT  VOID     **Table\r
-  );\r
-\r
-EFI_STATUS\r
-ConvertSmbiosTable (\r
-  IN OUT VOID       **Table\r
-  );\r
-\r
-EFI_STATUS\r
-ConvertAcpiTable (\r
- IN      UINTN      TableLen,\r
- IN OUT  VOID       **Table\r
-  );\r
-\r
-EFI_STATUS\r
-ConvertSystemTable (\r
- IN     EFI_GUID   *TableGuid,\r
- IN OUT VOID       **Table\r
-  );\r
-\r
-VOID\r
-PlatformBdsEnterFrontPage (\r
-  IN UINT16                 TimeoutDefault,\r
-  IN BOOLEAN                ConnectAllHappened\r
+PlatformInitializeConsole (\r
+  IN PLATFORM_CONSOLE_CONNECT_ENTRY   *PlatformConsole\r
   );\r
 \r
 /**\r