Thanks for the answer!

I was a little bit confused about the part, that in the same package I
actually need to provide different library implementations for the
same 'ManageabilityTransportLib', thanks for the clarification!
I think your DSC example should go into the package documentation.

As for me, I'm working with the OpenBMC distribution
(https://github.com/openbmc/openbmc) and my goal is to transfer data
from the BIOS to the BMC via MCTP/PLDM.
Currently there is no solution for the MCTP over KCS binding in Linux,
so I need to add this support:
- either to the MCTP userspace library
(https://github.com/openbmc/libmctp) [old OpenBMC way, but probably
easier]
- or to the MCTP kernel binding
(https://github.com/torvalds/linux/tree/master/drivers/net/mctp)
[modern mctp Linux driver approach]

Both don't sound like an easy task, so can I ask, what MC (i.e.
management controller) device and firmware do you use on the other
side of the MCTP KCS transmissions?

You've also mentioned PLDM SMBIOS, isn't it covered by the
https://github.com/tianocore/edk2-platforms/blob/master/Features/ManageabilityPkg/Universal/PldmSmbiosTransferDxe/PldmSmbiosTransferDxe.c
?


Best regards,
Konstantin Aladyshev

On Tue, Aug 22, 2023 at 7:26 PM Chang, Abner <abner.ch...@amd.com> wrote:
>
> [AMD Official Use Only - General]
>
> Hi Aladyshev,
> We use library class to specify the desire transport interface for the 
> management protocol, such as MCTP, PLDM and IPMI. This way we can flexibly 
> support any transport interface for the management protocol.
>
> Here is the example of using ManageabilityPkg, which is PLDM over MCTP over 
> KCS.
>   ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf {
>     <LibraryClasses>
>       
> ManageabilityTransportLib|ManageabilityPkg/Library/ManageabilityTransportKcsLib/Dxe/DxeManageabilityTransportKcs.inf
>   }
>   ManageabilityPkg/Universal/MctpProtocol/Dxe/MctpProtocolDxe.inf {
>     <LibraryClasses>
>       
> ManageabilityTransportLib|ManageabilityPkg/Library/ManageabilityTransportKcsLib/Dxe/DxeManageabilityTransportKcs.inf
>   }
>   ManageabilityPkg/Universal/PldmProtocol/Dxe/PldmProtocolDxe.inf {
>     <LibraryClasses>
>       
> ManageabilityTransportLib|ManageabilityPkg/Library/ManageabilityTransportMctpLib/Dxe/DxeManageabilityTransportMctp.inf
>   }
>
> So you can implement ManageabilityTransport library for either industry 
> standard or proprietary implementation for the specific management protocol.
>
> BTW, We do have PLDM SMBIOS over MCTP implementation but not upstream yet.
>
> Hope this information helps.
> Thanks
> Abner
>
>
> > -----Original Message-----
> > From: disc...@edk2.groups.io <disc...@edk2.groups.io> On Behalf Of
> > Konstantin Aladyshev via groups.io
> > Sent: Tuesday, August 22, 2023 7:00 PM
> > To: discuss <disc...@edk2.groups.io>; devel@edk2.groups.io
> > Subject: [edk2-discuss] PLDM messages via MCTP over KCS
> >
> > Caution: This message originated from an External Source. Use proper caution
> > when opening attachments, clicking links, or responding.
> >
> >
> > Hi!
> >
> > I'm trying to build `ManageabilityPkg` from the edk2-platforms
> >  repo to issue PLDM messages via MCTP over KCS. Is it possible with
> > the current code? I see all the building blocks, but have trouble
> > putting it all together.
> >
> > The main question that bothers me is what implementation should I set
> > for the `ManageabilityTransportLib`?
> > By default it is set to dummy `BaseManageabilityTransportNull.inf`
> > (https://github.com/tianocore/edk2-
> > platforms/blob/master/Features/ManageabilityPkg/ManageabilityPkg.dsc).
> >
> > On one case to get PLDM via MCTP it looks that I need to set it to
> > `DxeManageabilityTransportMctp.inf`
> > ManageabilityTransportLib| <...>/DxeManageabilityTransportMctp.inf
> > (https://github.com/tianocore/edk2-
> > platforms/blob/master/Features/ManageabilityPkg/Library/ManageabilityTra
> > nsportMctpLib/Dxe/DxeManageabilityTransportMctp.inf)
> >
> > But on the other case if I want MCTP over KCS I need to set it to
> > `DxeManageabilityTransportKcs.inf`
> > ManageabilityTransportLib| <...>/DxeManageabilityTransportKcs.inf
> > (https://github.com/tianocore/edk2-
> > platforms/blob/master/Features/ManageabilityPkg/Library/ManageabilityTra
> > nsportKcsLib/Dxe/DxeManageabilityTransportKcs.inf)
> >
> > What is the right way to resolve this?
> >
> > There are no platforms in the repo that actually implement PLDM/MCTP
> > functionality, so there is no example that I can use as a reference.
> >
> >
> > Best regards,
> > Konstantin Aladyshev
> >
> >
> > 
> >
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#107957): https://edk2.groups.io/g/devel/message/107957
Mute This Topic: https://groups.io/mt/100897530/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to