From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.60]) by mx.groups.io with SMTP id smtpd.web11.2251.1681973624111453479 for ; Wed, 19 Apr 2023 23:53:44 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=leF6+bHA; 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.243.60, mailfrom: nicklew@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nz4BUWwKKp8iJ7fzPojIhbyIGrqOhtoSpZjXuYy02diRMneONntFVA4a8uyh+Wtr46bUp2J4uNJV8TmlmkQKI4e2kTCoATQ24ksknwNFsbzavUzrr72M18qOSd41maS5GUt36qJmma4D3BXpD9rspzsJDn1M6LUBvt0KrfUaeDONdnDCUpcZOz07psiLn986c0GJEP/WSFQ3lTUPRotUZWUArK6NbdP5q/mjSsp+/0eMELR0Ab/iuOxihx02IOzwech5/EK7IIJOmnzLY2V0NFD70xPBTK9R5ouv4bhcO5DWU9vtmiKDMRgV26EW6oWx4aRa2doOOIl7aU5pGGeQwg== 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=NoY8JLxHoy4M+G517cIibzN+CwnNE41MTc0OKETI7kI=; b=bB3vCJqPXEUvWJyn0k6/Kq4FmH1t+JeKfLtL/37kDjCM135biBBOmBjYd7vwL/7/Jon8XTU0mp9HusUCDHF8vjtN3xz1wK8tVGHLaG5ZGHQG+K3/ODgxP2qC7iiQjnTdF3iie1In4HkhjiH0IGRqs4OiwGjrz/uot43YU9xF9qmiP/p3sG+1ANnj/k3vIOq5KTMBMVAZRs0iK9enrTAf+XipjsBli8oSwc4xgBZovlH+3esSLC+7DJuc1B9hEvXIZwwSwQM4ff3g4K/h21n+nYezL8iuYUCQ1kCBQXHcqIGqqqVzIZhe+pZnJI65e7APnqXCnanlHhsaI8+ZK6F8kw== 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=NoY8JLxHoy4M+G517cIibzN+CwnNE41MTc0OKETI7kI=; b=leF6+bHA5svXGC06kOSToOOZypmhG+UxLn6H92TANIQMdBExPQWQt3YwJI/BY5Qfr8P7jhtgBVocxfc5rp+JN26wbHJL0cLeba9NfYj1XRWi3sP+e3tIu7qgImkC2HZxDk/3Wc/k+Wp33JUxVRpm2xDU/cGkmGZu1nhgxUq9Cf2RVFrzcAc998USR+obW7IXMPbBddkAX4vmnxo68KLbD7csXuhpncKOtSru7aM4t9oqT07EpG7wlTD2p8hbPzwbpVEytVan/1a9o0MPiJ5qZqdjUY0z9DYM3WgZq4YgTn97KFlUTvqRZvIXrYu1GCnOO+7JEA0MIhEvb8WDKfoznA== Received: from MW4PR12MB7031.namprd12.prod.outlook.com (2603:10b6:303:1ef::6) by PH7PR12MB7819.namprd12.prod.outlook.com (2603:10b6:510:27f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.22; Thu, 20 Apr 2023 06:53:41 +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.6319.022; Thu, 20 Apr 2023 06:53:41 +0000 From: "Nickle Wang" To: "abner.chang@amd.com" , "devel@edk2.groups.io" CC: Isaac Oram , Abdul Lateef Attar , Igor Kulchytskyy Subject: Re: [edk2-platforms][PATCH V2 06/14] ManageabilityPkg/KCS: KCS transport interface Thread-Topic: [edk2-platforms][PATCH V2 06/14] ManageabilityPkg/KCS: KCS transport interface Thread-Index: AQHZccWugP3zdCfnyEyuiR3fDsHvzq8zxhRg Date: Thu, 20 Apr 2023 06:53:41 +0000 Message-ID: References: <20230418071543.1951-1-abner.chang@amd.com> <20230418071543.1951-7-abner.chang@amd.com> In-Reply-To: <20230418071543.1951-7-abner.chang@amd.com> 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_|PH7PR12MB7819:EE_ x-ms-office365-filtering-correlation-id: b3c66998-a4a9-49e9-c610-08db416bf9e0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zsV+4pR+gYM+vxe8lbY9iZPJvObQUudxIJGd4I4EyNMCozVvS6CwTBsrayKnpcSQPSwenIrSxzovhfRQ9olWqZyJ/bxjvK9dSAApVPkbxeLmGKPLxREltyLfvdx+8lHjL1EHmD4FNBaB/qbL1vOkSWC+sVbIZo09E9rLeD8y1dsZlaFIaLTx+TOtqccQkmD2F75kseoUQtmJ0uBQsPyqckuxBPl36l8CGRMOqqflYYe2e+VHYW2tSquzaZWdUSXnM7DhKCIk6/VbYRDpsZhCOyRdx22XcjEBP4MWZNUZYpXcxwHSd7yY6Bn1VurmFNJFQkhdjL5EBb4J0CznNdwOjBGE2omBZqfEqOoSd1zMhw9uk37C2YehR9ZeDO2E34R+N/WAlFz4iggNCUfKr1NOYMzfo9Lljm1hLnVO7bDXqivNmM/NzBKBaUrXC3tKnuhUwiBPt1ZEGdXLSXNalcj67oGNRXqFlxrKippfXtLGkANS09WgbqZOC03VMdrxAFDEf9Fw8uLen8xS8Pg7vlQynv1o3CcRmaQFJ6mLPiOTa69jKUEYY+ToLvkse7Us+gq7zv+AW4ICReTXObMdfTCtnCde5PdYGtPUcdC7J1z5O5/hh9jdSqzN0f8sNxgXVwjEh3Ojn5zzLU8Dp+AbQQHIaw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR12MB7031.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(346002)(376002)(396003)(136003)(366004)(39860400002)(451199021)(54906003)(110136005)(4326008)(316002)(64756008)(66476007)(76116006)(66946007)(66556008)(66446008)(478600001)(7696005)(71200400001)(55016003)(8936002)(5660300002)(41300700001)(8676002)(52536014)(122000001)(2906002)(86362001)(38070700005)(33656002)(38100700002)(9686003)(6506007)(26005)(53546011)(186003)(83380400001)(44824005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?El1B+nz0OTz2hVctB61jFbEb4kQlsR8roN2eJxocnkKjFnfk8LJzd3befNv6?= =?us-ascii?Q?RNzyyu2luPmLQGqrcVczNI6R8+NuawkNaE5w81ZQVXdn6kh0uS55up0BJNIa?= =?us-ascii?Q?Z8WfubbudIsyc+8YSeO/RfYnRuAPNb6o8FI9QiCc81hsJWL9MAU8HIZN3Cfp?= =?us-ascii?Q?xUEOOuj9U7o3VD/uwkwfpIJ8GRzKptdc9sZOiauhAUnIoPPtgYnBloY5mieG?= =?us-ascii?Q?TytLhQW6ccyyHI/LyI7EzJPS5rsh3u0xWsAAMqFWi9b3DJtLupnJ+6yYmgp7?= =?us-ascii?Q?fT4hO4RRzU97CF4Ao5O2ia743AlNpUhhRztXcndhTKl81gJpxSQafP/2huK5?= =?us-ascii?Q?udQXBJ5AoTJ5azTHaiqk9PowlyAaRal4HlHqTqBSaB8usQTYlt+xhd3K0a2z?= =?us-ascii?Q?8DRC465OeTN6DSM0Ghh/EufMfW3qAVyYKcrfYP41e1ROTwavCoNE+Ku7P8Fq?= =?us-ascii?Q?OsjKsLTr0j26l7V0qsBTDmlIWDQxzycHEF3ZXhsENSDXwpZ+Gylnv7i7ls4d?= =?us-ascii?Q?pfH2FpnJZvkOOPZun1o4+2vAnA+klBsjsbKP0yRB0xqyfGThROUq3wT2HyoH?= =?us-ascii?Q?50FZLnbCldeGSgI1Yr4FX6/fQCw/2L3nr8SSWZ02CbUnynH85rHejOMOkchP?= =?us-ascii?Q?ZVReMpbJk24yQ7lemmv5+WKtz+POZIVZT0hzY52Bmy2ejQbW2myZKDJY6U9Q?= =?us-ascii?Q?eArxqzyZObPaD07vkwC0oGjjq4IE8uZkOTozfbu1pQZuWdo4+gaz4iMHOpRK?= =?us-ascii?Q?zoCSPbHo2/kpshj/SaiSl51SBsKTkoodxqw3DLxXrzq9OrXoQgi+tQjV3sC/?= =?us-ascii?Q?RDZL+YWvSjUbKPh3JkNNZvni4k0rtbnl3A/+rmJnHKZobBM4y15Lrv+/NKCy?= =?us-ascii?Q?hzK/Okbieo/3k6e2A34DptJzhO/HNpFAcjZTx3U1wxlw8NOR8od/TV8rdjnA?= =?us-ascii?Q?Xo3/37m9YE6XY7Q095NM5EGpT3Z1+RY4t9Jknf4jI7jMEM7TMOZrdUuqkNo9?= =?us-ascii?Q?2KZI+Jnto+Q23y/iVwcIeGzphwr+XFeLgA5aRuB/GHDeLwYzMcwa3u7kXFOo?= =?us-ascii?Q?Klg8YbchxFHO9qQg1nSQeiVrluU28xhu+jJuSvK8QaZjr6V5DYGOYTtF2Vfr?= =?us-ascii?Q?bmNcPWtAbPm1HaQjuPzTsN/ny0QTUQmmH6ZE5ZSVCQJ2HN8nh7RVRvhl3eRo?= =?us-ascii?Q?aibfC5rY2RO5fRjdizKcn82/DyMp6AP2XQbvdMIQQktjckwiBDXFxZ03/nXo?= =?us-ascii?Q?atgiuY+aYqrrw+1ca3fnVp0w5RNbX9rmcCnYYLErxWHBM/XFg+W1c8Bm381V?= =?us-ascii?Q?wygC90SdnFoN7VOnGNLkkz1QHqQR3PgzbuCJKVQO5Qfr1+wHqifZne8Qe3dp?= =?us-ascii?Q?L+bC9yS0hbV8apCxC8aBYh844NJrNoV6KslZLa9BvfL3OVtZYnsqAyZLDD5+?= =?us-ascii?Q?4ELcB9Zfb5Uq75RmKqHDnS7pV/JiObmRZMH4vpwDVLWCUauPzJo/mFBZK4VZ?= =?us-ascii?Q?6FMaN/dlrET2Mj8TQhgidzxSsIL6ndL7Wjl1+ycFZsykf4vIOHzpvbSkOVn6?= =?us-ascii?Q?7lUaLbCFrGh1eZkOpdE=3D?= 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: b3c66998-a4a9-49e9-c610-08db416bf9e0 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2023 06:53:41.2169 (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: uaUYC/7E9huXbQmW9pdFfjjDqP9Nj4O6+rc3UO1luxyPkNVArkVfwOAFYwNNpjMwy8B9s7D94k0HUl1E55Q50A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7819 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: abner.chang@amd.com > Sent: Tuesday, April 18, 2023 3:16 PM > To: devel@edk2.groups.io > Cc: Isaac Oram ; Abdul Lateef Attar > ; Nickle Wang ; Igor Kulchytskyy > > Subject: [edk2-platforms][PATCH V2 06/14] ManageabilityPkg/KCS: KCS > transport interface >=20 > External email: Use caution opening links or attachments >=20 >=20 > From: Abner Chang >=20 > - Return Maximum Transfer Unit for MCTP over KCS > - Check the parameters >=20 > Signed-off-by: Abner Chang > Cc: Isaac Oram > Cc: Abdul Lateef Attar > Cc: Nickle Wang > Cc: Igor Kulchytskyy > --- > .../Common/ManageabilityTransportKcs.h | 2 +- > .../Common/KcsCommon.c | 112 ++++++++++-------- > .../Dxe/ManageabilityTransportKcs.c | 24 ++-- > 3 files changed, 78 insertions(+), 60 deletions(-) >=20 > diff --git > a/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Common/ > ManageabilityTransportKcs.h > b/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Common/ > ManageabilityTransportKcs.h > index d6685c165e..8c6a64416a 100644 > --- > a/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Common/ > ManageabilityTransportKcs.h > +++ b/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Com > +++ mon/ManageabilityTransportKcs.h > @@ -71,7 +71,7 @@ typedef struct { > EFI_STATUS > EFIAPI > KcsTransportSendCommand ( > - IN MANAGEABILITY_TRANSPORT_HEADER TransmitHeader, > + IN MANAGEABILITY_TRANSPORT_HEADER TransmitHeader OPTIONAL, > IN UINT16 TransmitHeaderSize, > IN MANAGEABILITY_TRANSPORT_TRAILER TransmitTrailer OPTIONAL, > IN UINT16 TransmitTrailerSize, > diff --git > a/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Common/ > KcsCommon.c > b/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Common/ > KcsCommon.c > index 14a7047447..a8c6a674c9 100644 > --- > a/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Common/ > KcsCommon.c > +++ b/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Com > +++ mon/KcsCommon.c > @@ -99,14 +99,14 @@ ClearOBF ( > Algorithm is based on flow chart provided in IPMI spec 2.0 > Figure 9-6, KCS Interface BMC to SMS Write Transfer Flow Chart >=20 > - @param[in] TransmitHeader KCS packet header. > - @param[in] TransmitHeaderSize KCS packet header size in byte. > - @param[in] TransmitTrailer KCS packet trailer. > - @param[in] TransmitTrailerSize KCS packet trailer size in byte. > - @param[in] RequestData Command Request Data, could be NULL. > - RequestDataSize must be zero, if Req= uestData > - is NULL. > - @param[in] RequestDataSize Size of Command Request Data. > + @param[in] TransmitHeader KCS packet header. > + @param[in] TransmitHeaderSize KCS packet header size in byte. > + @param[in] TransmitTrailer KCS packet trailer. > + @param[in] TransmitTrailerSize KCS packet trailer size in byte. > + @param[in] RequestData Command Request Data, could be N= ULL. > + RequestDataSize must be zero, if= RequestData > + is NULL. > + @param[in] RequestDataSize Size of Command Request Data. >=20 > @retval EFI_SUCCESS The command byte stream was successf= ully > submit to the device and a response = was @@ -414,7 +414,7 > @@ KcsTransportRead ( EFI_STATUS EFIAPI KcsTransportSendCommand ( > - IN MANAGEABILITY_TRANSPORT_HEADER TransmitHeader, > + IN MANAGEABILITY_TRANSPORT_HEADER TransmitHeader OPTIONAL, > IN UINT16 TransmitHeaderSize, > IN MANAGEABILITY_TRANSPORT_TRAILER TransmitTrailer OPTIONAL, > IN UINT16 TransmitTrailerSize, > @@ -427,6 +427,7 @@ KcsTransportSendCommand ( > EFI_STATUS Status; > UINT32 RspHeaderSize; > IPMI_KCS_RESPONSE_HEADER RspHeader; > + UINT32 ExpectedResponseDataSize; >=20 > if ((RequestData !=3D NULL) && (RequestDataSize =3D=3D 0)) { > DEBUG ((DEBUG_ERROR, "%a: Mismatched values of RequestData and > RequestDataSize\n", __FUNCTION__)); @@ -438,65 +439,72 @@ > KcsTransportSendCommand ( > return EFI_INVALID_PARAMETER; > } >=20 > - if (TransmitHeader =3D=3D NULL) { > - DEBUG ((DEBUG_ERROR, "%a: TransmitHeader is NULL\n", __FUNCTION__)); > - return EFI_INVALID_PARAMETER; > + // Print out the request payloads. > + if ((TransmitHeader !=3D NULL) && (TransmitHeaderSize !=3D 0)) { > + HelperManageabilityDebugPrint ((VOID *)TransmitHeader, > + (UINT32)TransmitHeaderSize, "KCS Transmit Header:\n"); > } >=20 > - // > - // Print out the request payloads. > - HelperManageabilityDebugPrint ((VOID *)TransmitHeader, TransmitHeaderS= ize, > "KCS Transmit Header:\n"); > if (RequestData !=3D NULL) { > HelperManageabilityDebugPrint ((VOID *)RequestData, RequestDataSize, > "KCS Request Data:\n"); > } >=20 > - if (TransmitTrailer !=3D NULL) { > - HelperManageabilityDebugPrint ((VOID *)TransmitTrailer, TransmitTrai= lerSize, > "KCS Transmit Trailer:\n"); > - } > + if ((TransmitTrailer !=3D NULL) && (TransmitTrailerSize !=3D 0)) { > + HelperManageabilityDebugPrint ((VOID *)TransmitTrailer, > + (UINT32)TransmitTrailerSize, "KCS Transmit Trailer:\n"); } > + > + if ((TransmitHeader !=3D NULL) || (RequestData !=3D NULL)) { > + Status =3D KcsTransportWrite ( > + TransmitHeader, > + TransmitHeaderSize, > + TransmitTrailer, > + TransmitTrailerSize, > + RequestData, > + RequestDataSize > + ); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "KCS Write Failed with Status(%r)", Status)); > + return Status; > + } >=20 > - Status =3D KcsTransportWrite ( > - TransmitHeader, > - TransmitHeaderSize, > - TransmitTrailer, > - TransmitTrailerSize, > - RequestData, > - RequestDataSize > - ); > - if (EFI_ERROR (Status)) { > - DEBUG ((DEBUG_ERROR, "IPMI KCS Write Failed with Status(%r)", Status= )); > - return Status; > - } > + // > + // Read the response header > + RspHeaderSize =3D sizeof (IPMI_KCS_RESPONSE_HEADER); > + Status =3D KcsTransportRead ((UINT8 *)&RspHeader, &RspHeaderS= ize); > + if (EFI_ERROR (Status)) { > + DEBUG (( > + DEBUG_ERROR, > + "KCS read response header failed Status(%r), " \ > + "RspNetFunctionLun =3D 0x%x, " \ > + "Comamnd =3D 0x%x \n", > + Status, > + RspHeader.NetFunc, > + RspHeader.Command > + )); > + return (Status); > + } >=20 > - // > - // Read the response header > - RspHeaderSize =3D sizeof (IPMI_KCS_RESPONSE_HEADER); > - Status =3D KcsTransportRead ((UINT8 *)&RspHeader, &RspHeaderSiz= e); > - if (EFI_ERROR (Status)) { > - DEBUG (( > - DEBUG_ERROR, > - "IPMI KCS read response header failed Status(%r), " \ > - "RspNetFunctionLun =3D 0x%x, " \ > - "Command =3D 0x%x \n", > - Status, > - RspHeader.NetFunc, > - RspHeader.Command > - )); > - return (Status); > + // > + // Print out the response payloads. > + HelperManageabilityDebugPrint ((VOID *)&RspHeader, RspHeaderSize, > + "KCS Response Header:\n"); > } >=20 > - // > - // Print out the response payloads. > - HelperManageabilityDebugPrint ((VOID *)&RspHeader, > (UINT16)RspHeaderSize, "KCS Response Header:\n"); > - > if ((ResponseData !=3D NULL) && (ResponseDataSize !=3D NULL) && > (*ResponseDataSize !=3D 0)) { > - Status =3D KcsTransportRead ((UINT8 *)ResponseData, ResponseDataSize= ); > + ExpectedResponseDataSize =3D *ResponseDataSize; > + Status =3D KcsTransportRead ((UINT8 *)ResponseData= , > ResponseDataSize); > if (EFI_ERROR (Status)) { > - DEBUG ((DEBUG_ERROR, "IPMI KCS response read Failed with Status(%r= )", > Status)); > + DEBUG ((DEBUG_ERROR, "KCS response read Failed with Status(%r)", > + Status)); > } >=20 > // > // Print out the response payloads. > - HelperManageabilityDebugPrint ((VOID *)ResponseData, *ResponseDataSi= ze, > "KCS Response Data:\n"); > + if (*ResponseDataSize !=3D 0) { > + if (ExpectedResponseDataSize !=3D *ResponseDataSize) { > + DEBUG ((DEBUG_ERROR, "Expected KCS response size : %d is not mat= ched > to returned size : %d.\n", ExpectedResponseDataSize, *ResponseDataSize)); > + Status =3D EFI_DEVICE_ERROR; > + } > + > + HelperManageabilityDebugPrint ((VOID *)ResponseData, > (UINT32)*ResponseDataSize, "KCS Response Data:\n"); > + } > } else { > *ResponseDataSize =3D 0; > } > diff --git > a/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Dxe/Mana > geabilityTransportKcs.c > b/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Dxe/Mana > geabilityTransportKcs.c > index c236354605..9175556a26 100644 > --- > a/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Dxe/Mana > geabilityTransportKcs.c > +++ b/Features/ManageabilityPkg/Library/ManageabilityTransportKcsLib/Dxe > +++ /ManageabilityTransportKcs.c > @@ -10,6 +10,7 @@ > #include > #include > #include > +#include > #include > #include #include > > @@ -225,13 +226,6 @@ KcsTransportTransmitReceive ( > return; > } >=20 > - // Transmit header is necessary for KCS transport, which could be > - // NetFn, Command and etc. > - if (TransferToken->TransmitHeader =3D=3D NULL) { > - TransferToken->TransferStatus =3D EFI_INVALID_PARAMETER; > - return; > - } > - > Status =3D KcsTransportSendCommand ( > TransferToken->TransmitHeader, > TransferToken->TransmitHeaderSize, > @@ -354,6 +348,22 @@ GetTransportCapability ( > } >=20 > *TransportCapability =3D 0; > + if (CompareGuid ( > + TransportToken->ManageabilityProtocolSpecification, > + &gManageabilityProtocolIpmiGuid > + )) > + { > + *TransportCapability |=3D > + > (MANAGEABILITY_TRANSPORT_CAPABILITY_MAXIMUM_PAYLOAD_NOT_AVAIL > ABLE > + << > MANAGEABILITY_TRANSPORT_CAPABILITY_MAXIMUM_PAYLOAD_BIT_POSITIO > N); > + } else if (CompareGuid ( > + TransportToken->ManageabilityProtocolSpecification, > + &gManageabilityProtocolMctpGuid > + )) > + { > + *TransportCapability |=3D > + (MCTP_KCS_MTU_IN_POWER_OF_2 << > + > MANAGEABILITY_TRANSPORT_CAPABILITY_MAXIMUM_PAYLOAD_BIT_POSITIO > N); > + } > + > return EFI_SUCCESS; > } >=20 > -- > 2.37.1.windows.1