public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Zhichao" <zhichao.gao@intel.com>
To: "Bi, Dandan" <dandan.bi@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Wang, Jian J" <jian.j.wang@intel.com>,
	"Wu, Hao A" <hao.a.wu@intel.com>, "Ni, Ray" <ray.ni@intel.com>,
	"Gao, Liming" <liming.gao@intel.com>
Subject: Re: [edk2-devel] [PATCH V3 3/3] MdeModulePkg/BM_UI: Add the new terminal types to related menu
Date: Fri, 20 Sep 2019 05:50:18 +0000	[thread overview]
Message-ID: <3CE959C139B4C44DBEA1810E3AA6F9000B83C658@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <3C0D5C461C9E904E8F62152F6274C0BB40C5DFFA@SHSMSX104.ccr.corp.intel.com>


> -----Original Message-----
> From: Bi, Dandan
> Sent: Friday, September 20, 2019 11:05 AM
> To: devel@edk2.groups.io; Gao, Zhichao <zhichao.gao@intel.com>
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>;
> Ni, Ray <ray.ni@intel.com>; Gao, Liming <liming.gao@intel.com>
> Subject: RE: [edk2-devel] [PATCH V3 3/3] MdeModulePkg/BM_UI: Add the
> new terminal types to related menu
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > Gao, Zhichao
> > Sent: Wednesday, September 18, 2019 1:34 PM
> > To: devel@edk2.groups.io
> > Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A
> > <hao.a.wu@intel.com>; Ni, Ray <ray.ni@intel.com>; Gao, Liming
> > <liming.gao@intel.com>
> > Subject: [edk2-devel] [PATCH V3 3/3] MdeModulePkg/BM_UI: Add the
> new
> > terminal types to related menu
> >
> > 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: Liming Gao <liming.gao@intel.com>
> > Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
> > ---
> >  .../BootMaintenanceManager.h                  | 12 ++++---
> >  .../BootMaintenanceManagerStrings.uni         | 10 +++++-
> >  .../ConsoleOption.c                           | 35 ++++++-------------
> >  .../BootMaintenanceManagerUiLib/Data.c        | 16 ++++++---
> >  4 files changed, 39 insertions(+), 34 deletions(-)
> >
> > diff --git
> >
> a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc
> > eManager.h
> >
> b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc
> > eManager.h
> > index ea3cdce794..67847d8bf3 100644
> > ---
> >
> a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc
> > eManager.h
> > +++
> >
> b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc
> > eMa
> > +++ nager.h
> > @@ -1,7 +1,7 @@
> >  /** @file
> >  Header file for boot maintenance module.
> >
> > -Copyright (c) 2004 - 2018, Intel Corporation. All rights
> > reserved.<BR>
> > +Copyright (c) 2004 - 2019, Intel Corporation. All rights
> > +reserved.<BR>
> >  SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> >  **/
> > @@ -92,7 +92,11 @@ typedef enum _TYPE_OF_TERMINAL {
> >    TerminalTypeVt100,
> >    TerminalTypeVt100Plus,
> >    TerminalTypeVtUtf8,
> > -  TerminalTypeTtyTerm
> > +  TerminalTypeTtyTerm,
> > +  TerminalTypeLinux,
> > +  TerminalTypeXtermR6,
> > +  TerminalTypeVt400,
> > +  TerminalTypeSCO
> >  } TYPE_OF_TERMINAL;
> >
> >  //
> > @@ -1301,12 +1305,12 @@ extern BM_MENU_OPTION ConsoleOutMenu;
> >  extern BM_MENU_OPTION             ConsoleErrMenu;
> >  extern BM_MENU_OPTION             DriverMenu;
> >  extern BM_MENU_OPTION             TerminalMenu;
> > -extern UINT16                     TerminalType[5];
> > +extern UINT16                     TerminalType[9];
> >  extern COM_ATTR                   BaudRateList[19];
> >  extern COM_ATTR                   DataBitsList[4];
> >  extern COM_ATTR                   ParityList[5];
> >  extern COM_ATTR                   StopBitsList[3];
> > -extern EFI_GUID                   TerminalTypeGuid[5];
> > +extern EFI_GUID                   TerminalTypeGuid[9];
> >  extern EFI_DEVICE_PATH_PROTOCOL   EndDevicePath[];
> >  extern UINT16                     mFlowControlType[2];
> >  extern UINT32                     mFlowControlValue[2];
> > diff --git
> >
> a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc
> > eManagerStrings.uni
> >
> b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc
> > eManagerStrings.uni
> > index 2e67d27bd0..3d47473e6c 100644
> > ---
> >
> a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc
> > eManagerStrings.uni
> > +++
> >
> b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanc
> > eMa
> > +++ nagerStrings.uni
> > @@ -1,7 +1,7 @@
> >  ///** @file
> >  //  String definitions for Boot Maintenance Utility.
> >  //
> > -//  Copyright (c) 2004 - 2018, Intel Corporation. All rights
> > reserved.<BR>
> > +//  Copyright (c) 2004 - 2019, Intel Corporation. All rights
> > +reserved.<BR>
> >  //  SPDX-License-Identifier: BSD-2-Clause-Patent  //  //**/ @@ -233,6
> > +233,14 @@
> >                                         #language fr-FR  "VT_UTF8"
> >  #string STR_COM_TYPE_4                 #language en-US  "TTY_TERM"
> >                                         #language fr-FR  "TTY_TERM"
> > +#string STR_COM_TYPE_5                 #language en-US  "LINUX"
> > +                                       #language fr-FR  "LINUX"
> > +#string STR_COM_TYPE_6                 #language en-US  "XTERM_R6"
> > +                                       #language fr-FR  "XTERM_R6"
> > +#string STR_COM_TYPE_7                 #language en-US  "VT_400"
> > +                                       #language fr-FR  "VT_400"
> > +#string STR_COM_TYPE_8                 #language en-US  "SCO"
> > +                                       #language fr-FR  "SCO"
> >  #string STR_RESET                      #language en-US  "Reset System"
> >                                         #language fr-FR  "Reset System"
> >  #string STR_FORM_GOTO_MAIN             #language en-US  "Go Back To
> Main
> > Page"
> > diff --git
> >
> a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
> >
> b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
> > index 7a53b58771..b0641c5ee9 100644
> > ---
> >
> a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
> > +++
> >
> b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/ConsoleOption.c
> > @@ -897,6 +897,7 @@ IsTerminalDevicePath (
> >    VENDOR_DEVICE_PATH        *Vendor;
> >    UART_DEVICE_PATH          *Uart;
> >    ACPI_HID_DEVICE_PATH      *Acpi;
> > +  UINTN                     Index;
> >
> >    IsTerminal = FALSE;
> >
> > @@ -929,37 +930,21 @@ IsTerminalDevicePath (
> >    }
> >
> >    //
> > -  // There are four kinds of Terminal types
> > +  // There are 9 kinds of Terminal types
> >    // check to see whether this devicepath
> >    // is one of that type
> >    //
> > -  if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[0])) {
> > -    *Termi      = TerminalTypePcAnsi;
> > -    IsTerminal  = TRUE;
> > -  } else {
> > -    if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[1])) {
> > -      *Termi      = TerminalTypeVt100;
> > -      IsTerminal  = TRUE;
> > -    } else {
> > -      if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[2])) {
> > -        *Termi      = TerminalTypeVt100Plus;
> > -        IsTerminal  = TRUE;
> > -      } else {
> > -        if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[3])) {
> > -          *Termi      = TerminalTypeVtUtf8;
> > -          IsTerminal  = TRUE;
> > -        } else {
> > -          if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[4])) {
> > -            *Termi      = TerminalTypeTtyTerm;
> > -            IsTerminal  = TRUE;
> > -          } else {
> > -            IsTerminal = FALSE;
> > -          }
> > -        }
> > -      }
> > +  for (Index = 0; Index < ARRAY_SIZE (TerminalTypeGuid); Index++) {
> > +    if (CompareGuid (&Vendor->Guid, &TerminalTypeGuid[Index])) {
> > +      *Termi = Index;
> > +      IsTerminal = TRUE;
> 
>  Hi Zhichao,
> 
> Thanks for simplifying this code logic.
> One comment here, I think you miss the "break" statement here, or the
> Index will increase to 9 and then "if (Index == ARRAY_SIZE
> (TerminalTypeGuid))" will be always true and "IsTerminal" variable is always
> FALSE, this is not the expected behavior. Please double check the code logic.

Exactly right, I missed the "break". This lib is just an example for the terminal driver. Most platforms would have its own one. There is no example of real open platform to use this library.

Thanks,
Zhichao

> 
> Thanks,
> Dandan
> 
> >      }
> >    }
> >
> > +  if (Index == ARRAY_SIZE (TerminalTypeGuid)) {
> > +    IsTerminal = FALSE;
> > +  }
> > +
> >    if (!IsTerminal) {
> >      return FALSE;
> >    }
> > diff --git a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/Data.c
> > b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/Data.c
> > index b9d86b09d8..21c4ef3d55 100644
> > --- a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/Data.c
> > +++ b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/Data.c
> > @@ -1,7 +1,7 @@
> >  /** @file
> >  Define some data used for Boot Maint
> >
> > -Copyright (c) 2004 - 2015, Intel Corporation. All rights
> > reserved.<BR>
> > +Copyright (c) 2004 - 2019, Intel Corporation. All rights
> > +reserved.<BR>
> >  SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> >  **/
> > @@ -16,12 +16,16 @@ EFI_IFR_GUID_LABEL  *mEndLabel = NULL;  ///  ///
> > Terminal type string token storage  ///
> > -UINT16              TerminalType[] = {
> > +UINT16              TerminalType[9] = {
> >    STRING_TOKEN(STR_COM_TYPE_0),
> >    STRING_TOKEN(STR_COM_TYPE_1),
> >    STRING_TOKEN(STR_COM_TYPE_2),
> >    STRING_TOKEN(STR_COM_TYPE_3),
> >    STRING_TOKEN(STR_COM_TYPE_4),
> > +  STRING_TOKEN(STR_COM_TYPE_5),
> > +  STRING_TOKEN(STR_COM_TYPE_6),
> > +  STRING_TOKEN(STR_COM_TYPE_7),
> > +  STRING_TOKEN(STR_COM_TYPE_8),
> >  };
> >
> >  ///
> > @@ -248,10 +252,14 @@ COM_ATTR            StopBitsList[3] = {
> >  ///
> >  /// Guid for messaging path, used in Serial port setting.
> >  ///
> > -EFI_GUID            TerminalTypeGuid[] = {
> > +EFI_GUID            TerminalTypeGuid[9] = {
> >    DEVICE_PATH_MESSAGING_PC_ANSI,
> >    DEVICE_PATH_MESSAGING_VT_100,
> >    DEVICE_PATH_MESSAGING_VT_100_PLUS,
> >    DEVICE_PATH_MESSAGING_VT_UTF8,
> > -  EFI_TTY_TERM_GUID
> > +  EFI_TTY_TERM_GUID,
> > +  EDKII_LINUX_TERM_GUID,
> > +  EDKII_XTERM_R6_GUID,
> > +  EDKII_VT400_GUID,
> > +  EDKII_SCO_TERM_GUID
> >  };
> > --
> > 2.21.0.windows.1
> >
> >
> > 


  reply	other threads:[~2019-09-20  5:50 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-18  5:33 [PATCH V3 0/3] MdeModulePkg/TerminalConsole: Extend the support terminal types Gao, Zhichao
2019-09-18  5:33 ` [PATCH V3 1/3] MdeModulePkg: Extend the support keyboard type of Terminal console Gao, Zhichao
2019-09-18  8:46   ` Laszlo Ersek
2019-09-19  1:54   ` [edk2-devel] " Wu, Hao A
2019-09-19  4:28     ` Gao, Zhichao
2019-09-19  5:11       ` Liming Gao
2019-09-18  5:33 ` [PATCH V3 2/3] MdeModulePkg/TerminalDxe: Extend the terminal console support types Gao, Zhichao
2019-09-23  2:36   ` Ni, Ray
2019-09-18  5:33 ` [PATCH V3 3/3] MdeModulePkg/BM_UI: Add the new terminal types to related menu Gao, Zhichao
2019-09-20  3:04   ` [edk2-devel] " Dandan Bi
2019-09-20  5:50     ` Gao, Zhichao [this message]
2019-09-19  1:57 ` [edk2-devel] [PATCH V3 0/3] MdeModulePkg/TerminalConsole: Extend the support terminal types Wu, Hao A

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3CE959C139B4C44DBEA1810E3AA6F9000B83C658@SHSMSX101.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox