.../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 - 2024 Red Hat, Inc.