Re: [edk2-devel] [PATCH v4 7/9] ManageabilityPkg: Implement Ipmi Protocol/Ppi

2023-04-15 Thread Chang, Abner via groups.io
[AMD Official Use Only - General]



> -Original Message-
> From: Chang, Abner
> Sent: Saturday, April 15, 2023 4:39 PM
> To: Tinh Nguyen ;
> devel@edk2.groups.io
> Cc: Liming Gao ; Isaac Oram
> ; Nate DeSimone
> ; Attar, AbdulLateef (Abdul Lateef)
> ; Nickle Wang ; Igor
> Kulchytskyy 
> Subject: RE: [edk2-devel] [PATCH v4 7/9] ManageabilityPkg: Implement Ipmi
> Protocol/Ppi
> 
> [AMD Official Use Only - General]
> 
> 
> 
> > -Original Message-
> > From: Tinh Nguyen 
> > Sent: Friday, March 24, 2023 3:41 AM
> > To: devel@edk2.groups.io; Chang, Abner 
> > Cc: Liming Gao ; Isaac Oram
> > ; Nate DeSimone
> > ; Attar, AbdulLateef (Abdul Lateef)
> > ; Nickle Wang ; Igor
> > Kulchytskyy 
> > Subject: Re: [edk2-devel] [PATCH v4 7/9] ManageabilityPkg: Implement
> Ipmi
> > Protocol/Ppi
> >
> > Caution: This message originated from an External Source. Use proper
> > caution when opening attachments, clicking links, or responding.
> >
> >
> > Hi Abner,
> >
> >
> > On 3/22/2023 9:48 AM, Chang, Abner via groups.io wrote:
> > > From: Abner Chang 
> > >
> > > Add Ipmi Protocol/Ppi/SMM implementations.
> > > The underlying implementation of transport interface depends on the
> > > binded ManageabilityTransportLib.
> > >
> > > Signed-off-by: Abner Chang 
> > > Cc: Liming Gao 
> > > Cc: Isaac Oram 
> > > Cc: Nate DeSimone 
> > > Cc: Abdul Lateef Attar 
> > > Cc: Nickle Wang 
> > > Cc: Igor Kulchytskyy 
> > > ---
> > >   .../IpmiProtocol/Dxe/IpmiProtocolDxe.inf  |  50 
> > >   .../Universal/IpmiProtocol/Pei/IpmiPpiPei.inf |  53 
> > >   .../IpmiProtocol/Smm/IpmiProtocolSmm.inf  |  52 
> > >   .../IpmiProtocol/Common/IpmiProtocolCommon.h  | 108 
> > >   .../IpmiProtocol/Pei/IpmiPpiInternal.h|  25 ++
> > >   .../IpmiProtocol/Common/IpmiProtocolCommon.c  | 252
> > ++
> > >   .../Universal/IpmiProtocol/Dxe/IpmiProtocol.c | 177 
> > >   .../Universal/IpmiProtocol/Pei/IpmiPpi.c  | 159 +++
> > >   .../Universal/IpmiProtocol/Smm/IpmiProtocol.c | 147 ++
> > >   9 files changed, 1023 insertions(+)
> > >   create mode 100644
> >
> Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.in
> > f
> > >   create mode 100644
> > Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
> > >   create mode 100644
> >
> Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm
> > .inf
> > >   create mode 100644
> >
> Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolC
> > ommon.h
> > >   create mode 100644
> > Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiInternal.h
> > >   create mode 100644
> >
> Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolC
> > ommon.c
> > >   create mode 100644
> > Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocol.c
> > >   create mode 100644
> > Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpi.c
> > >   create mode 100644
> > > Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocol.c
> > >
> > > diff --git
> > >
> >
> a/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe
> > > .inf
> > >
> >
> b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe
> > > .inf
> > > new file mode 100644
> > > index 00..ff5ec56c73
> > > --- /dev/null
> > > +++
> > b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtoco
> > > +++ lDxe.inf
> > > @@ -0,0 +1,50 @@
> > > +## @file
> > > +# IPMI Protocol DXE Driver.
> > > +#
> > > +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights
> > > +reserved. # SPDX-License-Identifier: BSD-2-Clause-Patent ##
> > > +
> > > +[Defines]
> > > +  INF_VERSION= 0x0001001d
> > > +  BASE_NAME  = IpmiDxe
> > > +  FILE_GUID  = BC41B0C2-9D8A-42B5-A28F-02CE0D4A6C28
> > > +  MODULE_TYPE= DXE_DRIVER
> > > +  VERSION_STRING = 1.0
> > > +  ENTRY_POINT= DxeIpmiEntry
> > > +  UNLOAD_IMAGE   = IpmiUnloadImage
> > > +
> > > +#
> > > +#  VALID_ARCHITECTURES  

