]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/BM_UI: Add the new terminal types to related menu
authorZhichao Gao <zhichao.gao@intel.com>
Fri, 6 Sep 2019 08:44:40 +0000 (16:44 +0800)
committerLiming Gao <liming.gao@intel.com>
Tue, 24 Sep 2019 13:56:46 +0000 (21:56 +0800)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2186

Add the new introduced terminal types to related setup menu to change
the terminal type from setup. Most platforms would have its own
configure setup menu and they need to change it to support these.
The new introduced terminal types are Linux, XtermR6, VT400 and SCO.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManager.h
MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerStrings.uni
MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
MdeModulePkg/Library/BootMaintenanceManagerUiLib/Data.c

index ea3cdce794cee1dca5f083af23a86091c2651630..67847d8bf3c0997fe8f5e0d1836255b9aa3f997e 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 Header file for boot maintenance module.\r
 \r
-Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>\r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
@@ -92,7 +92,11 @@ typedef enum _TYPE_OF_TERMINAL {
   TerminalTypeVt100,\r
   TerminalTypeVt100Plus,\r
   TerminalTypeVtUtf8,\r
-  TerminalTypeTtyTerm\r
+  TerminalTypeTtyTerm,\r
+  TerminalTypeLinux,\r
+  TerminalTypeXtermR6,\r
+  TerminalTypeVt400,\r
+  TerminalTypeSCO\r
 } TYPE_OF_TERMINAL;\r
 \r
 //\r
@@ -1301,12 +1305,12 @@ extern BM_MENU_OPTION             ConsoleOutMenu;
 extern BM_MENU_OPTION             ConsoleErrMenu;\r
 extern BM_MENU_OPTION             DriverMenu;\r
 extern BM_MENU_OPTION             TerminalMenu;\r
-extern UINT16                     TerminalType[5];\r
+extern UINT16                     TerminalType[9];\r
 extern COM_ATTR                   BaudRateList[19];\r
 extern COM_ATTR                   DataBitsList[4];\r
 extern COM_ATTR                   ParityList[5];\r
 extern COM_ATTR                   StopBitsList[3];\r
-extern EFI_GUID                   TerminalTypeGuid[5];\r
+extern EFI_GUID                   TerminalTypeGuid[9];\r
 extern EFI_DEVICE_PATH_PROTOCOL   EndDevicePath[];\r
 extern UINT16                     mFlowControlType[2];\r
 extern UINT32                     mFlowControlValue[2];\r
index 2e67d27bd0dcdf86e606e888c6f5e49037ef31ec..3d47473e6c1b76800ed95ec6cc1551247447a7f7 100644 (file)
@@ -1,7 +1,7 @@
 ///** @file\r
 //  String definitions for Boot Maintenance Utility.\r
 //\r
-//  Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
+//  Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>\r
 //  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 //\r
 //**/\r
                                        #language fr-FR  "VT_UTF8"\r
 #string STR_COM_TYPE_4                 #language en-US  "TTY_TERM"\r
                                        #language fr-FR  "TTY_TERM"\r
+#string STR_COM_TYPE_5                 #language en-US  "LINUX"\r
+                                       #language fr-FR  "LINUX"\r
+#string STR_COM_TYPE_6                 #language en-US  "XTERM_R6"\r
+                                       #language fr-FR  "XTERM_R6"\r
+#string STR_COM_TYPE_7                 #language en-US  "VT_400"\r
+                                       #language fr-FR  "VT_400"\r
+#string STR_COM_TYPE_8                 #language en-US  "SCO"\r
+                                       #language fr-FR  "SCO"\r
 #string STR_RESET                      #language en-US  "Reset System"\r
                                        #language fr-FR  "Reset System"\r
 #string STR_FORM_GOTO_MAIN             #language en-US  "Go Back To Main Page"\r
