.../Include/Library/BasePldmProtocolLib.h | 16 + .../Library/ManageabilityTransportMctpLib.h | 9 +- .../Include/Protocol/MctpProtocol.h | 12 +- .../Include/Protocol/PldmProtocol.h | 18 +- .../Protocol/PldmSmbiosTransferProtocol.h | 26 ++ .../Common/KcsCommon.c | 284 +++++++++++++++--- .../Dxe/ManageabilityTransportMctp.c | 4 +- .../PldmProtocolLibrary/Dxe/PldmProtocolLib.c | 49 ++- .../Dxe/PldmProtocolLib.inf | 6 +- .../ManageabilityPkg/ManageabilityPkg.dec | 6 + .../MctpProtocol/Common/MctpProtocolCommon.c | 129 +++++++- .../Universal/MctpProtocol/Dxe/MctpProtocol.c | 51 +++- .../PldmProtocol/Common/PldmProtocolCommon.c | 148 +++------ .../PldmProtocol/Common/PldmProtocolCommon.h | 25 +- .../Universal/PldmProtocol/Dxe/PldmProtocol.c | 69 ++++- .../PldmProtocol/Dxe/PldmProtocolDxe.inf | 4 - .../PldmSmbiosTransferDxe.c | 28 ++ 17 files changed, 690 insertions(+), 194 deletions(-)
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
Changes v2 -> v3:
- Add new patch that adds PLDM completion code check
Changes v1 -> v2:
- Add new patches with corrections for the PLDM protocol. The
resulting communication via EDKII_PLDM_PROTOCOL was successfully
tested.
Abner Chang (4):
ManageabilityPkg: Add PLDM terminus PCDs
PldmProtocolDxe: Correct TID argument usage
ManageabilityPkg/PldmProtocol: Remove PLDM command table
PldmSmbiosTransferDxe: Implement Set PLDM terminus ID API
Konstantin Aladyshev (12):
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
ManageabilityPkg: Return error on PLDM header check fails
ManageabilityPkg: Check PLDM completion code
.../Include/Library/BasePldmProtocolLib.h | 16 +
.../Library/ManageabilityTransportMctpLib.h | 9 +-
.../Include/Protocol/MctpProtocol.h | 12 +-
.../Include/Protocol/PldmProtocol.h | 18 +-
.../Protocol/PldmSmbiosTransferProtocol.h | 26 ++
.../Common/KcsCommon.c | 284 +++++++++++++++---
.../Dxe/ManageabilityTransportMctp.c | 4 +-
.../PldmProtocolLibrary/Dxe/PldmProtocolLib.c | 49 ++-
.../Dxe/PldmProtocolLib.inf | 6 +-
.../ManageabilityPkg/ManageabilityPkg.dec | 6 +
.../MctpProtocol/Common/MctpProtocolCommon.c | 129 +++++++-
.../Universal/MctpProtocol/Dxe/MctpProtocol.c | 51 +++-
.../PldmProtocol/Common/PldmProtocolCommon.c | 148 +++------
.../PldmProtocol/Common/PldmProtocolCommon.h | 25 +-
.../Universal/PldmProtocol/Dxe/PldmProtocol.c | 69 ++++-
.../PldmProtocol/Dxe/PldmProtocolDxe.inf | 4 -
.../PldmSmbiosTransferDxe.c | 28 ++
17 files changed, 690 insertions(+), 194 deletions(-)
--
2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109908): https://edk2.groups.io/g/devel/message/109908
Mute This Topic: https://groups.io/mt/102134646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
[AMD Official Use Only - General] For entire V3 and the additional patch 16/16, Reviewed-by: Abner Chang <abner.chang@amd.com> I will do the Uncrustify check and merge this patch set once the corresponding edk2 changes are merged. Thanks Abner > -----Original Message----- > From: Konstantin Aladyshev <aladyshev22@gmail.com> > Sent: Monday, October 23, 2023 9:05 PM > To: devel@edk2.groups.io > Cc: Chang, Abner <Abner.Chang@amd.com>; Attar, AbdulLateef (Abdul > Lateef) <AbdulLateef.Attar@amd.com>; nicklew@nvidia.com; Konstantin > Aladyshev <aladyshev22@gmail.com> > Subject: [PATCH edk2-platforms v3 00/16] 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 > > Changes v2 -> v3: > - Add new patch that adds PLDM completion code check > > Changes v1 -> v2: > - Add new patches with corrections for the PLDM protocol. The > resulting communication via EDKII_PLDM_PROTOCOL was successfully > tested. > > Abner Chang (4): > ManageabilityPkg: Add PLDM terminus PCDs > PldmProtocolDxe: Correct TID argument usage > ManageabilityPkg/PldmProtocol: Remove PLDM command table > PldmSmbiosTransferDxe: Implement Set PLDM terminus ID API > > Konstantin Aladyshev (12): > 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 > ManageabilityPkg: Return error on PLDM header check fails > ManageabilityPkg: Check PLDM completion code > > .../Include/Library/BasePldmProtocolLib.h | 16 + > .../Library/ManageabilityTransportMctpLib.h | 9 +- > .../Include/Protocol/MctpProtocol.h | 12 +- > .../Include/Protocol/PldmProtocol.h | 18 +- > .../Protocol/PldmSmbiosTransferProtocol.h | 26 ++ > .../Common/KcsCommon.c | 284 +++++++++++++++--- > .../Dxe/ManageabilityTransportMctp.c | 4 +- > .../PldmProtocolLibrary/Dxe/PldmProtocolLib.c | 49 ++- > .../Dxe/PldmProtocolLib.inf | 6 +- > .../ManageabilityPkg/ManageabilityPkg.dec | 6 + > .../MctpProtocol/Common/MctpProtocolCommon.c | 129 +++++++- > .../Universal/MctpProtocol/Dxe/MctpProtocol.c | 51 +++- > .../PldmProtocol/Common/PldmProtocolCommon.c | 148 +++------ > .../PldmProtocol/Common/PldmProtocolCommon.h | 25 +- > .../Universal/PldmProtocol/Dxe/PldmProtocol.c | 69 ++++- > .../PldmProtocol/Dxe/PldmProtocolDxe.inf | 4 - > .../PldmSmbiosTransferDxe.c | 28 ++ > 17 files changed, 690 insertions(+), 194 deletions(-) > > -- > 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109980): https://edk2.groups.io/g/devel/message/109980 Mute This Topic: https://groups.io/mt/102134646/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
[AMD Official Use Only - General] Merged. I will send another patch for Uncrustify updates if any. Abner > -----Original Message----- > From: Chang, Abner > Sent: Tuesday, October 24, 2023 10:44 AM > To: Konstantin Aladyshev <aladyshev22@gmail.com>; devel@edk2.groups.io > Cc: Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com>; > nicklew@nvidia.com > Subject: RE: [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support > > For entire V3 and the additional patch 16/16, > Reviewed-by: Abner Chang <abner.chang@amd.com> > > I will do the Uncrustify check and merge this patch set once the corresponding > edk2 changes are merged. > Thanks > Abner > > > -----Original Message----- > > From: Konstantin Aladyshev <aladyshev22@gmail.com> > > Sent: Monday, October 23, 2023 9:05 PM > > To: devel@edk2.groups.io > > Cc: Chang, Abner <Abner.Chang@amd.com>; Attar, AbdulLateef (Abdul > > Lateef) <AbdulLateef.Attar@amd.com>; nicklew@nvidia.com; Konstantin > > Aladyshev <aladyshev22@gmail.com> > > Subject: [PATCH edk2-platforms v3 00/16] 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 > > > > Changes v2 -> v3: > > - Add new patch that adds PLDM completion code check > > > > Changes v1 -> v2: > > - Add new patches with corrections for the PLDM protocol. The > > resulting communication via EDKII_PLDM_PROTOCOL was successfully > > tested. > > > > Abner Chang (4): > > ManageabilityPkg: Add PLDM terminus PCDs > > PldmProtocolDxe: Correct TID argument usage > > ManageabilityPkg/PldmProtocol: Remove PLDM command table > > PldmSmbiosTransferDxe: Implement Set PLDM terminus ID API > > > > Konstantin Aladyshev (12): > > 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 > > ManageabilityPkg: Return error on PLDM header check fails > > ManageabilityPkg: Check PLDM completion code > > > > .../Include/Library/BasePldmProtocolLib.h | 16 + > > .../Library/ManageabilityTransportMctpLib.h | 9 +- > > .../Include/Protocol/MctpProtocol.h | 12 +- > > .../Include/Protocol/PldmProtocol.h | 18 +- > > .../Protocol/PldmSmbiosTransferProtocol.h | 26 ++ > > .../Common/KcsCommon.c | 284 +++++++++++++++--- > > .../Dxe/ManageabilityTransportMctp.c | 4 +- > > .../PldmProtocolLibrary/Dxe/PldmProtocolLib.c | 49 ++- > > .../Dxe/PldmProtocolLib.inf | 6 +- > > .../ManageabilityPkg/ManageabilityPkg.dec | 6 + > > .../MctpProtocol/Common/MctpProtocolCommon.c | 129 +++++++- > > .../Universal/MctpProtocol/Dxe/MctpProtocol.c | 51 +++- > > .../PldmProtocol/Common/PldmProtocolCommon.c | 148 +++------ > > .../PldmProtocol/Common/PldmProtocolCommon.h | 25 +- > > .../Universal/PldmProtocol/Dxe/PldmProtocol.c | 69 ++++- > > .../PldmProtocol/Dxe/PldmProtocolDxe.inf | 4 - > > .../PldmSmbiosTransferDxe.c | 28 ++ > > 17 files changed, 690 insertions(+), 194 deletions(-) > > > > -- > > 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110070): https://edk2.groups.io/g/devel/message/110070 Mute This Topic: https://groups.io/mt/102134646/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
Hi, Abner: I ask you a favor. KCS actually layer on LPC interface. KCS is a usual BMC-to-CPU communication channel. Does MCTP-over-KCS feature require some special LPC interface hardware changes? Or, MCTP is just a software stack and it uses current LPC interface, not any special hardward design change requirement. Thanks At 2023-10-26 13:03:02, "Chang, Abner via groups.io" <abner.chang=amd.com@groups.io> wrote: >[AMD Official Use Only - General] > >Merged. I will send another patch for Uncrustify updates if any. > >Abner > >> -----Original Message----- >> From: Chang, Abner >> Sent: Tuesday, October 24, 2023 10:44 AM >> To: Konstantin Aladyshev <aladyshev22@gmail.com>; devel@edk2.groups.io >> Cc: Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com>; >> nicklew@nvidia.com >> Subject: RE: [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support >> >> For entire V3 and the additional patch 16/16, >> Reviewed-by: Abner Chang <abner.chang@amd.com> >> >> I will do the Uncrustify check and merge this patch set once the corresponding >> edk2 changes are merged. >> Thanks >> Abner >> >> > -----Original Message----- >> > From: Konstantin Aladyshev <aladyshev22@gmail.com> >> > Sent: Monday, October 23, 2023 9:05 PM >> > To: devel@edk2.groups.io >> > Cc: Chang, Abner <Abner.Chang@amd.com>; Attar, AbdulLateef (Abdul >> > Lateef) <AbdulLateef.Attar@amd.com>; nicklew@nvidia.com; Konstantin >> > Aladyshev <aladyshev22@gmail.com> >> > Subject: [PATCH edk2-platforms v3 00/16] 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 >> > >> > Changes v2 -> v3: >> > - Add new patch that adds PLDM completion code check >> > >> > Changes v1 -> v2: >> > - Add new patches with corrections for the PLDM protocol. The >> > resulting communication via EDKII_PLDM_PROTOCOL was successfully >> > tested. >> > >> > Abner Chang (4): >> > ManageabilityPkg: Add PLDM terminus PCDs >> > PldmProtocolDxe: Correct TID argument usage >> > ManageabilityPkg/PldmProtocol: Remove PLDM command table >> > PldmSmbiosTransferDxe: Implement Set PLDM terminus ID API >> > >> > Konstantin Aladyshev (12): >> > 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 >> > ManageabilityPkg: Return error on PLDM header check fails >> > ManageabilityPkg: Check PLDM completion code >> > >> > .../Include/Library/BasePldmProtocolLib.h | 16 + >> > .../Library/ManageabilityTransportMctpLib.h | 9 +- >> > .../Include/Protocol/MctpProtocol.h | 12 +- >> > .../Include/Protocol/PldmProtocol.h | 18 +- >> > .../Protocol/PldmSmbiosTransferProtocol.h | 26 ++ >> > .../Common/KcsCommon.c | 284 +++++++++++++++--- >> > .../Dxe/ManageabilityTransportMctp.c | 4 +- >> > .../PldmProtocolLibrary/Dxe/PldmProtocolLib.c | 49 ++- >> > .../Dxe/PldmProtocolLib.inf | 6 +- >> > .../ManageabilityPkg/ManageabilityPkg.dec | 6 + >> > .../MctpProtocol/Common/MctpProtocolCommon.c | 129 +++++++- >> > .../Universal/MctpProtocol/Dxe/MctpProtocol.c | 51 +++- >> > .../PldmProtocol/Common/PldmProtocolCommon.c | 148 +++------ >> > .../PldmProtocol/Common/PldmProtocolCommon.h | 25 +- >> > .../Universal/PldmProtocol/Dxe/PldmProtocol.c | 69 ++++- >> > .../PldmProtocol/Dxe/PldmProtocolDxe.inf | 4 - >> > .../PldmSmbiosTransferDxe.c | 28 ++ >> > 17 files changed, 690 insertions(+), 194 deletions(-) >> > >> > -- >> > 2.34.1 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110374): https://edk2.groups.io/g/devel/message/110374 Mute This Topic: https://groups.io/mt/102134646/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
MCTP over KCS defines two types of KCS-like access, one is compatible with IPMI KCS, another is memory map I/O access. It doesn't require any special HW, just require the I/O cycle or memory cycle can be delivered to the management controller. Yes, we can consider MCTP is a software layer protocol and the that protocol is HW (transport interface) agnostic. Abner From: Yoshinoya <yoshinoyatoko@163.com> Sent: Tuesday, October 31, 2023 2:38 PM To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@amd.com> Cc: Konstantin Aladyshev <aladyshev22@gmail.com>; Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com>; nicklew@nvidia.com Subject: Re:Re: [edk2-devel] [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. Hi, Abner: I ask you a favor. KCS actually layer on LPC interface. KCS is a usual BMC-to-CPU communication channel. Does MCTP-over-KCS feature require some special LPC interface hardware changes? Or, MCTP is just a software stack and it uses current LPC interface, not any special hardward design change requirement. Thanks At 2023-10-26 13:03:02, "Chang, Abner via groups.io" <abner.chang=amd.com@groups.io<mailto:abner.chang=amd.com@groups.io>> wrote: >[AMD Official Use Only - General] > >Merged. I will send another patch for Uncrustify updates if any. > >Abner > >> -----Original Message----- >> From: Chang, Abner >> Sent: Tuesday, October 24, 2023 10:44 AM >> To: Konstantin Aladyshev <aladyshev22@gmail.com<mailto:aladyshev22@gmail.com>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> >> Cc: Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com<mailto:AbdulLateef.Attar@amd.com>>; >> nicklew@nvidia.com<mailto:nicklew@nvidia.com> >> Subject: RE: [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support >> >> For entire V3 and the additional patch 16/16, >> Reviewed-by: Abner Chang <abner.chang@amd.com<mailto:abner.chang@amd.com>> >> >> I will do the Uncrustify check and merge this patch set once the corresponding >> edk2 changes are merged. >> Thanks >> Abner >> >> > -----Original Message----- >> > From: Konstantin Aladyshev <aladyshev22@gmail.com<mailto:aladyshev22@gmail.com>> >> > Sent: Monday, October 23, 2023 9:05 PM >> > To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> >> > Cc: Chang, Abner <Abner.Chang@amd.com<mailto:Abner.Chang@amd.com>>; Attar, AbdulLateef (Abdul >> > Lateef) <AbdulLateef.Attar@amd.com<mailto:AbdulLateef.Attar@amd.com>>; nicklew@nvidia.com<mailto:nicklew@nvidia.com>; Konstantin >> > Aladyshev <aladyshev22@gmail.com<mailto:aladyshev22@gmail.com>> >> > Subject: [PATCH edk2-platforms v3 00/16] 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<mailto:aladyshev22@gmail.com>> and Abner Chang <abner.chang@amd.com<mailto: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 >> > >> > Changes v2 -> v3: >> > - Add new patch that adds PLDM completion code check >> > >> > Changes v1 -> v2: >> > - Add new patches with corrections for the PLDM protocol. The >> > resulting communication via EDKII_PLDM_PROTOCOL was successfully >> > tested. >> > >> > Abner Chang (4): >> > ManageabilityPkg: Add PLDM terminus PCDs >> > PldmProtocolDxe: Correct TID argument usage >> > ManageabilityPkg/PldmProtocol: Remove PLDM command table >> > PldmSmbiosTransferDxe: Implement Set PLDM terminus ID API >> > >> > Konstantin Aladyshev (12): >> > 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 >> > ManageabilityPkg: Return error on PLDM header check fails >> > ManageabilityPkg: Check PLDM completion code >> > >> > .../Include/Library/BasePldmProtocolLib.h | 16 + >> > .../Library/ManageabilityTransportMctpLib.h | 9 +- >> > .../Include/Protocol/MctpProtocol.h | 12 +- >> > .../Include/Protocol/PldmProtocol.h | 18 +- >> > .../Protocol/PldmSmbiosTransferProtocol.h | 26 ++ >> > .../Common/KcsCommon.c | 284 +++++++++++++++--- >> > .../Dxe/ManageabilityTransportMctp.c | 4 +- >> > .../PldmProtocolLibrary/Dxe/PldmProtocolLib.c | 49 ++- >> > .../Dxe/PldmProtocolLib.inf | 6 +- >> > .../ManageabilityPkg/ManageabilityPkg.dec | 6 + >> > .../MctpProtocol/Common/MctpProtocolCommon.c | 129 +++++++- >> > .../Universal/MctpProtocol/Dxe/MctpProtocol.c | 51 +++- >> > .../PldmProtocol/Common/PldmProtocolCommon.c | 148 +++------ >> > .../PldmProtocol/Common/PldmProtocolCommon.h | 25 +- >> > .../Universal/PldmProtocol/Dxe/PldmProtocol.c | 69 ++++- >> > .../PldmProtocol/Dxe/PldmProtocolDxe.inf | 4 - >> > .../PldmSmbiosTransferDxe.c | 28 ++ >> > 17 files changed, 690 insertions(+), 194 deletions(-) >> > >> > -- >> > 2.34.1 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110377): https://edk2.groups.io/g/devel/message/110377 Mute This Topic: https://groups.io/mt/102134646/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.