Re: [edk2-devel] [PATCH v4 7/9] ManageabilityPkg: Implement Ipmi Protocol/Ppi

2023-04-15 Thread Chang, Abner via groups.io
[AMD Official Use Only - General]



> -Original Message-
> From: Tinh Nguyen 
> Sent: Friday, March 24, 2023 3:41 AM
> To: devel@edk2.groups.io; Chang, Abner 
> Cc: Liming Gao ; Isaac Oram
> ; Nate DeSimone
> ; Attar, AbdulLateef (Abdul Lateef)
> ; Nickle Wang ; Igor
> Kulchytskyy 
> Subject: Re: [edk2-devel] [PATCH v4 7/9] ManageabilityPkg: Implement Ipmi
> Protocol/Ppi
> 
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
> 
> 
> Hi Abner,
> 
> 
> On 3/22/2023 9:48 AM, Chang, Abner via groups.io wrote:
> > From: Abner Chang 
> >
> > Add Ipmi Protocol/Ppi/SMM implementations.
> > The underlying implementation of transport interface depends on the
> > binded ManageabilityTransportLib.
> >
> > Signed-off-by: Abner Chang 
> > Cc: Liming Gao 
> > Cc: Isaac Oram 
> > Cc: Nate DeSimone 
> > Cc: Abdul Lateef Attar 
> > Cc: Nickle Wang 
> > Cc: Igor Kulchytskyy 
> > ---
> >   .../IpmiProtocol/Dxe/IpmiProtocolDxe.inf  |  50 
> >   .../Universal/IpmiProtocol/Pei/IpmiPpiPei.inf |  53 
> >   .../IpmiProtocol/Smm/IpmiProtocolSmm.inf  |  52 
> >   .../IpmiProtocol/Common/IpmiProtocolCommon.h  | 108 
> >   .../IpmiProtocol/Pei/IpmiPpiInternal.h|  25 ++
> >   .../IpmiProtocol/Common/IpmiProtocolCommon.c  | 252
> ++
> >   .../Universal/IpmiProtocol/Dxe/IpmiProtocol.c | 177 
> >   .../Universal/IpmiProtocol/Pei/IpmiPpi.c  | 159 +++
> >   .../Universal/IpmiProtocol/Smm/IpmiProtocol.c | 147 ++
> >   9 files changed, 1023 insertions(+)
> >   create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.in
> f
> >   create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
> >   create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm
> .inf
> >   create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolC
> ommon.h
> >   create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiInternal.h
> >   create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolC
> ommon.c
> >   create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocol.c
> >   create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpi.c
> >   create mode 100644
> > Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocol.c
> >
> > diff --git
> >
> a/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe
> > .inf
> >
> b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe
> > .inf
> > new file mode 100644
> > index 00..ff5ec56c73
> > --- /dev/null
> > +++
> b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtoco
> > +++ lDxe.inf
> > @@ -0,0 +1,50 @@
> > +## @file
> > +# IPMI Protocol DXE Driver.
> > +#
> > +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights
> > +reserved. # SPDX-License-Identifier: BSD-2-Clause-Patent ##
> > +
> > +[Defines]
> > +  INF_VERSION= 0x0001001d
> > +  BASE_NAME  = IpmiDxe
> > +  FILE_GUID  = BC41B0C2-9D8A-42B5-A28F-02CE0D4A6C28
> > +  MODULE_TYPE= DXE_DRIVER
> > +  VERSION_STRING = 1.0
> > +  ENTRY_POINT= DxeIpmiEntry
> > +  UNLOAD_IMAGE   = IpmiUnloadImage
> > +
> > +#
> > +#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
> > +#
> > +
> > +[Sources]
> > +  IpmiProtocol.c
> > +  ../Common/IpmiProtocolCommon.c
> > +  ../Common/IpmiProtocolCommon.h
> > +
> > +[Packages]
> > +  MdePkg/MdePkg.dec
> > +  MdeModulePkg/MdeModulePkg.dec
> > +  ManageabilityPkg/ManageabilityPkg.dec
> > +
> > +[LibraryClasses]
> > +  BaseMemoryLib
> > +  DebugLib
> > +  ManageabilityTransportHelperLib
> > +  ManageabilityTransportLib
> > +  UefiDriverEntryPoint
> > +  UefiBootServicesTableLib
> > +
> > +[Protocols]
> > +  gIpmiProtocolGuid   # PROTOCOL ALWAYS_PRODUCED
> > +
> > +[Guids]
> > +  gManageabilityProtocolIpmiGuid
> > +  gManageabilityTransportKcsGuid
> > +
> > +[FixedPcd]
> > +  gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress
> > +
> > +[Depex]
> >