index 7a53b5877192a20e7246a68c89b443dac9506923..5d1c6d34e671942028104204e0a00c014a4131a3 100644 (file)
@@ -897,6 +897,7 @@ IsTerminalDevicePath (
   VENDOR_DEVICE_PATH        *Vendor;\r
   UART_DEVICE_PATH          *Uart;\r
   ACPI_HID_DEVICE_PATH      *Acpi;\r
+  UINTN                     Index;\r
 \r
   IsTerminal = FALSE;\r
 \r
@@ -929,37 +930,22 @@ IsTerminalDevicePath (
   }\r
 \r
   //\r
-  // There are four kinds of Terminal types\r
+  // There are 9 kinds of Terminal types\r
   // check to see whether this devicepath\r
   // is one of that type\r
   //\r
-  if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[0])) {\r
-    *Termi      = TerminalTypePcAnsi;\r
-    IsTerminal  = TRUE;\r
-  } else {\r
-    if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[1])) {\r
-      *Termi      = TerminalTypeVt100;\r
-      IsTerminal  = TRUE;\r
-    } else {\r
-      if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[2])) {\r
-        *Termi      = TerminalTypeVt100Plus;\r
-        IsTerminal  = TRUE;\r
-      } else {\r
-        if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[3])) {\r
-          *Termi      = TerminalTypeVtUtf8;\r
-          IsTerminal  = TRUE;\r
-        } else {\r
-          if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[4])) {\r
-            *Termi      = TerminalTypeTtyTerm;\r
-            IsTerminal  = TRUE;\r
-          } else {\r
-            IsTerminal = FALSE;\r
-          }\r
-        }\r
-      }\r
+  for (Index = 0; Index < ARRAY_SIZE (TerminalTypeGuid); Index++) {\r
+    if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[Index])) {\r
+      *Termi = Index;\r
+      IsTerminal = TRUE;\r
+      break;\r
     }\r
   }\r
 \r
+  if (Index == ARRAY_SIZE (TerminalTypeGuid)) {\r
+    IsTerminal = FALSE;\r
+  }\r
+\r
   if (!IsTerminal) {\r
     return FALSE;\r
   }\r
index b9d86b09d8db42bb8ed5edb5e0d313b58de31600..21c4ef3d55633704dfdb381e409591c1fcbb98af 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 Define some data used for Boot Maint\r
 \r
-Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2019, Intel Corporation. All rights reserved.<BR>\r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
@@ -16,12 +16,16 @@ EFI_IFR_GUID_LABEL  *mEndLabel = NULL;
 ///\r
 /// Terminal type string token storage\r
 ///\r
-UINT16              TerminalType[] = {\r
+UINT16              TerminalType[9] = {\r
   STRING_TOKEN(STR_COM_TYPE_0),\r
   STRING_TOKEN(STR_COM_TYPE_1),\r
   STRING_TOKEN(STR_COM_TYPE_2),\r
   STRING_TOKEN(STR_COM_TYPE_3),\r
   STRING_TOKEN(STR_COM_TYPE_4),\r
+  STRING_TOKEN(STR_COM_TYPE_5),\r
+  STRING_TOKEN(STR_COM_TYPE_6),\r
+  STRING_TOKEN(STR_COM_TYPE_7),\r
+  STRING_TOKEN(STR_COM_TYPE_8),\r
 };\r
 \r
 ///\r
@@ -248,10 +252,14 @@ COM_ATTR            StopBitsList[3] = {
 ///\r
 /// Guid for messaging path, used in Serial port setting.\r
 ///\r
-EFI_GUID            TerminalTypeGuid[] = {\r
+EFI_GUID            TerminalTypeGuid[9] = {\r
   DEVICE_PATH_MESSAGING_PC_ANSI,\r
   DEVICE_PATH_MESSAGING_VT_100,\r
   DEVICE_PATH_MESSAGING_VT_100_PLUS,\r
   DEVICE_PATH_MESSAGING_VT_UTF8,\r
-  EFI_TTY_TERM_GUID\r
+  EFI_TTY_TERM_GUID,\r
+  EDKII_LINUX_TERM_GUID,\r
+  EDKII_XTERM_R6_GUID,\r
+  EDKII_VT400_GUID,\r
+  EDKII_SCO_TERM_GUID\r
 };\r