From nobody Mon Feb 9 23:39:10 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+93543+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+93543+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1662685636; cv=none; d=zohomail.com; s=zohoarc; b=Hw9NRlzUo0fe03AWb/v7Ca6T6zVCgRkz3w+bpb0uUDl2/kQeuDTbKAZpiBm0aCN5O+80DNGucpiRSQjTO+uQgTSWeNMtKcIAHSeZ6gJUJHq3TLMtXMyrxA2cwk42TGVZo3RSjzEU7MOYLa3+YUfKCsMyTcIkk2GWb0GDqLyWld4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1662685636; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=p4gE1excb5tfH2o4oKtL0OnM7JRowx0tlztwKQ9nXJ8=; b=IChkrU5EaADbHi9GzWZZvZS6T195e/2FIrz981jxetBk7Gr3wcXtRPZnjUQhGmEiwPzBBVSrKdCIUiX0LBwCt+cGHKZIAvKPyMqG3eR21OsiFZkfrcdRNjioPog5mwXwc9dUaLiifW6nMrg931GPHA4Kx3FotCrC6kiiFo0myy4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+93543+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1662685636607273.8304219224415; Thu, 8 Sep 2022 18:07:16 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id GUg0YY1788612x0kaELeJaSo; Thu, 08 Sep 2022 18:07:16 -0700 X-Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web12.1316.1662685633362162071 for ; Thu, 08 Sep 2022 18:07:13 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10464"; a="323568634" X-IronPort-AV: E=Sophos;i="5.93,300,1654585200"; d="scan'208";a="323568634" X-Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Sep 2022 18:07:13 -0700 X-IronPort-AV: E=Sophos;i="5.93,300,1654585200"; d="scan'208";a="676950481" X-Received: from nldesimo-desk1.amr.corp.intel.com ([10.24.80.62]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Sep 2022 18:07:12 -0700 From: "Nate DeSimone" To: devel@edk2.groups.io Cc: Chasel Chiu , Sai Chaganty , Isaac Oram , Eric Dong , Liming Gao , Benjamin Doron , Michael Kubacki , Jeremy Soller Subject: [edk2-devel] [edk2-platforms] [PATCH V3 5/6] MinPlatformPkg: Add PcdDefaultTerminalType support to SerialPortTerminalLib Date: Thu, 8 Sep 2022 18:07:03 -0700 Message-Id: <20220909010704.7186-6-nathaniel.l.desimone@intel.com> In-Reply-To: <20220909010704.7186-1-nathaniel.l.desimone@intel.com> References: <20220909010704.7186-1-nathaniel.l.desimone@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,nathaniel.l.desimone@intel.com X-Gm-Message-State: OdEkWlA4Ah0LazMFWRDqjYcTx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1662685636; bh=4cBKWcmoWgf3marjVvP/4vz3xY269L/v41R6oNLs/zU=; h=Cc:Date:From:Reply-To:Subject:To; b=C5v6OG1ShOVnMsd2RZEqt5P5pjjXHVIgJQ7OF0LBxXi1QnSZwZkqqvmUd1RNrVs2/Xw 1sMWlhA/3/BLFPeFwLP6m+VXYf6rshA0YM99fEJbJGit7o2eqLcP0dSGbYkBXHRXZdiFm 44VNaQDXPOtCfdMO3koWDngY+urwpwgx6Mk= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1662685638368100025 Content-Type: text/plain; charset="utf-8" - Sets the terminal type GUID for ConIn, ConOut, and ConErr to the terminal type indicated by PcdDefaultTerminalType. - Some improvements to the comments in SerialPortTerminalLib Cc: Chasel Chiu Cc: Sai Chaganty Cc: Isaac Oram Cc: Eric Dong Cc: Liming Gao Cc: Benjamin Doron Cc: Michael Kubacki Cc: Jeremy Soller Signed-off-by: Nate DeSimone --- .../SerialPortTerminalLib.c | 66 ++++++++++++++----- .../SerialPortTerminalLib.h | 11 +++- .../SerialPortTerminalLib.inf | 17 ++++- 3 files changed, 71 insertions(+), 23 deletions(-) diff --git a/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/Se= rialPortTerminalLib.c b/Platform/Intel/MinPlatformPkg/Library/SerialPortTer= minalLib/SerialPortTerminalLib.c index 66e8ee018b..ca5e966cb5 100644 --- a/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.c +++ b/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.c @@ -1,13 +1,26 @@ /** @file - Main file for NULL named library for Serial Port Terminal Redirection li= brary. + Main file for NULL named library for the Serial Port Terminal Redirectio= n library. =20 - Copyright (c) 2020, Intel Corporation. All rights reserved.
+ This library adds a Terminal Device connected to SerialDxe to the UEFI C= onsole + Variables. This allows BIOS Setup, UEFI Shell, etc. to be used on a head= less + system via a null modem and terminal + emulator. + + Copyright (c) 2020 - 2022, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ =20 #include "SerialPortTerminalLib.h" =20 +GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID *mTerminalType[] =3D { + &gEfiPcAnsiGuid, + &gEfiVT100Guid, + &gEfiVT100PlusGuid, + &gEfiVTUTF8Guid, + &gEfiTtyTermGuid +}; + GLOBAL_REMOVE_IF_UNREFERENCED SERIAL_DEVICE_PATH mSerialDevicePath =3D { { { @@ -59,10 +72,36 @@ AddSerialTerminal ( VOID ) { - DEBUG ((DEBUG_INFO, "[AddSerialPortTerminal]\n")); + UINT8 DefaultTerminalType; + + // + // Update the Terminal Device Configuration Parameters + // + mSerialDevicePath.Uart.BaudRate =3D PcdGet64 (PcdUartDefaultBaudRate); + mSerialDevicePath.Uart.DataBits =3D PcdGet8 (PcdUartDefaultDataBits); + mSerialDevicePath.Uart.Parity =3D PcdGet8 (PcdUartDefaultParity); + mSerialDevicePath.Uart.StopBits =3D PcdGet8 (PcdUartDefaultStopBits); + DefaultTerminalType =3D PcdGet8 (PcdDefaultTerminalType); + DEBUG ((DEBUG_INFO, "[AddSerialPortTerminal] [%d, %d, %d, %d, %d]\n", + (int) mSerialDevicePath.Uart.BaudRate, + (int) mSerialDevicePath.Uart.DataBits, + (int) mSerialDevicePath.Uart.Parity, + (int) mSerialDevicePath.Uart.StopBits, + (int) DefaultTerminalType)); + + if (DefaultTerminalType >=3D 0 && + DefaultTerminalType < (sizeof (mTerminalType) / sizeof (mTerminalTyp= e[0]))) { + CopyMem ( + (VOID *) &(mSerialDevicePath.TerminalType.Guid), + (VOID *) mTerminalType[DefaultTerminalType], + sizeof (EFI_GUID) + ); + } else { + DEBUG ((DEBUG_WARN, "PcdDefaultTerminalType has invalid value: %d\n", = (int) DefaultTerminalType)); + } =20 // - // Append Serial Terminal into "ConIn" + // Append Serial Terminal into "ConIn", "ConOut", and "ErrOut" // EfiBootManagerUpdateConsoleVariable (ConOut, (EFI_DEVICE_PATH_PROTOCOL *= ) &mSerialDevicePath, NULL); EfiBootManagerUpdateConsoleVariable (ConIn, (EFI_DEVICE_PATH_PROTOCOL *)= &mSerialDevicePath, NULL); @@ -71,13 +110,12 @@ AddSerialTerminal ( =20 =20 /** - Constructor for the Serial Port Device controller library. + Constructor for the Serial Port Terminal Device library. =20 - @param ImageHandle the image handle of the process - @param SystemTable the EFI System Table pointer + @param ImageHandle The Image Handle of the process + @param SystemTable The EFI System Table pointer =20 - @retval EFI_SUCCESS the shell command handlers were installed suc= essfully - @retval EFI_UNSUPPORTED the shell level required was not found. + @retval EFI_SUCCESS The Serial Port Terminal Device was installed succ= essfully **/ EFI_STATUS EFIAPI @@ -86,15 +124,7 @@ SerialPortTerminalLibConstructor ( IN EFI_SYSTEM_TABLE *SystemTable ) { - mSerialDevicePath.Uart.BaudRate =3D PcdGet64(PcdUartDefaultBaudRate); - mSerialDevicePath.Uart.DataBits =3D PcdGet8(PcdUartDefaultDataBits); - mSerialDevicePath.Uart.Parity =3D PcdGet8(PcdUartDefaultParity); - mSerialDevicePath.Uart.StopBits =3D PcdGet8(PcdUartDefaultStopBits); - DEBUG ((DEBUG_INFO, "[SerialPortTerminalLibConstructor] [%d, %d, %d, %d]= \n", - mSerialDevicePath.Uart.BaudRate, - mSerialDevicePath.Uart.DataBits, - mSerialDevicePath.Uart.Parity, - mSerialDevicePath.Uart.StopBits)); + DEBUG ((DEBUG_INFO, "[SerialPortTerminalLibConstructor]\n")); =20 AddSerialTerminal(); =20 diff --git a/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/Se= rialPortTerminalLib.h b/Platform/Intel/MinPlatformPkg/Library/SerialPortTer= minalLib/SerialPortTerminalLib.h index bfa73cca7d..33415721cd 100644 --- a/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.h +++ b/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.h @@ -1,7 +1,12 @@ /** @file - Header file for NULL named library for for Serial Port Terminal Redirect= ion library. + Header file for NULL named library for the Serial Port Terminal Redirect= ion library. =20 - Copyright (c) 2020, Intel Corporation. All rights reserved.
+ This library adds a Terminal Device connected to SerialDxe to the UEFI C= onsole + Variables. This allows BIOS Setup, UEFI Shell, etc. to be used on a head= less + system via a null modem and terminal + emulator. + + Copyright (c) 2020 -2022, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -12,8 +17,10 @@ #include #include #include +#include #include #include +#include #include =20 // diff --git a/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/Se= rialPortTerminalLib.inf b/Platform/Intel/MinPlatformPkg/Library/SerialPortT= erminalLib/SerialPortTerminalLib.inf index dc5bb91a8e..ac1a06b2a5 100644 --- a/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.inf +++ b/Platform/Intel/MinPlatformPkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.inf @@ -1,5 +1,9 @@ ## @file -# Component information file for Serial Port Terminal Redirection Library +# Component information file for the Serial Port Terminal Redirection libr= ary. +# +# This library adds a Terminal Device connected to SerialDxe to the UEFI = Console +# Variables. This allows BIOS Setup, UEFI Shell, etc. to be used on a hea= dless +# system via a null modem and terminal # # Copyright (c) 2020, Intel Corporation. All rights reserved.
# @@ -18,22 +22,29 @@ [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec - BoardModulePkg/BoardModulePkg.dec - MinPlatformPkg/MinPlatformPkg.dec =20 [Sources] SerialPortTerminalLib.c SerialPortTerminalLib.h =20 [LibraryClasses] + BaseMemoryLib DevicePathLib DebugLib UefiDriverEntryPoint UefiBootManagerLib UefiLib =20 +[Guids] + gEfiPcAnsiGuid + gEfiVT100Guid + gEfiVT100PlusGuid + gEfiVTUTF8Guid + gEfiTtyTermGuid + [Pcd] gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits + gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType --=20 2.27.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#93543): https://edk2.groups.io/g/devel/message/93543 Mute This Topic: https://groups.io/mt/93563554/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-