]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h
d5ee730aad7207c03ba44c5af7199355044366e5
[mirror_edk2.git] / IntelFrameworkModulePkg / Include / Protocol / VgaMiniPort.h
1 /** @file
2 VGA Mini Port Protocol that is used to set the text display mode of a VGA controller.
3
4 Copyright (c) 2006 - 2009, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. 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