[edk2-devel] [PATCH 0/3] Add NULL IpmiCommandLib instance

Chang, Abner via groups.io posted 3 patches 1 year, 4 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
MdeModulePkg/MdeModulePkg.dec                 |   4 +
MdeModulePkg/MdeModulePkg.dsc                 |   2 +
.../BaseIpmiCommandLibNull.inf                |  32 +
MdeModulePkg/Include/Library/IpmiCommandLib.h | 683 ++++++++++++++++++
.../IpmiCommandLibNetFnApp.c                  | 252 +++++++
.../IpmiCommandLibNetFnChassis.c              | 123 ++++
.../IpmiCommandLibNetFnStorage.c              | 248 +++++++
.../IpmiCommandLibNetFnTransport.c            | 100 +++
8 files changed, 1444 insertions(+)
create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/BaseIpmiCommandLibNull.inf
create mode 100644 MdeModulePkg/Include/Library/IpmiCommandLib.h
create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnApp.c
create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnChassis.c
create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnStorage.c
create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnTransport.c
[edk2-devel] [PATCH 0/3] Add NULL IpmiCommandLib instance
Posted by Chang, Abner via groups.io 1 year, 4 months ago
From: Abner Chang <abner.chang@amd.com>

BZ# 4231
This patch adds a NULL instance of IpmiCommandLib to remove
the dependence between edk2 and edk2-platform packages.

Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>

Abner Chang (3):
  MdeModulePkg/Include: Add IpmiCommandLib header file
  MdeModulePkg/IpmiCommandLib: Add NULL instance library
  MdeModulePkg: Add IpmiCommandLib

 MdeModulePkg/MdeModulePkg.dec                 |   4 +
 MdeModulePkg/MdeModulePkg.dsc                 |   2 +
 .../BaseIpmiCommandLibNull.inf                |  32 +
 MdeModulePkg/Include/Library/IpmiCommandLib.h | 683 ++++++++++++++++++
 .../IpmiCommandLibNetFnApp.c                  | 252 +++++++
 .../IpmiCommandLibNetFnChassis.c              | 123 ++++
 .../IpmiCommandLibNetFnStorage.c              | 248 +++++++
 .../IpmiCommandLibNetFnTransport.c            | 100 +++
 8 files changed, 1444 insertions(+)
 create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/BaseIpmiCommandLibNull.inf
 create mode 100644 MdeModulePkg/Include/Library/IpmiCommandLib.h
 create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnApp.c
 create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnChassis.c
 create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnStorage.c
 create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnTransport.c

-- 
2.37.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#97769): https://edk2.groups.io/g/devel/message/97769
Mute This Topic: https://groups.io/mt/95915689/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 0/3] Add NULL IpmiCommandLib instance
Posted by Michael D Kinney 1 year, 4 months ago
Hi Abner,

Since this is moving content from edk2-platforms to edk2, we need to make sure that migration
is coordinated with the edk2-platforms owners for the IPMPI feature and we have a transition plan
for all downstream platform DSC files to use the content from the new location.  These types
of changes can be very disruptive.

Also, since IPMI is an industry standard, it is allowed to add libraries that support industry
standards to the MdePkg.  How was MdeModulePkg selected vs MdePkg?

Thanks,

Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, Abner via groups.io
> Sent: Tuesday, December 27, 2022 8:59 PM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Nickle Wang <nicklew@nvidia.com>; Igor
> Kulchytskyy <igork@ami.com>; Oram, Isaac W <isaac.w.oram@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>
> Subject: [edk2-devel] [PATCH 0/3] Add NULL IpmiCommandLib instance
> 
> From: Abner Chang <abner.chang@amd.com>
> 
> BZ# 4231
> This patch adds a NULL instance of IpmiCommandLib to remove
> the dependence between edk2 and edk2-platform packages.
> 
> Signed-off-by: Abner Chang <abner.chang@amd.com>
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Nickle Wang <nicklew@nvidia.com>
> Cc: Igor Kulchytskyy <igork@ami.com>
> Cc: Isaac Oram <isaac.w.oram@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> 
> Abner Chang (3):
>   MdeModulePkg/Include: Add IpmiCommandLib header file
>   MdeModulePkg/IpmiCommandLib: Add NULL instance library
>   MdeModulePkg: Add IpmiCommandLib
> 
>  MdeModulePkg/MdeModulePkg.dec                 |   4 +
>  MdeModulePkg/MdeModulePkg.dsc                 |   2 +
>  .../BaseIpmiCommandLibNull.inf                |  32 +
>  MdeModulePkg/Include/Library/IpmiCommandLib.h | 683 ++++++++++++++++++
>  .../IpmiCommandLibNetFnApp.c                  | 252 +++++++
>  .../IpmiCommandLibNetFnChassis.c              | 123 ++++
>  .../IpmiCommandLibNetFnStorage.c              | 248 +++++++
>  .../IpmiCommandLibNetFnTransport.c            | 100 +++
>  8 files changed, 1444 insertions(+)
>  create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/BaseIpmiCommandLibNull.inf
>  create mode 100644 MdeModulePkg/Include/Library/IpmiCommandLib.h
>  create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnApp.c
>  create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnChassis.c
>  create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnStorage.c
>  create mode 100644 MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnTransport.c
> 
> --
> 2.37.1.windows.1
> 
> 
> 
> 
> 



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


