[edk2-devel] [PATCH edk2-platforms 00/10] MTCP-over-KCS support

Konstantin Aladyshev posted 10 patches 6 months, 3 weeks ago
Failed in applying to current master (apply log)
There is a newer version of this series
.../Library/ManageabilityTransportMctpLib.h   |   9 +-
.../Include/Protocol/MctpProtocol.h           |  12 +-
.../Common/KcsCommon.c                        | 284 +++++++++++++++---
.../Dxe/ManageabilityTransportMctp.c          |   4 +-
.../MctpProtocol/Common/MctpProtocolCommon.c  | 129 +++++++-
.../Universal/MctpProtocol/Dxe/MctpProtocol.c |  51 +++-
.../PldmProtocol/Common/PldmProtocolCommon.c  |  10 +-
7 files changed, 430 insertions(+), 69 deletions(-)
[edk2-devel] [PATCH edk2-platforms 00/10] MTCP-over-KCS support
Posted by Konstantin Aladyshev 6 months, 3 weeks ago
The Manageability KCS transport library needs to support requests both
from MCTP and IPMI transports. Currently the code only handles IPMI
case correctly.
In the MCTP case the communication should be based on the MCTP-over-KCS
specification (DSP0254). This specification defines a special KCS
binding header and trailer structures that need to be present in every
MCTP message.
The header structure contains a length field, therefore response packet
size is not needed to be known beforehand.
The trailer structure contains a PEC checksum that can be used to check
itegrity of the response message.
Modify Manageability KCS transport library code to check which message
is processed (IPMI or MCTP) and handle each case correctly based on its
own specification.
This patch is a result of a joint effort from the Konstantin Aladyshev
<aladyshev22@gmail.com> and Abner Chang <abner.chang@amd.com>.

Tested:
PLDM communication between the HOST and BMC was tested with both
components implemented via open-source software:
- The HOST (UEFI firmware) part was based one the edk2 [1] and
edk2-platforms [2] code,
- The BMC part was based on the openbmc [3] distribution.

The testing process and all the necessary utilities are described in
the [4] repository.

The provided changes keep IPMI over KCS stack working as reported by
Abner Chang.

[1]: https://github.com/tianocore/edk2
[2]: https://github.com/tianocore/edk2-platforms
[3]: https://github.com/openbmc/openbmc
[4]: https://github.com/Kostr/PLDM

Konstantin Aladyshev (10):
  ManageabilityPkg: Add definition for the MCTP KCS TRAILER structure
  ManageabilityPkg: Check MCTP EIDs for reserved values
  ManageabilityPkg: Support both MCTP and IPMI in KCS tranport library
  ManageabilityPkg: Check header fields in the MCTP response
  ManageabilityPkg: Correct typo in MCTP destination EID field
  ManageabilityPkg: Update the algorithm of using MCTP endpoint ID PCD
  ManageabilityPkg: Correct value for the MCTP TAG_OWNER response bit
  ManageabilityPkg: Don't check MCTP header fields if transfer has
    failed
  ManageabilityPkg: Use correct constants for PLDM header checks
  ManageabilityPkg: Return error on multiple-packet MCTP responses

 .../Library/ManageabilityTransportMctpLib.h   |   9 +-
 .../Include/Protocol/MctpProtocol.h           |  12 +-
 .../Common/KcsCommon.c                        | 284 +++++++++++++++---
 .../Dxe/ManageabilityTransportMctp.c          |   4 +-
 .../MctpProtocol/Common/MctpProtocolCommon.c  | 129 +++++++-
 .../Universal/MctpProtocol/Dxe/MctpProtocol.c |  51 +++-
 .../PldmProtocol/Common/PldmProtocolCommon.c  |  10 +-
 7 files changed, 430 insertions(+), 69 deletions(-)

-- 
2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109633): https://edk2.groups.io/g/devel/message/109633
Mute This Topic: https://groups.io/mt/101994937/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH edk2-platforms 00/10] MTCP-over-KCS support
Posted by Chang, Abner via groups.io 6 months, 2 weeks ago
[AMD Official Use Only - General]

