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

Konstantin Aladyshev posted 16 patches 6 months, 1 week ago
Failed in applying to current master (apply log)
.../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(-)
[edk2-devel] [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support
Posted by Konstantin Aladyshev 6 months, 1 week 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

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]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support
Posted by Chang, Abner via groups.io 6 months, 1 week ago
[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]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support
Posted by Chang, Abner via groups.io 6 months ago
[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]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support
Posted by Yoshinoya 6 months ago
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]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH edk2-platforms v3 00/16] MTCP-over-KCS support
Posted by Chang, Abner via groups.io 6 months ago
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]
-=-=-=-=-=-=-=-=-=-=-=-