Re: [edk2-devel] [PATCH 0/3] Add NULL IpmiCommandLib instance
Posted by Chang, Abner via groups.io 1 year, 4 months ago
[AMD Official Use Only - General]

Sure Mike, I had CC IPMI owners to review edk2 IPMI related patch sets.
This change doesn't have a big impact on edk2-platforms because all the references of IpmiCommandLib under edk2-platfoms are in IpmiFeaturePkg itself. The old IpmiCommandLib.h will be still under IpmiFeaturePkg/include for now, but the definitions of new functions should be added
to the one under MdeModulePkg. However the edk2-platorms one should be removed soon (it is better) or later (means the IpmiFeaturePkg re-architecture, email attached).

IPMI is the industry standard however the implementation of API for each NetFn is not, this is the first consideration I had. Second, there is already a IpmiLib under MdeModulePkg that led me to create IpmiCommandLib under MdeModulePkg. 
BTW, there is problem we have to fix, IpmiLib provide the function to send/receive IPMI NetFn, while the same function provided by IpmiFeaturePkg under edk2-platform has the different library class naming, which is IpmiBaseLib.

Thanks
Abner

> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Friday, December 30, 2022 1:32 AM
> To: devel@edk2.groups.io; Chang, Abner <Abner.Chang@amd.com>; Kinney,
> Michael D <michael.d.kinney@intel.com>
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Gao, Liming
> <gaoliming@byosoft.com.cn>; Nickle Wang <nicklew@nvidia.com>; Igor
> Kulchytskyy <igork@ami.com>; Oram, Isaac W <isaac.w.oram@intel.com>;
> Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Kinney, Michael
> D <michael.d.kinney@intel.com>
> Subject: RE: [edk2-devel] [PATCH 0/3] Add NULL IpmiCommandLib instance
> 
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
> 
> 
> Hi Abner,
> 
> Since this is moving content from edk2-platforms to edk2, we need to make
> sure that migration is coordinated with the edk2-platforms owners for the
> IPMPI feature and we have a transition plan for all downstream platform DSC
> files to use the content from the new location.  These types of changes can
> be very disruptive.
> 
> Also, since IPMI is an industry standard, it is allowed to add libraries that
> support industry standards to the MdePkg.  How was MdeModulePkg
> selected vs MdePkg?
> 
> Thanks,
> 
> Mike
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang,
> > Abner via groups.io
> > Sent: Tuesday, December 27, 2022 8:59 PM
> > To: devel@edk2.groups.io
> > Cc: Wang, Jian J <jian.j.wang@intel.com>; Gao, Liming
> > <gaoliming@byosoft.com.cn>; Nickle Wang <nicklew@nvidia.com>; Igor
> > Kulchytskyy <igork@ami.com>; Oram, Isaac W <isaac.w.oram@intel.com>;
> > Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>
> > Subject: [edk2-devel] [PATCH 0/3] Add NULL IpmiCommandLib instance
> >
> > From: Abner Chang <abner.chang@amd.com>
> >
> > BZ# 4231
> > This patch adds a NULL instance of IpmiCommandLib to remove the
> > dependence between edk2 and edk2-platform packages.
> >
> > Signed-off-by: Abner Chang <abner.chang@amd.com>
> > Cc: Jian J Wang <jian.j.wang@intel.com>
> > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > Cc: Nickle Wang <nicklew@nvidia.com>
> > Cc: Igor Kulchytskyy <igork@ami.com>
> > Cc: Isaac Oram <isaac.w.oram@intel.com>
> > Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> >
> > Abner Chang (3):
> >   MdeModulePkg/Include: Add IpmiCommandLib header file
> >   MdeModulePkg/IpmiCommandLib: Add NULL instance library
> >   MdeModulePkg: Add IpmiCommandLib
> >
> >  MdeModulePkg/MdeModulePkg.dec                 |   4 +
> >  MdeModulePkg/MdeModulePkg.dsc                 |   2 +
> >  .../BaseIpmiCommandLibNull.inf                |  32 +
> >  MdeModulePkg/Include/Library/IpmiCommandLib.h | 683
> ++++++++++++++++++
> >  .../IpmiCommandLibNetFnApp.c                  | 252 +++++++
> >  .../IpmiCommandLibNetFnChassis.c              | 123 ++++
> >  .../IpmiCommandLibNetFnStorage.c              | 248 +++++++
> >  .../IpmiCommandLibNetFnTransport.c            | 100 +++
> >  8 files changed, 1444 insertions(+)
> >  create mode 100644
> >
> MdeModulePkg/Library/BaseIpmiCommandLibNull/BaseIpmiCommandLibN
> ull.inf
> >  create mode 100644 MdeModulePkg/Include/Library/IpmiCommandLib.h
> >  create mode 100644
> >
> MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFn
> App.c
> >  create mode 100644
> >
> MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFn
> Chassis
> > .c  create mode 100644
> >
> MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnS
> torage
> > .c  create mode 100644
> >
> MdeModulePkg/Library/BaseIpmiCommandLibNull/IpmiCommandLibNetFnT
> ranspo
> > rt.c
> >
> > --
> > 2.37.1.windows.1
> >
> >
> >
> > 
> >


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


