Home | History | Annotate | Download | only in Protocol
      1 /** @file
      2   The VGA Mini Port Protocol used to set the text display mode of a VGA controller.
      3 
      4 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
      5 This program and the accompanying materials are licensed and made available under
      6 the terms and conditions of the BSD License that accompanies this distribution.
      7 The full text of the license may be found at
      8 http://opensource.org/licenses/bsd-license.php.
      9 
     10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #ifndef __VGA_MINI_PORT_H_
     16 #define __VGA_MINI_PORT_H_
     17 
     18 ///
     19 /// Global ID for the EFI_VGA_MINI_PORT_PROTOCOL.
     20 ///
     21 #define EFI_VGA_MINI_PORT_PROTOCOL_GUID \
     22   { \
     23     0xc7735a2f, 0x88f5, 0x4882, {0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 } \
     24   }
     25 
     26 ///
     27 /// Forward declaration for the EFI_VGA_MINI_PORT_PROTOCOL.
     28 ///
     29 typedef struct _EFI_VGA_MINI_PORT_PROTOCOL  EFI_VGA_MINI_PORT_PROTOCOL;
     30 
     31 /**
     32   Sets the text display mode of a VGA controller.
     33 
     34   Sets the text display mode of the VGA controller to the mode specified by
     35   ModeNumber.  A ModeNumber of 0 is a request for an 80x25 text mode.  A
     36   ModeNumber of 1 is a request for an 80x50 text mode.  If ModeNumber is greater
     37   than MaxModeNumber, then EFI_UNSUPPORTED is returned.  If the VGA controller
     38   is not functioning properly, then EFI_DEVICE_ERROR is returned.  If the VGA
     39   controller is sucessfully set to the mode number specified by ModeNumber, then
     40   EFI_SUCCESS is returned.
     41 
     42   @param[in] This         A pointer to the EFI_VGA_MINI_PORT_PROTOCOL instance.
     43   @param[in] ModeNumber   The requested mode number.  0 for 80x25.  1 for 80x5.
     44 
     45   @retval EFI_SUCCESS        The mode number was set.
     46   @retval EFI_UNSUPPORTED    The mode number specified by ModeNumber is not supported.
     47   @retval EFI_DEVICE_ERROR   The device is not functioning properly.
     48 
     49 **/
     50 typedef
     51 EFI_STATUS
     52 (EFIAPI *EFI_VGA_MINI_PORT_SET_MODE)(
     53   IN EFI_VGA_MINI_PORT_PROTOCOL  *This,
     54   IN UINTN                        ModeNumber
     55   );
     56 
     57 struct _EFI_VGA_MINI_PORT_PROTOCOL {
     58   EFI_VGA_MINI_PORT_SET_MODE  SetMode;
     59   ///
     60   /// MMIO base address of the VGA text mode framebuffer.  Typically set to 0xB8000.
     61   ///
     62   UINT64                      VgaMemoryOffset;
     63   ///
     64   /// I/O Port address for the VGA CRTC address register. Typically set to 0x3D4.
     65   ///
     66   UINT64                      CrtcAddressRegisterOffset;
     67   ///
     68   /// I/O Port address for the VGA CRTC data register.  Typically set to 0x3D5.
     69   ///
     70   UINT64                      CrtcDataRegisterOffset;
     71   ///
     72   /// PCI Controller MMIO BAR index of the VGA text mode frame buffer.  Typically
     73   /// set to EFI_PCI_IO_PASS_THROUGH_BAR
     74   ///
     75   UINT8                       VgaMemoryBar;
     76   ///
     77   /// PCI Controller I/O BAR index of the VGA CRTC address register.  Typically
     78   /// set to EFI_PCI_IO_PASS_THROUGH_BAR
     79   ///
     80   UINT8                       CrtcAddressRegisterBar;
     81   ///
     82   /// PCI Controller I/O BAR index of the VGA CRTC data register.  Typically set
     83   /// to EFI_PCI_IO_PASS_THROUGH_BAR
     84   ///
     85   UINT8                       CrtcDataRegisterBar;
     86   ///
     87   /// The maximum number of text modes that this VGA controller supports.
     88   ///
     89   UINT8                       MaxMode;
     90 };
     91 
     92 extern EFI_GUID gEfiVgaMiniPortProtocolGuid;
     93 
     94 #endif
     95