Re: [edk2-devel] [PATCH v4 7/9] ManageabilityPkg: Implement Ipmi Protocol/Ppi

2023-03-24 Thread Nickle Wang via groups.io
Reviewed-by: Nickle Wang 

Regards,
Nickle

> -Original Message-
> From: abner.ch...@amd.com 
> Sent: Wednesday, March 22, 2023 10:49 AM
> To: devel@edk2.groups.io
> Cc: Liming Gao ; Isaac Oram
> ; Nate DeSimone ;
> Abdul Lateef Attar ; Nickle Wang ;
> Igor Kulchytskyy 
> Subject: [PATCH v4 7/9] ManageabilityPkg: Implement Ipmi Protocol/Ppi
> 
> External email: Use caution opening links or attachments
> 
> 
> From: Abner Chang 
> 
> Add Ipmi Protocol/Ppi/SMM implementations.
> The underlying implementation of transport
> interface depends on the binded
> ManageabilityTransportLib.
> 
> Signed-off-by: Abner Chang 
> Cc: Liming Gao 
> Cc: Isaac Oram 
> Cc: Nate DeSimone 
> Cc: Abdul Lateef Attar 
> Cc: Nickle Wang 
> Cc: Igor Kulchytskyy 
> ---
>  .../IpmiProtocol/Dxe/IpmiProtocolDxe.inf  |  50 
>  .../Universal/IpmiProtocol/Pei/IpmiPpiPei.inf |  53 
>  .../IpmiProtocol/Smm/IpmiProtocolSmm.inf  |  52 
>  .../IpmiProtocol/Common/IpmiProtocolCommon.h  | 108 
>  .../IpmiProtocol/Pei/IpmiPpiInternal.h|  25 ++
>  .../IpmiProtocol/Common/IpmiProtocolCommon.c  | 252
> ++
>  .../Universal/IpmiProtocol/Dxe/IpmiProtocol.c | 177 
>  .../Universal/IpmiProtocol/Pei/IpmiPpi.c  | 159 +++
>  .../Universal/IpmiProtocol/Smm/IpmiProtocol.c | 147 ++
>  9 files changed, 1023 insertions(+)
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm.inf
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolCom
> mon.h
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiInternal.h
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolCom
> mon.c
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocol.c
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpi.c
>  create mode 100644
> Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocol.c
> 
> diff --git
> a/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
> b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
> new file mode 100644
> index 00..ff5ec56c73
> --- /dev/null
> +++
> b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
> @@ -0,0 +1,50 @@
> +## @file
> +# IPMI Protocol DXE Driver.
> +#
> +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +##
> +
> +[Defines]
> +  INF_VERSION= 0x0001001d
> +  BASE_NAME  = IpmiDxe
> +  FILE_GUID  = BC41B0C2-9D8A-42B5-A28F-02CE0D4A6C28
> +  MODULE_TYPE= DXE_DRIVER
> +  VERSION_STRING = 1.0
> +  ENTRY_POINT= DxeIpmiEntry
> +  UNLOAD_IMAGE   = IpmiUnloadImage
> +
> +#
> +#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
> +#
> +
> +[Sources]
> +  IpmiProtocol.c
> +  ../Common/IpmiProtocolCommon.c
> +  ../Common/IpmiProtocolCommon.h
> +
> +[Packages]
> +  MdePkg/MdePkg.dec
> +  MdeModulePkg/MdeModulePkg.dec
> +  ManageabilityPkg/ManageabilityPkg.dec
> +
> +[LibraryClasses]
> +  BaseMemoryLib
> +  DebugLib
> +  ManageabilityTransportHelperLib
> +  ManageabilityTransportLib
> +  UefiDriverEntryPoint
> +  UefiBootServicesTableLib
> +
> +[Protocols]
> +  gIpmiProtocolGuid   # PROTOCOL ALWAYS_PRODUCED
> +
> +[Guids]
> +  gManageabilityProtocolIpmiGuid
> +  gManageabilityTransportKcsGuid
> +
> +[FixedPcd]
> +  gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress
> +
> +[Depex]
> +  TRUE
> diff --git
> a/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
> b/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
> new file mode 100644
> index 00..4e00693f64
> --- /dev/null
> +++ b/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
> @@ -0,0 +1,53 @@
> +## @file
> +# IPMI Protocol PEI Driver.
> +#
> +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +##
> +
> +[Defines]
> +  INF_VERSION= 0x0001001d
> +  BASE_NAME  = IpmiPei
> +  FILE_GUID  = 7832F989-CB72-4715-ADCA-35C0B031856C
> +  MODULE_TYPE= PEIM
> +  VERSION_STRING = 1.0
> +  ENTRY_POINT= PeiIpmiEntry
> +
> +#
> +# The following information is for reference only and not required by the 
> build
> tools.
> +#
> +#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
> +#
> +
> +[Sources]
> +  IpmiPpi.c
> +  IpmiPpiInternal.h
> +  ../Common/IpmiProtocolCommon.c
> +  ../Common/IpmiProt