[AMD Official Use Only - General]



Thanks and sure, I will kick off the discussion on the mailing list.



Regards,

Abner



From: Oram, Isaac W <isaac.w.oram@intel.com>
Sent: Saturday, October 22, 2022 4:34 AM
To: Chang, Abner <Abner.Chang@amd.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>
Cc: nicklew@nvidia.com; Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com>
Subject: RE: Propose the ManageabilityPkg under edk2-platform/Features



        Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.



Abner,



From my perspective, this looks reasonable.  I think that we need to have the actual discussion on the mailing list so that our various customers can weigh in on the design and implementation.



Regards,

Isaac





From: Chang, Abner <Abner.Chang@amd.com<mailto:Abner.Chang@amd.com>>
Sent: Wednesday, October 19, 2022 11:08 PM
To: Gao, Liming <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>; Desimone, Nathaniel L <nathaniel.l.desimone@intel.com<mailto:nathaniel.l.desimone@intel.com>>; Oram, Isaac W <isaac.w.oram@intel.com<mailto:isaac.w.oram@intel.com>>
Cc: nicklew@nvidia.com<mailto:nicklew@nvidia.com>; Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com<mailto:AbdulLateef.Attar@amd.com>>
Subject: Propose the ManageabilityPkg under edk2-platform/Features



[AMD Official Use Only - General]



Hi Liming, Nate and Isaac,

This is Abner from AMD. I am writing to let you know that Nvidia and AMD is going propose a new package ManageabilityPkg under edk2-platforms/Features. We would like to provide the Feature driver, Protocol driver instance and transport implementation that includes PLDM, MCTP, IPMI and KCS industry standard under ManageabilityPkg for the server management. The concept of this package is to provide the driver stacks as shown in the below drafting,







We may also pull IpmiFeaturePkg out of Intel/OutOfBandManagement folder. Thus the IpmiFeaturePkg can be referred by the edk2 driver (e.g., Modules under RedfishPkg) without the Intel folder in the INF package section or add edk2-platforms/Feature/Intel to the PACKAGES_PATH (add edk2-platform to packages path is required) for the build. We will take care the backward compatibility issues of IpmiFeaturePkg relocation, however can only cover the issues in the scope of edk2-platform.



How do you think?



Thanks and Regards,

Abner



[AMD Official Use Only - General]


Hi all,

In order to having the full edk2 driver stack for the server manageability, we are going to propose a new package ManageabilityPkg under edk2-platforms/Features. We would like to have a package that can provide a simple framework to flexibly accommodate the manageability feature driver (e.g. PLDM, IPMI, Redfish), Protocol driver instance (e.g. MCTP) and transport implementation (e.g. KCS/I2C/PCIe VDM) for the server management. Below are the steps we would take for this work,

1.      The first step we would take is to move IpmiFeaturePkg out of edk2-platforms/Features/Intel/OutOfBandManagement/. Thus the IpmiFeaturePkg can be referred by the edk2 driver (e.g., Modules under RedfishPkg) without the Intel folder in the INF package section or add edk2-platforms/Features/Intel to the PACKAGES_PATH for the build (add edk2-platforms/Features to packages path is still required). We will take care of the backward compatibility issues of IpmiFeaturePkg relocation, however we can only cover the build issues in the scope of edk2-platforms repo.
2.      After this we will abstract the transport implementation from  IPMI Transport protocol, so the IPMI protocol can flexibly  incorporate with other transport implementations.
3.      Add IPMI feature driver/library (e.g. IPMI Redfish bootstrap account Credential)
4.      Add MCTP and PLDM driver stack with the same concept as IpmiFeaturePkg



Any recommendations to this work?

Thanks

Abner