/** @file\r
This is the main routine for initializing the Graphics Console support routines.\r
\r
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;\r
UINTN SizeOfInfo;\r
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;\r
+ INT32 PreferMode;\r
+ INT32 Index;\r
+ UINTN Column;\r
+ UINTN Row;\r
+ UINTN DefaultColumn;\r
+ UINTN DefaultRow;\r
\r
ModeNumber = 0;\r
\r
//\r
Private->SimpleTextOutputMode.MaxMode = (INT32) MaxMode;\r
\r
- DEBUG_CODE_BEGIN ();\r
- Status = GraphicsConsoleConOutSetMode (&Private->SimpleTextOutput, 0);\r
- if (EFI_ERROR (Status)) {\r
- goto Error;\r
- }\r
- Status = GraphicsConsoleConOutOutputString (&Private->SimpleTextOutput, (CHAR16 *)L"Graphics Console Started\n\r");\r
- if (EFI_ERROR (Status)) {\r
- goto Error;\r
+ //\r
+ // Initialize the Mode of graphics console devices\r
+ //\r
+ PreferMode = -1;\r
+ DefaultColumn = PcdGet32 (PcdConOutColumn);\r
+ DefaultRow = PcdGet32 (PcdConOutRow);\r
+ Column = 0;\r
+ Row = 0;\r
+ for (Index = 0; Index < (INT32)MaxMode; Index++) {\r
+ if (DefaultColumn != 0 && DefaultRow != 0) {\r
+ if ((Private->ModeData[Index].Columns == DefaultColumn) &&\r
+ (Private->ModeData[Index].Rows == DefaultRow)) {\r
+ PreferMode = Index;\r
+ break;\r
+ }\r
+ } else {\r
+ if ((Private->ModeData[Index].Columns > Column) &&\r
+ (Private->ModeData[Index].Rows > Row)) {\r
+ Column = Private->ModeData[Index].Columns;\r
+ Row = Private->ModeData[Index].Rows;\r
+ PreferMode = Index;\r
+ }\r
}\r
- DEBUG_CODE_END ();\r
+ }\r
+ Private->SimpleTextOutput.Mode->Mode = (INT32)PreferMode;\r
+ DEBUG ((DEBUG_INFO, "Graphics Console Started, Mode: %d\n", PreferMode));\r
\r
//\r
// Install protocol interfaces for the Graphics Console device.\r