]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Csm/Include/Protocol/VgaMiniPort.h
OvmfPkg: Copy the required CSM components from framework packages
[mirror_edk2.git] / OvmfPkg / Csm / Include / Protocol / VgaMiniPort.h
diff --git a/OvmfPkg/Csm/Include/Protocol/VgaMiniPort.h b/OvmfPkg/Csm/Include/Protocol/VgaMiniPort.h
new file mode 100644 (file)
index 0000000..41ff58e
--- /dev/null
@@ -0,0 +1,88 @@
+/** @file\r
+  The VGA Mini Port Protocol used to set the text display mode of a VGA controller.\r
+\r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef __VGA_MINI_PORT_H_\r
+#define __VGA_MINI_PORT_H_\r
+\r
+///\r
+/// Global ID for the EFI_VGA_MINI_PORT_PROTOCOL.\r
+///\r
+#define EFI_VGA_MINI_PORT_PROTOCOL_GUID \\r
+  { \\r
+    0xc7735a2f, 0x88f5, 0x4882, {0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 } \\r
+  }\r
+\r
+///\r
+/// Forward declaration for the EFI_VGA_MINI_PORT_PROTOCOL.\r
+///\r
+typedef struct _EFI_VGA_MINI_PORT_PROTOCOL  EFI_VGA_MINI_PORT_PROTOCOL;\r
+\r
+/**\r
+  Sets the text display mode of a VGA controller.\r
+\r
+  Sets the text display mode of the VGA controller to the mode specified by\r
+  ModeNumber.  A ModeNumber of 0 is a request for an 80x25 text mode.  A\r
+  ModeNumber of 1 is a request for an 80x50 text mode.  If ModeNumber is greater\r
+  than MaxModeNumber, then EFI_UNSUPPORTED is returned.  If the VGA controller\r
+  is not functioning properly, then EFI_DEVICE_ERROR is returned.  If the VGA\r
+  controller is sucessfully set to the mode number specified by ModeNumber, then\r
+  EFI_SUCCESS is returned.\r
+\r
+  @param[in] This         A pointer to the EFI_VGA_MINI_PORT_PROTOCOL instance.\r
+  @param[in] ModeNumber   The requested mode number.  0 for 80x25.  1 for 80x5.\r
+\r
+  @retval EFI_SUCCESS        The mode number was set.\r
+  @retval EFI_UNSUPPORTED    The mode number specified by ModeNumber is not supported.\r
+  @retval EFI_DEVICE_ERROR   The device is not functioning properly.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_VGA_MINI_PORT_SET_MODE)(\r
+  IN EFI_VGA_MINI_PORT_PROTOCOL  *This,\r
+  IN UINTN                        ModeNumber\r
+  );\r
+\r
+struct _EFI_VGA_MINI_PORT_PROTOCOL {\r
+  EFI_VGA_MINI_PORT_SET_MODE  SetMode;\r
+  ///\r
+  /// MMIO base address of the VGA text mode framebuffer.  Typically set to 0xB8000.\r
+  ///\r
+  UINT64                      VgaMemoryOffset;\r
+  ///\r
+  /// I/O Port address for the VGA CRTC address register. Typically set to 0x3D4.\r
+  ///\r
+  UINT64                      CrtcAddressRegisterOffset;\r
+  ///\r
+  /// I/O Port address for the VGA CRTC data register.  Typically set to 0x3D5.\r
+  ///\r
+  UINT64                      CrtcDataRegisterOffset;\r
+  ///\r
+  /// PCI Controller MMIO BAR index of the VGA text mode frame buffer.  Typically\r
+  /// set to EFI_PCI_IO_PASS_THROUGH_BAR\r
+  ///\r
+  UINT8                       VgaMemoryBar;\r
+  ///\r
+  /// PCI Controller I/O BAR index of the VGA CRTC address register.  Typically\r
+  /// set to EFI_PCI_IO_PASS_THROUGH_BAR\r
+  ///\r
+  UINT8                       CrtcAddressRegisterBar;\r
+  ///\r
+  /// PCI Controller I/O BAR index of the VGA CRTC data register.  Typically set\r
+  /// to EFI_PCI_IO_PASS_THROUGH_BAR\r
+  ///\r
+  UINT8                       CrtcDataRegisterBar;\r
+  ///\r
+  /// The maximum number of text modes that this VGA controller supports.\r
+  ///\r
+  UINT8                       MaxMode;\r
+};\r
+\r
+extern EFI_GUID gEfiVgaMiniPortProtocolGuid;\r
+\r
+#endif\r