Re: [edk2-devel] [PATCH v4 7/9] ManageabilityPkg: Implement Ipmi Protocol/Ppi

2023-03-23 Thread Tinh Nguyen via groups.io

Hi Abner,


On 3/22/2023 9:48 AM, Chang, Abner via groups.io wrote:

From: Abner Chang 

Add Ipmi Protocol/Ppi/SMM implementations.
The underlying implementation of transport
interface depends on the binded
ManageabilityTransportLib.

Signed-off-by: Abner Chang 
Cc: Liming Gao 
Cc: Isaac Oram 
Cc: Nate DeSimone 
Cc: Abdul Lateef Attar 
Cc: Nickle Wang 
Cc: Igor Kulchytskyy 
---
  .../IpmiProtocol/Dxe/IpmiProtocolDxe.inf  |  50 
  .../Universal/IpmiProtocol/Pei/IpmiPpiPei.inf |  53 
  .../IpmiProtocol/Smm/IpmiProtocolSmm.inf  |  52 
  .../IpmiProtocol/Common/IpmiProtocolCommon.h  | 108 
  .../IpmiProtocol/Pei/IpmiPpiInternal.h|  25 ++
  .../IpmiProtocol/Common/IpmiProtocolCommon.c  | 252 ++
  .../Universal/IpmiProtocol/Dxe/IpmiProtocol.c | 177 
  .../Universal/IpmiProtocol/Pei/IpmiPpi.c  | 159 +++
  .../Universal/IpmiProtocol/Smm/IpmiProtocol.c | 147 ++
  9 files changed, 1023 insertions(+)
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm.inf
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolCommon.h
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiInternal.h
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolCommon.c
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocol.c
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpi.c
  create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocol.c

