From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.63]) by mx.groups.io with SMTP id smtpd.web10.6011.1684378212237644389 for ; Wed, 17 May 2023 19:50:12 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=NMnExjTg; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.94.63, mailfrom: nicklew@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qgpd5C0VlnKuvKlhpcW0m/NhwVLoGQNveFOxOMoPernE/t9TijMkcdbwOGQykFMmqRnu5M22qo8VfNLeveSH1Wr2FLrnCaklblzg4xlG4sClHj5NASTFdUmbKQEoWyUXipoNpBFh/bvo15+KXKtbwFS2O0tVTOKlU7plkL6BEOF8ZG8hsGF1GUr0WBJ1F1CHEnrcSAveFw5mKJCZoxyL9gSAzfCnqDgFY3o47G5Nl/K3TCXNy62p604Dz5ZiJQWQ4jZ1ueu6HYtMAGSijDhn9ItuW6pgJAwPleMLyvyJHezvmfboi3GJwFt/OQsq1kYZRq0Dg3GAbDOU6RCErSuKBg== 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=AcTQuDUrqmDqrYJuqKAvBUwimI8tg5VZJihuhiNQCLU=; b=btN2HHWC7DVsbpxzfkfy390Huv2tjom8/kRLrgjrk4/rgR+l8DNvC+wiyYiomW7+0HkhLy0GG8EblaByiyJ7Wf6J7gwGGUMvYtRsxjt1wNLJ96nJgBHoKvKx34S421lbXkyRXaKPIzyk3djPmITUQHGhKTuZUEIPYONFdP+jidd+AEJtCQYZoqIjoR8nezv3AIS4/UjIvULAnQfnK9pn+Ula4CQOe+5QiDChAQenvPy1kYRcJzuGCt75vZdvTIL0+rQDJNLQXcCccHC8Nbv05daqWOagxnZTc1sJ308Eve5t2/1jf/R8t8yqLDq3CvY8hiG5yMwve4jtHA1g5P5Ecg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AcTQuDUrqmDqrYJuqKAvBUwimI8tg5VZJihuhiNQCLU=; b=NMnExjTgldt+oobL3LPk42hnw8cQY+8FfHvaPUks60dzIMRq4IpRuq+ENdSs24/eVh1X6acL2K/d21mml227Z0OJw43l5RnBCSMd5SPHJIUHzbAntSRimB8iPHo67Rw1DoTucP4NOiYdoTbYCY2nAVxtwr1NY2PSBoYWdlOccvWNnP+UxYo0DJLBSER41SODERXBIO+yBwyW2VjXxm8vqMcVIwseTFwcbDG05UoJSbCQjkFE5xnJ6P/shFcIXqzgL26J0dXeiIsqNafGgFT4Umpfvxr9a0+VY7vkme81CjfnQ2VRtdQlrwxGopMa9e5rwQFD4H+66saqh1L3vw1ChA== Received: from BY5PR12MB4935.namprd12.prod.outlook.com (2603:10b6:a03:1d9::9) by SN7PR12MB7107.namprd12.prod.outlook.com (2603:10b6:806:2a2::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.27; Thu, 18 May 2023 02:50:10 +0000 Received: from MW4PR12MB7031.namprd12.prod.outlook.com (2603:10b6:303:1ef::6) by BY5PR12MB4935.namprd12.prod.outlook.com (2603:10b6:a03:1d9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.33; Thu, 18 May 2023 02:50:08 +0000 Received: from MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::d9df:b45b:2cc1:f017]) by MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::d9df:b45b:2cc1:f017%5]) with mapi id 15.20.6387.023; Thu, 18 May 2023 02:50:08 +0000 From: "Nickle Wang" To: "devel@edk2.groups.io" , "Chang, Abner" CC: Isaac Oram , "Attar, AbdulLateef (Abdul Lateef)" , Tinh Nguyen Subject: Re: [edk2-devel] [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiSolStatus: IPMI Serail over Lan Driver Thread-Topic: [edk2-devel] [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiSolStatus: IPMI Serail over Lan Driver Thread-Index: AQHZhKN9kMrnoVuYUUijOnWI79SwQK9fXZOg Date: Thu, 18 May 2023 02:50:07 +0000 Message-ID: References: <175E54CFD537B4AA.27409@groups.io> In-Reply-To: <175E54CFD537B4AA.27409@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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR12MB7031:EE_|BY5PR12MB4935:EE_|SN7PR12MB7107:EE_ x-ms-office365-filtering-correlation-id: 46aa5bed-79f4-43e2-2ad5-08db574a973f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Zv5iwNKEOB+bXNEmclkViSIX5f1Y3kVvPPfN0PsRRrDambjmWi3HAALwQ1Bxb+OA52ZBgVfA+745zUtRUkS4mfLTaMaAzravSqHTJqkOrQEc03Qqi7RIGZPgMgqFfEGxKRIBfruzLIeG3H/iHv8XosTy85Vy8GBVnpGd4YD6wCdGT10SkhH6p8NlOl57Fq4Od+mYzoD9jDmS/WOE8GfD0USNZoFuOuFj+fTnv2DshgcNClCD0mRzVJXmgawdP7eNn1H6x/TtvKbybQwyr09HeVCcocnq46vWROl0jXTgc9b0ivo7CJ1d5Dczzrq7FQFVoqlxoKVlfIzXSUku4afrYpkkMQKzOb3DA7BiCQ/9DC9oOL2lN2+JZo+kRb4xff7+wnDWQBqEOGH7IhlltH9ZleBpILeXFMH6qNjm6fyzlGcToPAefXc+ffdl9kQk6pIRzLsA1U8nI+59w3G9a57oKtTxcNCWiqc7U33cgGue3LHlE9aBLQPYalzufoo0DHdn0ijWdGNwL4v30UvKv9ZaXNhgjawF5E2SV523/vTIGgUv5pYRpDM8i3d3LG5o9VF6NsJdP5g+nYCP0VdGZxiW/+tuUbNOBeHqLuRC0A0eG8U= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4935.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(136003)(366004)(39860400002)(376002)(346002)(396003)(451199021)(186003)(2906002)(9686003)(6506007)(53546011)(38070700005)(122000001)(38100700002)(86362001)(33656002)(83380400001)(55016003)(8936002)(54906003)(8676002)(316002)(4326008)(41300700001)(7696005)(71200400001)(66556008)(64756008)(66446008)(966005)(76116006)(110136005)(66946007)(66476007)(19627235002)(66899021)(478600001)(52536014)(5660300002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?wCAI8M69c1xd1OOxEmgN0PalFqTkbhaqGuFGRtRyJn7Ise6rlP9YX8v73wL6?= =?us-ascii?Q?eCC7pQAE1st4jQDyn5AVMOsjcZKrx+LEYTGnSgKwmJKxMpU0BNpPxCPedfMR?= =?us-ascii?Q?MwhuCYStoXIMClx8UJ1aVtqtdWBRNeo429Ml5r92v/wopESjV1japP8vHeiR?= =?us-ascii?Q?+BvhSDa0bqttndVyhil+hwSBKWWi6h3N2PueOKQfXF5JOvPgkRTBh1rjV2Sb?= =?us-ascii?Q?c6JO7+SnKuegt/cAPNwweVwOD5m7Q/jlKWg8ciaCfAfJZSe8HuOS8aP8RyxD?= =?us-ascii?Q?nAcrPTPs7uuyKnBHbkHGAQ+jbhudmz3AvIK6N/3/xkTJTeMbwHFkRzyXcGal?= =?us-ascii?Q?oCCoNR/7FI2UxuFQbzuMoDdxNYsBVHA9DaiLzcTg3WdIVKRbsc0AwQNCEspY?= =?us-ascii?Q?ESwXT5dMbxYwmlhtBUBlDSLa7NNca5jbjAOck2KzWQDXuFpcyWho/1tupYph?= =?us-ascii?Q?10py6fZpxq3MXL01KI7h7TV3Tg9NCh30qzz4ZwhiqJVTu3U1P1Ujtd7n1/+Y?= =?us-ascii?Q?E5GINCwLxdDKHfITjLKKBaj9jSOJmqQmG52NlIYj0+o4VxxJXxzno70JuR3n?= =?us-ascii?Q?PX+o3TGR9WGVJW1E3fHIIfo0GwhHfPI4poEOxiuaJEnIyIGKpZ4iorTMcBYe?= =?us-ascii?Q?BDC2CvOHAGocn/dgIH3zAh9VprBTyoNOzqluYzkgF4Mkz6e77Jvl1ORyrjuU?= =?us-ascii?Q?oqlsQKU9eHIkftEMXOy3GnJwhfb57azCPivV8y+WLRImRsQtkhX4IPa3LiKB?= =?us-ascii?Q?Y0Wmm/VCu0ja8O7ZqX+M0NKsuiuYOa/tHTiz2SilhxdvVKcdLeuhzdK5Nr7D?= =?us-ascii?Q?wf5Q3VbjoRFycZKLF/TYMS26jakVIZgQEz+zhS6b188eO2J4t+vLFFbozDxh?= =?us-ascii?Q?FGQ+/0fTUIffgSmgpphs5q0Nm3WX0c5T3Z6jB4fTK/8wLFZPpoUZghWPC5PN?= =?us-ascii?Q?eci3X64xjT8XRtE4gAoILn0SXSCNlhUgd1POqRjisr7bGv9VM5wbwVKkrcbD?= =?us-ascii?Q?x/ERMSqdhseJEk7+ne6ulfQfTSsMa/Pkfr42dq4JALxnYm+H0F8jqpLb+IyO?= =?us-ascii?Q?7Vl9L3gKUQrJkECrozmX6uhlNYWazx4VixO5W4WVKqDAO0BAJc92jq7rdEms?= =?us-ascii?Q?pUUo0BUMbvBYBbE12zyHpEIlJiqIewBvOPMuV7tfRw3n5Vg8C2DWgiBEVh/1?= =?us-ascii?Q?tWcNkp+dOjNYOhkN/spi7PRcMV7T53qLBq+Fa8PDoKVOW8Rqaz+WXsAmy6q5?= =?us-ascii?Q?mD5kbCLw6KUzjR/V5IkRx83iJs752oC6y1vVx70oX6sEM19X0uqMzq7zrvR8?= =?us-ascii?Q?8uQ0Ft5Nk2c7RsE7PVPDYsW5SrQDLNF/ed8JqAXNlWCMRFPiVA44tl+AGoQU?= =?us-ascii?Q?yRD4YcdBB0plBw0eHBS+WCa1L+lDF7IWtS8YaknTSgO6R0yqjpRpY4xqRs0x?= =?us-ascii?Q?IjiK6eNfASViaHKroHXhtnpntbvbq4fkZq+X/8K0eWSq6CAiMZTHUGI0Y7mN?= =?us-ascii?Q?YPv+Ppk1n2UqZDV4jXpCv6ruw4lgSAVftIEGjg766r4aID1Ygq84KCRJG7Aj?= =?us-ascii?Q?9UDzXhA2PXRu0egoUiTU0glYQ3cG+4fYWT/2QoUwohijGOwP5pKFylgwW7g0?= =?us-ascii?Q?0KE7sWbOsHvRJR+MpUya1JmjalfekupmLBzLk76YLERE?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7031.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46aa5bed-79f4-43e2-2ad5-08db574a973f X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2023 02:50:07.9227 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0UoTrp/gn4GCWCkAzEeLZysHBtaJFDLVLeRgJYpWi6mq4uulYq/zWA3qHwS+l9CLkl+1tPJrftbEap2LnM/c/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7107 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Nickle Wang Regards, Nickle > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Chang, Abn= er > via groups.io > Sent: Friday, May 12, 2023 3:29 PM > To: devel@edk2.groups.io > Cc: Isaac Oram ; Attar, AbdulLateef (Abdul Lateef= ) > ; Nickle Wang ; Tinh > Nguyen > Subject: [edk2-devel] [edk2-platforms][PATCH 1/2] > ManageabilityPkg/IpmiSolStatus: IPMI Serail over Lan Driver >=20 > Caution: This message originated from an External Source. Use proper caut= ion > when opening attachments, clicking links, or responding. >=20 >=20 > From: Abner Chang >=20 > IpmiSolStatus is cloned from > edk2-platforms/Features/Intel/OutOfBandManagement/ > IpmiFeaturePkg/SolStatus in order to consolidate > edk2 system manageability support in one place. > Uncustify is applied to C files and no functionalities are changed in thi= s patch. >=20 > We will still keep the one under IpmiFeaturePkg/SolStatus until the refer= ence to > this instance are removed from platforms. >=20 > Signed-off-by: Abner Chang > Cc: Isaac Oram > Cc: Abdul Lateef Attar > Cc: Nickle Wang > Cc: Tinh Nguyen > --- > .../ManageabilityPkg/ManageabilityPkg.dec | 4 + > .../Universal/IpmiSolStatus/SolStatus.inf | 37 ++++ > .../Universal/IpmiSolStatus/SolStatus.c | 164 ++++++++++++++++++ > 3 files changed, 205 insertions(+) > create mode 100644 > Features/ManageabilityPkg/Universal/IpmiSolStatus/SolStatus.inf > create mode 100644 > Features/ManageabilityPkg/Universal/IpmiSolStatus/SolStatus.c >=20 > diff --git a/Features/ManageabilityPkg/ManageabilityPkg.dec > b/Features/ManageabilityPkg/ManageabilityPkg.dec > index 38813c5f48..c11bf5d0df 100644 > --- a/Features/ManageabilityPkg/ManageabilityPkg.dec > +++ b/Features/ManageabilityPkg/ManageabilityPkg.dec > @@ -72,6 +72,10 @@ > # @Prompt MCTP KCS (Memory mapped) I/O base address >=20 > gManageabilityPkgTokenSpaceGuid.PcdMctpKcsBaseAddress|0xca2|UINT32|0x0 > 0000004 >=20 > + ## This is the value of SOL channels supported on platform. > + # @Prompt SOL channel number > + > gManageabilityPkgTokenSpaceGuid.PcdMaxSolChannels|3|UINT8|0x00000100 > + > [PcdsFeatureFlag] >=20 > gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiEnable|FALSE|BOO > LEAN|0x10000001 >=20 > gManageabilityPkgTokenSpaceGuid.PcdManageabilitySmmIpmiEnable|FALSE|BO > OLEAN|0x10000002 > diff --git a/Features/ManageabilityPkg/Universal/IpmiSolStatus/SolStatus.= inf > b/Features/ManageabilityPkg/Universal/IpmiSolStatus/SolStatus.inf > new file mode 100644 > index 0000000000..1d7cbf1a08 > --- /dev/null > +++ b/Features/ManageabilityPkg/Universal/IpmiSolStatus/SolStatus.inf > @@ -0,0 +1,37 @@ > +### @file > +# Component description file for IPMI Serial Over LAN (SOL) driver. > +# > +# Copyright (c) 2018 - 2019, Intel Corporation. All rights > +reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # ### > + > +[Defines] > + INF_VERSION =3D 0x00010005 > + BASE_NAME =3D SolStatus > + FILE_GUID =3D 1AF7E6C4-7678-4A6D-9240-E8BA17C3B772 > + MODULE_TYPE =3D DXE_DRIVER > + PI_SPECIFICATION_VERSION =3D 0x0001000A > + VERSION_STRING =3D 1.0 > + ENTRY_POINT =3D SolStatusEntryPoint > + > +[Sources] > + SolStatus.c > + > +[Packages] > + ManageabilityPkg/ManageabilityPkg.dec > + MdePkg/MdePkg.dec > + > +[Pcd] > + gManageabilityPkgTokenSpaceGuid.PcdMaxSolChannels > + > +[LibraryClasses] > + DebugLib > + IpmiCommandLib > + PcdLib > + UefiBootServicesTableLib > + UefiDriverEntryPoint > + > +[Depex] > + TRUE > diff --git a/Features/ManageabilityPkg/Universal/IpmiSolStatus/SolStatus.= c > b/Features/ManageabilityPkg/Universal/IpmiSolStatus/SolStatus.c > new file mode 100644 > index 0000000000..996386372e > --- /dev/null > +++ b/Features/ManageabilityPkg/Universal/IpmiSolStatus/SolStatus.c > @@ -0,0 +1,164 @@ > +/** @file > + IPMI Serial Over Lan Driver. > + > +Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.
> +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include > +#include > +#include > +#include > +#include #include > + > +#include > +#include > +#include > + > +#define SOL_CMD_RETRY_COUNT 10 > + > +/*++ > + > +Routine Description: > + > + This routine gets the SOL payload status or settings for a specific = channel. > + > +Arguments: > + Channel - LAN channel naumber. > + ParamSel - Configuration parameter selection. > + Data - Information returned from BMC. > +Returns: > + EFI_SUCCESS - SOL configuration parameters are successfully read= from > BMC. > + Others - SOL configuration parameters could not be read fro= m BMC. > + > +--*/ > +EFI_STATUS > +GetSolStatus ( > + IN UINT8 Channel, > + IN UINT8 ParamSel, > + IN OUT UINT8 *Data > + ) > +{ > + EFI_STATUS Status =3D EFI_SUCCESS= ; > + IPMI_GET_SOL_CONFIGURATION_PARAMETERS_REQUEST > GetConfigurationParametersRequest; > + IPMI_GET_SOL_CONFIGURATION_PARAMETERS_RESPONSE > GetConfigurationParametersResponse; > + UINT32 DataSize; > + UINT8 RetryCount; > + > + for (RetryCount =3D 0; RetryCount < SOL_CMD_RETRY_COUNT; RetryCount++)= { > + ZeroMem (&GetConfigurationParametersRequest, sizeof > (GetConfigurationParametersRequest)); > + GetConfigurationParametersRequest.ChannelNumber.Bits.ChannelNumber = =3D > Channel; > + GetConfigurationParametersRequest.ParameterSelector = =3D ParamSel; > + > + ZeroMem (&GetConfigurationParametersResponse, sizeof > + (GetConfigurationParametersResponse)); > + > + DataSize =3D sizeof (GetConfigurationParametersResponse); > + Status =3D IpmiGetSolConfigurationParameters ( > + &GetConfigurationParametersRequest, > + &GetConfigurationParametersResponse, > + &DataSize > + ); > + > + if (Status =3D=3D EFI_SUCCESS) { > + break; > + } else { > + gBS->Stall (100000); > + } > + } > + > + if (Status =3D=3D EFI_SUCCESS) { > + *Data =3D GetConfigurationParametersResponse.ParameterData[0]; > + } > + > + return Status; > +} > + > +/*++ > + > +Routine Description: > + > + This routine sets the SOL payload configuration parameters for a spe= cific > channel. > + > +Arguments: > + Channel - LAN channel naumber. > + ParamSel - Configuration parameter selection. > + Data - Configuration parameter values. > +Returns: > + EFI_SUCCESS - SOL configuration parameters are sent to BMC. > + Others - SOL configuration parameters could not be sent to = BMC. > + > +--*/ > +EFI_STATUS > +SetSolParams ( > + IN UINT8 Channel, > + IN UINT8 ParamSel, > + IN UINT8 Data > + ) > +{ > + EFI_STATUS Status =3D EFI_SUCCESS; > + IPMI_SET_SOL_CONFIGURATION_PARAMETERS_REQUEST > SetConfigurationParametersRequest; > + UINT8 CompletionCode; > + UINT8 RetryCount; > + > + for (RetryCount =3D 0; RetryCount < SOL_CMD_RETRY_COUNT; RetryCount++)= { > + ZeroMem (&SetConfigurationParametersRequest, sizeof > (SetConfigurationParametersRequest)); > + SetConfigurationParametersRequest.ChannelNumber.Bits.ChannelNumber = =3D > Channel; > + SetConfigurationParametersRequest.ParameterSelector = =3D ParamSel; > + SetConfigurationParametersRequest.ParameterData[0] = =3D Data; > + > + CompletionCode =3D 0; > + > + Status =3D IpmiSetSolConfigurationParameters ( > + &SetConfigurationParametersRequest, > + sizeof (SetConfigurationParametersRequest), > + &CompletionCode > + ); > + > + if (Status =3D=3D EFI_SUCCESS) { > + break; > + } else { > + gBS->Stall (100000); > + } > + } > + > + return Status; > +} > + > +/*++ > + > + Routine Description: > + This is the standard EFI driver point. This function initializes > + the private data required for creating SOL Status Driver. > + > + Arguments: > + ImageHandle - Handle for the image of this driver > + SystemTable - Pointer to the EFI System Table > + > + Returns: > + EFI_SUCCESS - Protocol successfully installed > + EFI_UNSUPPORTED - Protocol can't be installed. > + > +--*/ > +EFI_STATUS > +EFIAPI > +SolStatusEntryPoint ( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ) > +{ > + EFI_STATUS Status =3D EFI_SUCCESS; > + UINT8 Channel; > + BOOLEAN SolEnabled =3D FALSE; > + > + for (Channel =3D 1; Channel <=3D PcdGet8 (PcdMaxSolChannels); Channel+= +) { > + Status =3D GetSolStatus (Channel, > IPMI_SOL_CONFIGURATION_PARAMETER_SOL_ENABLE, &SolEnabled); > + if (Status =3D=3D EFI_SUCCESS) { > + DEBUG ((DEBUG_ERROR, "SOL enabling status for channel %x is %x\n", > Channel, SolEnabled)); > + } else { > + DEBUG ((DEBUG_ERROR, "Failed to get channel %x SOL status from BMC= !, > status is %x\n", Channel, Status)); > + } > + } > + > + return Status; > +} > -- > 2.37.1.windows.1 >=20 >=20 >=20 >=20 >=20