[AMD Official Use Only - General]

Hi stakeholders,
Besides of below two IPMI related patch sets, we are going to implement IPMI 
Protocol on edk2-platforms. However, please help to review below two patches 
set then we can move forward.
https://edk2.groups.io/g/devel/message/98051
https://edk2.groups.io/g/devel/message/97769
The context of having above IPMI patches is here: 
https://github.com/tianocore/edk2/pull/3837

Implement IPMI Protocol driver on edk2-platforms IpmiFeaturePkg,

  *   Which is the connection between edk2 IpmiLib and edk2 IpmiBaseLib 
libraries.

Address the confusion of IpmiSubmitCommand() function naming between edk2 IPMI 
Protocol and edk2-platforms IPMI Transport Protocol, also between IpmiLib and 
IpmiBaseLib libraries.

  *   On edk2:

struct _IPMI_PROTOCOL {

  IPMI_SUBMIT_COMMAND    IpmiSubmitCommand;

};

  *   PEI/DXE/SMM library instances of IpmiLib have the reference of 
IPMI_PROTOCOL.
  *   No implementation of IPMI_PROTOCOL on edk2-platforms as I can see.



  *   On edk2-platforms:

struct _IPMI_TRANSPORT {

  UINT64                      Revision;

  IPMI_SEND_COMMAND           IpmiSubmitCommand;

  IPMI_GET_CHANNEL_STATUS     GetBmcStatus;

  EFI_HANDLE                  IpmiHandle;

  UINT8                       CompletionCode;

};



-     The function naming for IPMI_SEND_COMMAND is confusing, PPI one does the 
same.



Solution:
The process flow of IPMI functionality is:
edk2 module ==> IpmiLib (edk2) library class IpmiSubmitCommand()  ==> IPMI 
protocol driver(edk2-platforms) ==> IpmiBaseLib(edk2-platforms)  library class 
IpmiSendCommand() ==>IPMI Transport Protocol driver (edk2-platforms)
Three patches the solution,

Patch 1/3: Rename IPMI_TRANSPORT. IpmiSubmitCommand()  to IPMI_TRANSPORT. 
IpmiSendCommand() in the protocol structure. Also address the impacts on other 
edk2-platform modules.

Patch 2/3: Rename IpmiSubmitCommand() in IpmiBaseLib library to 
IpmiSendCommand(). Also address the impacts on other edk2-platform modules.

Patch 3/3: Implement IPMI_PROTOCOL on edk2-platform, this module has the 
reference of IpmiBaseLib.h from edk2-platforms and IpmiTransport.h from edk2.

Impacts,
On edk2-platforms: Most of impacts are on IpmiFeaturePkg itself except one 
impact on PuleyOpenBoardPkg.
It should be not a big problem to other edk2 modules that uses 
IpmiSubmitCommand() already. They can update their code to use the PEI/DXE/SMM 
IpmiLib library instance from edk2 and add the reference of IPMI_PROTOCOL 
driver from edk2-platforms in the DSC file.

We will proceed the code change if you (especially to IPMI owner) agree with 
this.

Regards,
Abner





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


Reply via email to