From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.11594.1655924244666021972 for ; Wed, 22 Jun 2022 11:57:24 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=cjzC4Nz3; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: nathaniel.l.desimone@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1655924244; x=1687460244; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=2myfD3NYzqY9OpI7XSTjmt6mzkAd5XTC2HpMZSEMeZk=; b=cjzC4Nz3/4AHpEosW3kqUziY+o4HEKkbBVuownxc7NvSYQmQvbXqT40J RexhiWIbl/Wjm+kYMtH28ZxZqQZiO6+kq8jwfdNLHIt2CRQw+U8UPgmXS 5Rzr7ao8yfG9YY+o4bWZc9pRY/GtiQyjq/4sEd/0hHzJM8pvuneWkgEWU Z+JCdrXiay0M5P4YDCPvBcHnRKae0JDRLC2YPOUr77TSVVSz6aTNeMMYT 90+/TChq6O338Q82pGocjByHXfGQXEbY+pCUqjyl6y01m4SskccSu+c1U a9zUlYHzXxy9TAJmL/VYqMdzXoGz8ABE6wxrJv5CQDWVcK+Ehe2DsQMoW Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10386"; a="280563423" X-IronPort-AV: E=Sophos;i="5.92,212,1650956400"; d="scan'208";a="280563423" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jun 2022 11:57:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,212,1650956400"; d="scan'208";a="592333035" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga007.fm.intel.com with ESMTP; 22 Jun 2022 11:57:24 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 22 Jun 2022 11:57:22 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 22 Jun 2022 11:57:22 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 22 Jun 2022 11:57:22 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.103) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 22 Jun 2022 11:57:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F/dhHblTxmhSgqRVCrwBMDsEpzHBl/b+UlyCToMP12iiH6XjW5Opox42IQX5ye/N5DLusGrbIN2FHQqKbslKQUERALFIWJEzWyhiCsT25Ol1Kyz4sHFxn/MsV1RtnSBiwdqVwoaGsFjR4AJ0OSV0LRFEmlPwnExIsrG8Mzi2qjGvnB3+lOzsZlzrafzdZIfzyu3PdKmXW8U0JjCROQhmqz6W6Sk8iB21D02kVYsW6TL+go3XpVlT/rb7eML0Z4mAxgFyGw2y1gcaYOVy5eeIolSHRGDqyMXPMqiBT5FGjXjhPEn/4ySvbdiWTYV+vZZkacHhruUEuKhvTu6YXGCdfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qoL6eLSPZyUSXOsCF35olVt9pvsUk5t7MRSfDDyAysY=; b=NIY3p3pLDuNIZBOjKH1oO1iNcBfY2Sc4M9s74FHLqSK77JomhxaLdWbl1fjOPW3PkoPeYcGp/YmGUtSCja72ZEe7YzzZnpprQglDQwlPthZnvtYD3r82iM7QT1cet5nG/4FYygvoQ2Bkc7WNku+hKEgDFPBOec4uqjGOqBsnFWc/AwVY+WX7aaV3deEhErmpKUJtK4ieu+Z7JG9E/kXUyZaG1GyrDbJlxltTUUFBzWjiBoDkRXlRy/Ha+MFx/AerxArPRRl8voIBvuGnlxDHC+kJCEo/vYAx9vI30vyRB09JQ8LcIt/oEaSEAUyxscngdM/MQM5u1LVf/xm7TOriaw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW4PR11MB5821.namprd11.prod.outlook.com (2603:10b6:303:184::5) by BL0PR11MB3140.namprd11.prod.outlook.com (2603:10b6:208:77::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.15; Wed, 22 Jun 2022 18:57:18 +0000 Received: from MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::99d5:18e7:7ea9:c971]) by MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::99d5:18e7:7ea9:c971%2]) with mapi id 15.20.5353.015; Wed, 22 Jun 2022 18:57:18 +0000 From: "Nate DeSimone" To: "devel@edk2.groups.io" , "Desimone, Nathaniel L" CC: "Dong, Eric" , "Oram, Isaac W" , "Gao, Liming" , "Chaganty, Rangasai V" , Benjamin Doron , "Kubacki, Michael" , "Soller, Jeremy" Subject: Re: [edk2-devel] [edk2-platforms] [PATCH V1 4/5] BoardModulePkg: Add BdsSerialPortTerminalLib Thread-Topic: [edk2-devel] [edk2-platforms] [PATCH V1 4/5] BoardModulePkg: Add BdsSerialPortTerminalLib Thread-Index: AQHYgsjGtCM6bUSby0q2UdvR6JmpMK1bzZcA Date: Wed, 22 Jun 2022 18:57:18 +0000 Message-ID: References: <20220618040550.8467-1-nathaniel.l.desimone@intel.com> <16F99B5C34E031D3.5445@groups.io> In-Reply-To: <16F99B5C34E031D3.5445@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f8db7e63-94d1-42bd-3365-08da548107cf x-ms-traffictypediagnostic: BL0PR11MB3140:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ABeOj945cKanuRX6lkr5YVubK3sxjkZ9tOcWc6k3F5vvvWnDHtiCl3nObBj6bPFdOO/WmCOhlikZ9XfZcwLp/n9l/2aczxp3vC2TzL67zMO9vvRNeRtbH13cP2S9x/YtNY5h8TLk5XVzzokvRSpE4LQcZDffG+28IyvTBDVsTB0dMLJJTXJ2xr7LOIjb5GxwG2FMAvE9nErWx5kk0Z75PuFqgSomcCWUmpAL1bHJJjLBe8MmcTdZ/xgww5nckxlqbGe4jEu5pOVAWCEin8L0ZPkvNJ5UBjwxzIWk6c6vqJZsavuiIz+o1MWmRsKqKKDO1IEbMr8FhwgGTA532/D4RQ+Nwn3ALnHrk7CFa75nt7gl1uq3+fX4ybiUUW6rEPmos+YaPHN4RHPYtPYmwyXsArhH29RKFLQVHby0r+862AtC9fXnLNaZXeSUlbiq3ish/PK1WReQBUARcKRe1gtXimaZ8cYR51xZtXZWvLqnzuJKHUfacX23TIywq9GC7sixk33IP1ZsfotkNvO5s5OAlQnFutD1oCs48lIAL8Pp3rUHdlX4XmHrmepq5ZAbfrHvDMUkI+JwVfhLByHQNKKlDMqLZEz7dQCult9shvdotlcJMpie3bBnZ/45dbsDVCwbTH6S0jZ6nqraOti/t/k0KmaoR+yswd0qlkcIlBWJFvlg7gfwWdSEZFBbi5hALzc6GbPwzuVT8x8KoSEIo2fPTTrZG/+l/FEI/EAyuD/XeklfFxssrdgOW07ruPemhek5s3Z8LitW6bF3s0ElVaUVT78OAddSbG7hle3aHyZEBuDBYAP5MGqyM6s8iHwN8MWNg8uYaM355DojEKPcPLgW4l1MuD7ZHAwfjW9864h3iX8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5821.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(39860400002)(376002)(366004)(136003)(346002)(41300700001)(86362001)(38100700002)(6506007)(9686003)(7696005)(53546011)(26005)(316002)(5660300002)(55016003)(52536014)(33656002)(8936002)(2906002)(186003)(8676002)(110136005)(66476007)(478600001)(54906003)(122000001)(64756008)(4326008)(966005)(76116006)(66946007)(66556008)(38070700005)(82960400001)(83380400001)(66446008)(71200400001)(213903007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?kxARD3MEB1A1a7lW4R8aAbhaBeywOemjMPb/k+uqWdcBzgDHgL/1K1JSCpC1?= =?us-ascii?Q?ryVTqL5YYX32czA6djVbip861y+7KlFLPq37E+D5b+MZPMim7hQdX1Y3PVF3?= =?us-ascii?Q?u+fzIgYdrO1NZ3BM+QOSP3U9lADkalXw9+8rkSQxCKqazp9iDzmkQ63ZiCqK?= =?us-ascii?Q?61ByMQovzcPYQXlz2Pw5QV9n4SiFB5cl7/M8I1JUhW5/AbCzPNEGjx3oeLIV?= =?us-ascii?Q?IR3B5a+fMP+xLlKpVt9xIgYNh/J46/Wb4h7E6StQ81cPofiHwkhLa4YTMmqi?= =?us-ascii?Q?ieTmzyrJfoX8EpuhzUnlREeIRx6n9Xeb2omUq5jK9bWTG1sEEBAArx2St/kW?= =?us-ascii?Q?Q46UYRROeyTGJRClp8QSERmau6N6kA6Ri/mTGkIOSMxCVQE4hTaZJzEZntNU?= =?us-ascii?Q?fFGupZwL5kRq/prkSPg8jtyZiQUil2g4C5OCRdVQt2mppdSMUzsfXYRIkdXW?= =?us-ascii?Q?hySriBazdywnjQ9CsxzD65aSs15zC7k/l311D7neFCvDpV/oKkYa3A3jZAGs?= =?us-ascii?Q?4SYlxXBaZSTXhvuimJo5xKq3Ib1HypnL0HQeZCHVPx5otP5yjUzVbIZRnhmd?= =?us-ascii?Q?dAR/wDf/63wT/kWcf/OHpbCjK0LpcIbIbmUYTkfD0h7Dm+UptSMu+44DhtyO?= =?us-ascii?Q?uA2CWAoWFLz4vh8ilIJLp3+NFmSBNx7qU7bwdR+rmFbHegavftd8jkTy8FEU?= =?us-ascii?Q?B7qO5tK/KLt+2OCpHa3dA1e8SjL+dy0SsD58hYdpuWAvv0aqmqXTS6oMxA1j?= =?us-ascii?Q?jxQZN8Rh0YogwI+MrbtAsEevLTHUqqTdn+WfuvUMcaddCWgRtUs5Nxc3mBO2?= =?us-ascii?Q?2QJnws/ZLROJmoBItnANVF26EfhYf4rymYI5FEqCzygsLfHVf+z7/LyodpSI?= =?us-ascii?Q?/NFXeU0CqgnEkVfURpDyXOL0puJRyQbMSc5R7h+NUOgBuYJM/NmLEdE9SVOQ?= =?us-ascii?Q?i4NorwU2wpr0knHQV61NVlzm6AbKsyNKhqZdV07LWAQBylX+bUtH2BZlJ6RF?= =?us-ascii?Q?pMT0tFxxrnZeuVSTxuI0Dri72IEiNVITeKz1V5pqF8j9LVfFKNJugWM/+UWC?= =?us-ascii?Q?n2zWaUrrrIruFDhnDG2+dnrz4mZ9ZQAD/N9S713BDOc7rtvDFsHiXqrJj++N?= =?us-ascii?Q?U7v6mBqynFyixtF5ftQ8BlcKeIlekHiadrGBX8+8MuyXi414dWKHLTK5IETf?= =?us-ascii?Q?+TPZVQ4ClnagS0v7ryfjwLjPK6BzseQMSyh9RQY4+iCrQ9MA+ZE+u85jCh41?= =?us-ascii?Q?HJjCzc7/JLj85bDHf9b3Vx2QkFc/JgLDHqP5hkOZXRLudgsVFzFDgepP7H5d?= =?us-ascii?Q?ecbGfoZVN0O6yV8InsjCSbC9DZ4USKNTonIZXDP6lz1tmZIBsEho1PgIErCN?= =?us-ascii?Q?7kL5In+Xy0NiMODBA2XiItNXFSC9V8vfHhSIqmv3x557K0EeMP/pvkd+ubWb?= =?us-ascii?Q?/HV2NBKHKmPUFkgXVY5V4D8/QjEUCBWpRLIbUWT2F8Wg5tcetY41nRrgvwyS?= =?us-ascii?Q?41+aAWLRtWZVazTHvjswpT3S9x7A53zXABM/LgUBl4k06+LHc3O0mvtaGag7?= =?us-ascii?Q?vVtTL7hG4heoi6HdhpW2pfiWG6kM11+cnb+cxRaqcbTXy6I6GQW/v91r3rzC?= =?us-ascii?Q?3w=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5821.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8db7e63-94d1-42bd-3365-08da548107cf X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2022 18:57:18.4724 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: qAAMk9biTcTdRNOnQtgPBuRw5g3RdxCmCVPMRUSc4BNRl/99YxmDxW/+cjL+G7V6b9w6ZVUjdu9SoP5ZxneVFP/qc2AXZX40ZskJexHVRvE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3140 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable This appears to be mostly redundant with MinPlatformPkg\Library\SerialPortT= erminalLib. The only feature my implementation has the current one does not is the abil= ity to change the terminal type. I'll add that feature to the existing libr= ary and remove this patch from the series. Thanks, Nate -----Original Message----- From: devel@edk2.groups.io On Behalf Of Nate DeSimon= e Sent: Friday, June 17, 2022 9:06 PM To: devel@edk2.groups.io Cc: Dong, Eric ; Oram, Isaac W ; Gao, Liming ; Chaganty, Rangasai V ; Benjamin Doron ; Kubacki,= Michael ; Soller, Jeremy Subject: [edk2-devel] [edk2-platforms] [PATCH V1 4/5] BoardModulePkg: Add B= dsSerialPortTerminalLib BdsSerialPortTerminalLib add a terminal device to the Serial UART device cr= eated by MdeModulePkg/Universal/SerialDxe to the UEFI Console Variables (Co= nIn, ConOut, ErrOut). This allows BIOS Setup, UEFI Shell, etc. to be used o= n a headless system via a null modem and terminal emulation software. Cc: Eric Dong Cc: Isaac Oram Cc: Liming Gao Cc: Sai Chaganty Cc: Benjamin Doron Cc: Michael Kubacki Cc: Jeremy Soller Signed-off-by: Nate DeSimone --- .../Intel/BoardModulePkg/BoardModulePkg.dsc | 3 +- .../BdsSerialPortTerminalLib.c | 114 ++++++++++++++++++ .../BdsSerialPortTerminalLib.h | 53 ++++++++ .../BdsSerialPortTerminalLib.inf | 49 ++++++++ 4 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 Plat= form/Intel/BoardModulePkg/Library/BdsSerialPortTerminalLib/BdsSerialPortTer= minalLib.c create mode 100644 Platform/Intel/BoardModulePkg/Library/BdsSerialPortTerm= inalLib/BdsSerialPortTerminalLib.h create mode 100644 Platform/Intel/BoardModulePkg/Library/BdsSerialPortTerm= inalLib/BdsSerialPortTerminalLib.inf diff --git a/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc b/Platform/In= tel/BoardModulePkg/BoardModulePkg.dsc index 9f00592a19..c93b536f0d 100644 --- a/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc +++ b/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc @@ -6,7 +6,7 @@ # INF files to generate AutoGen.c and AutoGen.h files # for the build inf= rastructure. # -# Copyright (c) 2019 - 2021, Intel Corporation. All rights reserved.
+# Copyright (c) 2019 - 2022, Intel Corporation. All rights=20 +reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -91,3 +91,4 @@ =20 BoardModulePkg/Library/PeiFirmwareBootMediaInfoLib/PeiFirmwareBootMediaI= nfoLib.inf BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.inf + =20 + BoardModulePkg/Library/BdsSerialPortTerminalLib/BdsSerialPortTerminalL + ib.inf diff --git a/Platform/Intel/BoardModulePkg/Library/BdsSerialPortTerminalLib= /BdsSerialPortTerminalLib.c b/Platform/Intel/BoardModulePkg/Library/BdsSeri= alPortTerminalLib/BdsSerialPortTerminalLib.c new file mode 100644 index 0000000000..178ca2b3ac --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Library/BdsSerialPortTerminalLib/Bds +++ SerialPortTerminalLib.c @@ -0,0 +1,114 @@ +/** @file + Main file for NULL named library that adds a Terminal Device=20 +connected + to SerialDxe to the UEFI Console Variables. This allows BIOS Setup,=20 +UEFI + Shell, etc. to be used on a headless system via a null modem and=20 +terminal + emulator. + + Copyright (c) 2022, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "BdsSerialPortTerminalLib.h" + +GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID *mTerminalType[] =3D { + &gEfiPcAnsiGuid, + &gEfiVT100Guid, + &gEfiVT100PlusGuid, + &gEfiVTUTF8Guid, + &gEfiTtyTermGuid +}; + +GLOBAL_REMOVE_IF_UNREFERENCED SERIAL_DEVICE_PATH mSerialDevicePath =3D { + { + { + HARDWARE_DEVICE_PATH, + HW_VENDOR_DP, + { + (UINT8) sizeof (VENDOR_DEVICE_PATH), + (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8) + } + }, + EDKII_SERIAL_PORT_LIB_VENDOR_GUID + }, + { + { + MESSAGING_DEVICE_PATH, + MSG_UART_DP, + { + (UINT8) sizeof (UART_DEVICE_PATH), + (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8) + } + }, + 0, // Reserved + 115200, // BaudRate + 8, // DataBits + 1, // Parity + 1 // StopBits + }, + { + { + MESSAGING_DEVICE_PATH, + MSG_VENDOR_DP, + { + (UINT8) (sizeof (VENDOR_DEVICE_PATH)), + (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8), + } + }, + DEVICE_PATH_MESSAGING_PC_ANSI + }, + gEndEntire +}; + +/** + Updates the ConOut, ConIn, ErrOut variables with the serial terminal dev= ice path + @param none + @retval none +**/ +VOID +AddSerialTerminal ( + VOID + ) +{ + DEBUG ((DEBUG_INFO, "[AddSerialPortTerminal]\n")); + + // + // Update the Terminal Device Configuration Parameters // =20 + mSerialDevicePath.Uart.BaudRate =3D PcdGet64 (PcdUartDefaultBaudRate); = =20 + mSerialDevicePath.Uart.DataBits =3D PcdGet8 (PcdUartDefaultDataBits); + mSerialDevicePath.Uart.Parity =3D PcdGet8 (PcdUartDefaultParity); + mSerialDevicePath.Uart.StopBits =3D PcdGet8 (PcdUartDefaultStopBits); = =20 + CopyMem ( + (VOID *) &(mSerialDevicePath.TerminalType.Guid), + (VOID *) mTerminalType[PcdGet8 (PcdDefaultTerminalType)], + sizeof (EFI_GUID) + ); + + // + // Append Serial Terminal into "ConIn", "ConOut", and "ErrOut" + // + EfiBootManagerUpdateConsoleVariable (ConOut,=20 +(EFI_DEVICE_PATH_PROTOCOL *) &mSerialDevicePath, NULL); + EfiBootManagerUpdateConsoleVariable (ConIn, (EFI_DEVICE_PATH_PROTOCOL=20 +*) &mSerialDevicePath, NULL); + EfiBootManagerUpdateConsoleVariable (ErrOut,=20 +(EFI_DEVICE_PATH_PROTOCOL *) &mSerialDevicePath, NULL); } + +/** + Constructor for the Serial Port Terminal Device library. + + @param ImageHandle The Image Handle of the process + @param SystemTable The EFI System Table pointer + + @retval EFI_SUCCESS The Serial Port Terminal Device was installed succ= essfully +**/ +EFI_STATUS +EFIAPI +SerialPortTerminalLibConstructor ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + AddSerialTerminal (); + + return EFI_SUCCESS; +} diff --git a/Platform/Intel/BoardModulePkg/Library/BdsSerialPortTerminalLib= /BdsSerialPortTerminalLib.h b/Platform/Intel/BoardModulePkg/Library/BdsSeri= alPortTerminalLib/BdsSerialPortTerminalLib.h new file mode 100644 index 0000000000..39d6486712 --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Library/BdsSerialPortTerminalLib/Bds +++ SerialPortTerminalLib.h @@ -0,0 +1,53 @@ +/** @file + Header file for NULL named library that adds a Terminal Device + connected to SerialDxe to the UEFI Console Variables. This allows=20 +BIOS Setup, + UEFI Shell, etc. to be used on a headless system via a null modem and=20 +terminal + emulator. + + Copyright (c) 2022, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef BDS_SERIAL_PORT_TERMINAL_LIB_H_ #define=20 +BDS_SERIAL_PORT_TERMINAL_LIB_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +// +// Below is the platform console device path // typedef struct { + VENDOR_DEVICE_PATH Guid; + UART_DEVICE_PATH Uart; + VENDOR_DEVICE_PATH TerminalType; + EFI_DEVICE_PATH_PROTOCOL End; +} SERIAL_DEVICE_PATH; + +#define gPciRootBridge \ + { \ + { \ + ACPI_DEVICE_PATH, \ + ACPI_DP, \ + { \ + (UINT8) (sizeof (ACPI_HID_DEVICE_PATH)), \ + (UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8) \ + }, \ + }, \ + EISA_PNP_ID (0x0A03), \ + 0 \ + } + +#define gEndEntire \ + { \ + END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE, {=20 +END_DEVICE_PATH_LENGTH, 0 } \ + } + +#endif diff --git a/Platform/Intel/BoardModulePkg/Library/BdsSerialPortTerminalLib= /BdsSerialPortTerminalLib.inf b/Platform/Intel/BoardModulePkg/Library/BdsSe= rialPortTerminalLib/BdsSerialPortTerminalLib.inf new file mode 100644 index 0000000000..befaeee3e5 --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Library/BdsSerialPortTerminalLib/Bds +++ SerialPortTerminalLib.inf @@ -0,0 +1,49 @@ +## @file +# Component information file for NULL named library that adds a=20 +Terminal Device # connected to SerialDxe to the UEFI Console Variables.=20 +This allows BIOS # Setup, UEFI Shell, etc. to be used on a headless=20 +system via a null modem and # terminal emulator. +# +# Copyright (c) 2022, Intel Corporation. All rights reserved.
# #=20 +SPDX-License-Identifier: BSD-2-Clause-Patent # ## [Defines] + INF_VERSION =3D 0x00010006 + BASE_NAME =3D SerialPortTerminalLib + FILE_GUID =3D E12BFA46-95F2-4ADC-9774-7E38DE78741E + MODULE_TYPE =3D UEFI_DRIVER + VERSION_STRING =3D 1.2 + LIBRARY_CLASS =3D NULL|UEFI_DRIVER + CONSTRUCTOR =3D SerialPortTerminalLibConstructor + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[Sources] + BdsSerialPortTerminalLib.c + BdsSerialPortTerminalLib.h + +[LibraryClasses] + BaseMemoryLib + DevicePathLib + DebugLib + UefiDriverEntryPoint + UefiBootManagerLib + UefiLib + +[Guids] + gEfiPcAnsiGuid + gEfiVT100Guid + gEfiVT100PlusGuid + gEfiVTUTF8Guid + gEfiTtyTermGuid + +[Pcd] + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits + gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType -- 2.27.0.windows.1