diff --git 
a/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf 
b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
new file mode 100644
index 00..ff5ec56c73
--- /dev/null
+++ b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
@@ -0,0 +1,50 @@
+## @file
+# IPMI Protocol DXE Driver.
+#
+# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+  INF_VERSION= 0x0001001d
+  BASE_NAME  = IpmiDxe
+  FILE_GUID  = BC41B0C2-9D8A-42B5-A28F-02CE0D4A6C28
+  MODULE_TYPE= DXE_DRIVER
+  VERSION_STRING = 1.0
+  ENTRY_POINT= DxeIpmiEntry
+  UNLOAD_IMAGE   = IpmiUnloadImage
+
+#
+#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
+#
+
+[Sources]
+  IpmiProtocol.c
+  ../Common/IpmiProtocolCommon.c
+  ../Common/IpmiProtocolCommon.h
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  ManageabilityPkg/ManageabilityPkg.dec
+
+[LibraryClasses]
+  BaseMemoryLib
+  DebugLib
+  ManageabilityTransportHelperLib
+  ManageabilityTransportLib
+  UefiDriverEntryPoint
+  UefiBootServicesTableLib
+
+[Protocols]
+  gIpmiProtocolGuid   # PROTOCOL ALWAYS_PRODUCED
+
+[Guids]
+  gManageabilityProtocolIpmiGuid
+  gManageabilityTransportKcsGuid
+
+[FixedPcd]
+  gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress
+
+[Depex]
+  TRUE
diff --git 
a/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf 
b/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
new file mode 100644
index 00..4e00693f64
--- /dev/null
+++ b/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
@@ -0,0 +1,53 @@
+## @file
+# IPMI Protocol PEI Driver.
+#
+# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+  INF_VERSION= 0x0001001d
+  BASE_NAME  = IpmiPei
+  FILE_GUID  = 7832F989-CB72-4715-ADCA-35C0B031856C
+  MODULE_TYPE= PEIM
+  VERSION_STRING = 1.0
+  ENTRY_POINT= PeiIpmiEntry
+
+#
+# The following information is for reference only and not required by the 
build tools.
+#
+#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
+#
+
+[Sources]
+  IpmiPpi.c
+  IpmiPpiInternal.h
+  ../Common/IpmiProtocolCommon.c
+  ../Common/IpmiProtocolCommon.h
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  ManageabilityPkg/ManageabilityPkg.dec
+
+[LibraryClasses]
+  BaseMemoryLib
+  DebugLib
+  MemoryAllocationLib
+  ManageabilityTransportHelperLib
+  ManageabilityTransportLib
+  PeimEntryPoint
+  ManageabilityTransportLib

Duplicate ManageabilityTransportLib

+
+[Ppis]
+  gPeiIpmiPpiGuid   # PPI ALWAYS PRODUCED
+
+[Guids]
+  gManageabilityProtocolIpmiGuid
+  gManageabilityTransportKcsGuid
+
+[FixedPcd]
+  gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress
+
+[Depex]
+  TRUE
diff --git 
a/Features/ManageabilityPkg/U

[edk2-devel] [PATCH v4 7/9] ManageabilityPkg: Implement Ipmi Protocol/Ppi

2023-03-21 Thread Chang, Abner via groups.io
From: Abner Chang 

Add Ipmi Protocol/Ppi/SMM implementations.
The underlying implementation of transport
interface depends on the binded
ManageabilityTransportLib.

Signed-off-by: Abner Chang 
Cc: Liming Gao 
Cc: Isaac Oram 
Cc: Nate DeSimone 
Cc: Abdul Lateef Attar 
Cc: Nickle Wang 
Cc: Igor Kulchytskyy 
---
 .../IpmiProtocol/Dxe/IpmiProtocolDxe.inf  |  50 
 .../Universal/IpmiProtocol/Pei/IpmiPpiPei.inf |  53 
 .../IpmiProtocol/Smm/IpmiProtocolSmm.inf  |  52 
 .../IpmiProtocol/Common/IpmiProtocolCommon.h  | 108 
 .../IpmiProtocol/Pei/IpmiPpiInternal.h|  25 ++
 .../IpmiProtocol/Common/IpmiProtocolCommon.c  | 252 ++
 .../Universal/IpmiProtocol/Dxe/IpmiProtocol.c | 177 
 .../Universal/IpmiProtocol/Pei/IpmiPpi.c  | 159 +++
 .../Universal/IpmiProtocol/Smm/IpmiProtocol.c | 147 ++
 9 files changed, 1023 insertions(+)
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm.inf
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolCommon.h
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiInternal.h
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Common/IpmiProtocolCommon.c
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocol.c
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpi.c
 create mode 100644 
Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocol.c

