From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com []) by mx.groups.io with SMTP id smtpd.web12.10887.1603160515520632101 for ; Mon, 19 Oct 2020 19:21:57 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: heng.luo@intel.com) IronPort-SDR: jkNgzhrDEPlSaSG0E2RoG5Cnb4x+mIHXpWF1vn7M8OmFw2/7vJrXNwoYXNovhampaUegTe8Ymw 34ZJ7uNC0J4A== X-IronPort-AV: E=McAfee;i="6000,8403,9779"; a="154082275" X-IronPort-AV: E=Sophos;i="5.77,395,1596524400"; d="scan'208";a="154082275" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Oct 2020 19:21:57 -0700 IronPort-SDR: ulxxNleX87ag7apUOl7rcEL4KgrVh4UMCSy06CH3oxcrJto5rB9RHNWeCAUibhLQ+6kyGuKija MhhbPV3TiS8g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,395,1596524400"; d="scan'208";a="523322873" Received: from hengluo-dev.ccr.corp.intel.com ([10.239.153.154]) by fmsmga005.fm.intel.com with ESMTP; 19 Oct 2020 19:21:55 -0700 From: "Heng Luo" To: devel@edk2.groups.io Cc: Eric Dong , Chasel Chiu , Nate DeSimone Subject: [PATCH 1/2] BoardModulePkg: Add SerialPortTerminalLib Date: Tue, 20 Oct 2020 10:21:43 +0800 Message-Id: <20201020022144.2261-2-heng.luo@intel.com> X-Mailer: git-send-email 2.24.0.windows.2 In-Reply-To: <20201020022144.2261-1-heng.luo@intel.com> References: <20201020022144.2261-1-heng.luo@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3014 Add the serial port terminal library to get console redirect after the shell is loaded. Cc: Eric Dong Cc: Chasel Chiu Cc: Nate DeSimone Signed-off-by: Heng Luo --- Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/SerialPortTerm= inalLib.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++= +++++++++++++++++++++++++++++++++++ Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/SerialPortTerm= inalLib.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/SerialPortTerm= inalLib.inf | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 177 insertions(+) diff --git a/Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/Se= rialPortTerminalLib.c b/Platform/Intel/BoardModulePkg/Library/SerialPortTer= minalLib/SerialPortTerminalLib.c new file mode 100644 index 0000000000..36c0e7110f --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.c @@ -0,0 +1,93 @@ +/** @file=0D + Main file for NULL named library for Serial Port Deviceboard controller = librarr.=0D +=0D + INTEL CONFIDENTIAL=0D + Copyright (c) 2020, Intel Corporation. All rights reserved.
=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D +**/=0D +=0D +#include "SerialPortTerminalLib.h"=0D +=0D +GLOBAL_REMOVE_IF_UNREFERENCED SERIAL_DEVICE_PATH mSerialDevicePath =3D {=0D + {=0D + {=0D + HARDWARE_DEVICE_PATH,=0D + HW_VENDOR_DP,=0D + {=0D + (UINT8) sizeof (VENDOR_DEVICE_PATH),=0D + (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)=0D + }=0D + },=0D + EDKII_SERIAL_PORT_LIB_VENDOR_GUID=0D + },=0D + {=0D + {=0D + MESSAGING_DEVICE_PATH,=0D + MSG_UART_DP,=0D + {=0D + (UINT8) sizeof (UART_DEVICE_PATH),=0D + (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8)=0D + }=0D + },=0D + 0, // Reserved=0D + 115200, // BaudRate=0D + 8, // DataBits=0D + 1, // Parity=0D + 1 // StopBits=0D + },=0D + {=0D + {=0D + MESSAGING_DEVICE_PATH,=0D + MSG_VENDOR_DP,=0D + {=0D + (UINT8) (sizeof (VENDOR_DEVICE_PATH)),=0D + (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),=0D + }=0D + },=0D + DEVICE_PATH_MESSAGING_PC_ANSI=0D + },=0D + gEndEntire=0D +};=0D +=0D +/**=0D + Updates the ConOut, ConIn, ErrOut variables with the serial terminal dev= ice path=0D + @param none=0D + @retval none=0D +**/=0D +VOID=0D +AddSerialTerminal (=0D + VOID=0D + )=0D +{=0D + DEBUG ((DEBUG_INFO, "[AddSerialPortTerminal]\n"));=0D +=0D + //=0D + // Append Serial Terminal into "ConIn"=0D + //=0D + EfiBootManagerUpdateConsoleVariable (ConOut, (EFI_DEVICE_PATH_PROTOCOL *= ) &mSerialDevicePath, NULL);=0D + EfiBootManagerUpdateConsoleVariable (ConIn, (EFI_DEVICE_PATH_PROTOCOL *)= &mSerialDevicePath, NULL);=0D + EfiBootManagerUpdateConsoleVariable (ErrOut, (EFI_DEVICE_PATH_PROTOCOL *= ) &mSerialDevicePath, NULL);=0D +}=0D +=0D +=0D +/**=0D + Constructor for the Serial Port Device controller library.=0D +=0D + @param ImageHandle the image handle of the process=0D + @param SystemTable the EFI System Table pointer=0D +=0D + @retval EFI_SUCCESS the shell command handlers were installed suc= essfully=0D + @retval EFI_UNSUPPORTED the shell level required was not found.=0D +**/=0D +EFI_STATUS=0D +EFIAPI=0D +SerialPortTerminalLibConstructor (=0D + IN EFI_HANDLE ImageHandle,=0D + IN EFI_SYSTEM_TABLE *SystemTable=0D + )=0D +{=0D + AddSerialTerminal();=0D +=0D + return EFI_SUCCESS;=0D +}=0D diff --git a/Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/Se= rialPortTerminalLib.h b/Platform/Intel/BoardModulePkg/Library/SerialPortTer= minalLib/SerialPortTerminalLib.h new file mode 100644 index 0000000000..afb3eb2cb3 --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.h @@ -0,0 +1,49 @@ +/** @file=0D + Header file for NULL named library for Ps2 keyboard controller library.= =0D +=0D + INTEL CONFIDENTIAL=0D + Copyright (c) 2020, Intel Corporation. All rights reserved.
=0D + SPDX-License-Identifier: BSD-2-Clause-Patent=0D +=0D +**/=0D +=0D +#ifndef _PS2_KBC_LIB_H=0D +#define _PS2_KBC_LIB_H=0D +=0D +#include =0D +#include =0D +#include =0D +#include =0D +#include =0D +#include =0D +=0D +//=0D +// Below is the platform console device path=0D +//=0D +typedef struct {=0D + VENDOR_DEVICE_PATH Guid;=0D + UART_DEVICE_PATH Uart;=0D + VENDOR_DEVICE_PATH TerminalType;=0D + EFI_DEVICE_PATH_PROTOCOL End;=0D +} SERIAL_DEVICE_PATH;=0D +=0D +#define gPciRootBridge \=0D + { \=0D + { \=0D + ACPI_DEVICE_PATH, \=0D + ACPI_DP, \=0D + { \=0D + (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), \=0D + (UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) \=0D + }, \=0D + }, \=0D + EISA_PNP_ID (0x0A03), \=0D + 0 \=0D + }=0D +=0D +#define gEndEntire \=0D + { \=0D + END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, { END_DEVICE_PAT= H_LENGTH, 0 } \=0D + }=0D +=0D +#endif=0D diff --git a/Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/Se= rialPortTerminalLib.inf b/Platform/Intel/BoardModulePkg/Library/SerialPortT= erminalLib/SerialPortTerminalLib.inf new file mode 100644 index 0000000000..4f63d1626f --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Library/SerialPortTerminalLib/SerialPor= tTerminalLib.inf @@ -0,0 +1,35 @@ +## @file=0D +# Component information file for Serial Port Terminal Redirection Library= =0D +#=0D +# INTEL CONFIDENTIAL=0D +# Copyright (c) 2020, Intel Corporation. All rights reserved.
=0D +#=0D +# SPDX-License-Identifier: BSD-2-Clause-Patent=0D +#=0D +##=0D +[Defines]=0D + INF_VERSION =3D 0x00010006=0D + BASE_NAME =3D SerialPortTerminalLib=0D + FILE_GUID =3D E12BFA46-95F2-4ADC-9774-7E38DE78741E= =0D + MODULE_TYPE =3D UEFI_DRIVER=0D + VERSION_STRING =3D 1.2=0D + LIBRARY_CLASS =3D NULL|UEFI_DRIVER=0D + CONSTRUCTOR =3D SerialPortTerminalLibConstructor=0D +=0D +[Packages]=0D + MdePkg/MdePkg.dec=0D + MdeModulePkg/MdeModulePkg.dec=0D + BoardModulePkg/BoardModulePkg.dec=0D +=0D +[Sources]=0D + SerialPortTerminalLib.c=0D + SerialPortTerminalLib.h=0D +=0D +[LibraryClasses]=0D + DevicePathLib=0D + DebugLib=0D + UefiDriverEntryPoint=0D + UefiBootManagerLib=0D + UefiLib=0D +=0D +[Pcd]=0D --=20 2.24.0.windows.2