For entire series, Reviewed-by: Abner Chang <abner.chang@amd.com>

Hi Aladyshev,
Could you please provide the corresponding branch somewhere that contains the latest version of this patch set? Then I can move forward to merge it after edk2 portion is merged.

Thanks for this contribution.
Abner

> -----Original Message-----
> From: Konstantin Aladyshev <aladyshev22@gmail.com>
> Sent: Monday, October 16, 2023 9:18 PM
> To: devel@edk2.groups.io
> Cc: Chang, Abner <Abner.Chang@amd.com>; isaac.w.oram@intel.com; Attar,
> AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com>;
> nicklew@nvidia.com; Konstantin Aladyshev <aladyshev22@gmail.com>
> Subject: [PATCH edk2-platforms 00/10] MTCP-over-KCS support
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> The Manageability KCS transport library needs to support requests both
> from MCTP and IPMI transports. Currently the code only handles IPMI
> case correctly.
> In the MCTP case the communication should be based on the MCTP-over-KCS
> specification (DSP0254). This specification defines a special KCS
> binding header and trailer structures that need to be present in every
> MCTP message.
> The header structure contains a length field, therefore response packet
> size is not needed to be known beforehand.
> The trailer structure contains a PEC checksum that can be used to check
> itegrity of the response message.
> Modify Manageability KCS transport library code to check which message
> is processed (IPMI or MCTP) and handle each case correctly based on its
> own specification.
> This patch is a result of a joint effort from the Konstantin Aladyshev
> <aladyshev22@gmail.com> and Abner Chang <abner.chang@amd.com>.
>
> Tested:
> PLDM communication between the HOST and BMC was tested with both
> components implemented via open-source software:
> - The HOST (UEFI firmware) part was based one the edk2 [1] and
> edk2-platforms [2] code,
> - The BMC part was based on the openbmc [3] distribution.
>
> The testing process and all the necessary utilities are described in
> the [4] repository.
>
> The provided changes keep IPMI over KCS stack working as reported by
> Abner Chang.
>
> [1]: https://github.com/tianocore/edk2
> [2]: https://github.com/tianocore/edk2-platforms
> [3]: https://github.com/openbmc/openbmc
> [4]: https://github.com/Kostr/PLDM
>
> Konstantin Aladyshev (10):
>   ManageabilityPkg: Add definition for the MCTP KCS TRAILER structure
>   ManageabilityPkg: Check MCTP EIDs for reserved values
>   ManageabilityPkg: Support both MCTP and IPMI in KCS tranport library
>   ManageabilityPkg: Check header fields in the MCTP response
>   ManageabilityPkg: Correct typo in MCTP destination EID field
>   ManageabilityPkg: Update the algorithm of using MCTP endpoint ID PCD
>   ManageabilityPkg: Correct value for the MCTP TAG_OWNER response bit
>   ManageabilityPkg: Don't check MCTP header fields if transfer has
>     failed
>   ManageabilityPkg: Use correct constants for PLDM header checks
>   ManageabilityPkg: Return error on multiple-packet MCTP responses
>
>  .../Library/ManageabilityTransportMctpLib.h   |   9 +-
>  .../Include/Protocol/MctpProtocol.h           |  12 +-
>  .../Common/KcsCommon.c                        | 284 +++++++++++++++---
>  .../Dxe/ManageabilityTransportMctp.c          |   4 +-
>  .../MctpProtocol/Common/MctpProtocolCommon.c  | 129 +++++++-
>  .../Universal/MctpProtocol/Dxe/MctpProtocol.c |  51 +++-
>  .../PldmProtocol/Common/PldmProtocolCommon.c  |  10 +-
>  7 files changed, 430 insertions(+), 69 deletions(-)
>
> --
> 2.34.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109710): https://edk2.groups.io/g/devel/message/109710
Mute This Topic: https://groups.io/mt/101994937/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-