diff --git 
a/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf 
b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
new file mode 100644
index 00..ff5ec56c73
--- /dev/null
+++ b/Features/ManageabilityPkg/Universal/IpmiProtocol/Dxe/IpmiProtocolDxe.inf
@@ -0,0 +1,50 @@
+## @file
+# IPMI Protocol DXE Driver.
+#
+# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+  INF_VERSION= 0x0001001d
+  BASE_NAME  = IpmiDxe
+  FILE_GUID  = BC41B0C2-9D8A-42B5-A28F-02CE0D4A6C28
+  MODULE_TYPE= DXE_DRIVER
+  VERSION_STRING = 1.0
+  ENTRY_POINT= DxeIpmiEntry
+  UNLOAD_IMAGE   = IpmiUnloadImage
+
+#
+#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
+#
+
+[Sources]
+  IpmiProtocol.c
+  ../Common/IpmiProtocolCommon.c
+  ../Common/IpmiProtocolCommon.h
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  ManageabilityPkg/ManageabilityPkg.dec
+
+[LibraryClasses]
+  BaseMemoryLib
+  DebugLib
+  ManageabilityTransportHelperLib
+  ManageabilityTransportLib
+  UefiDriverEntryPoint
+  UefiBootServicesTableLib
+
+[Protocols]
+  gIpmiProtocolGuid   # PROTOCOL ALWAYS_PRODUCED
+
+[Guids]
+  gManageabilityProtocolIpmiGuid
+  gManageabilityTransportKcsGuid
+
+[FixedPcd]
+  gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress
+
+[Depex]
+  TRUE
diff --git 
a/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf 
b/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
new file mode 100644
index 00..4e00693f64
--- /dev/null
+++ b/Features/ManageabilityPkg/Universal/IpmiProtocol/Pei/IpmiPpiPei.inf
@@ -0,0 +1,53 @@
+## @file
+# IPMI Protocol PEI Driver.
+#
+# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+  INF_VERSION= 0x0001001d
+  BASE_NAME  = IpmiPei
+  FILE_GUID  = 7832F989-CB72-4715-ADCA-35C0B031856C
+  MODULE_TYPE= PEIM
+  VERSION_STRING = 1.0
+  ENTRY_POINT= PeiIpmiEntry
+
+#
+# The following information is for reference only and not required by the 
build tools.
+#
+#  VALID_ARCHITECTURES   = IA32 X64 ARM AARCH64
+#
+
+[Sources]
+  IpmiPpi.c
+  IpmiPpiInternal.h
+  ../Common/IpmiProtocolCommon.c
+  ../Common/IpmiProtocolCommon.h
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+  ManageabilityPkg/ManageabilityPkg.dec
+
+[LibraryClasses]
+  BaseMemoryLib
+  DebugLib
+  MemoryAllocationLib
+  ManageabilityTransportHelperLib
+  ManageabilityTransportLib
+  PeimEntryPoint
+  ManageabilityTransportLib
+
+[Ppis]
+  gPeiIpmiPpiGuid   # PPI ALWAYS PRODUCED
+
+[Guids]
+  gManageabilityProtocolIpmiGuid
+  gManageabilityTransportKcsGuid
+
+[FixedPcd]
+  gEfiMdePkgTokenSpaceGuid.PcdIpmiKcsBaseAddress
+
+[Depex]
+  TRUE
diff --git 
a/Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm.inf 
b/Features/ManageabilityPkg/Universal/IpmiProtocol/Smm/IpmiProtocolSmm.inf
new f