Refactor BmcElog to support Standalone MM.
Remove unused code.

Cc: Abner Chang <abner.ch...@amd.com>
Cc: Nate DeSimone <nathaniel.l.desim...@intel.com>
Signed-off-by: Lixia Huang <lisa.hu...@intel.com>
---
 .../IpmiFeaturePkg/BmcElog/Smm/BmcElog.c      | 14 ++----
 .../IpmiFeaturePkg/BmcElog/Smm/BmcElog.h      | 15 +++++--
 .../BmcElog/Smm/BmcElogStandaloneMm.c         | 28 ++++++++++++
 .../BmcElog/Smm/BmcElogTraditionalMm.c        | 28 ++++++++++++
 .../IpmiFeaturePkg/BmcElog/SmmBmcElog.inf     |  6 +--
 .../BmcElog/StandaloneMmBmcElog.inf           | 44 +++++++++++++++++++
 .../IpmiFeaturePkg/Include/IpmiFeature.dsc    |  1 +
 7 files changed, 119 insertions(+), 17 deletions(-)
 create mode 100644 
Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElogStandaloneMm.c
 create mode 100644 
Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElogTraditionalMm.c
 create mode 100644 
Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/StandaloneMmBmcElog.inf

diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.c 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.c
index efaa61f43869..0c166f733a7d 100644
--- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.c
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.c
@@ -228,7 +228,7 @@ SetElogRedirInstall (
   // Now install the Protocol
   //
   NewHandle = NULL;
-  Status    = gSmst->SmmInstallProtocolInterface (
+  Status    = gMmst->MmInstallProtocolInterface (
                        &NewHandle,
                        &gSmmRedirElogProtocolGuid,
                        EFI_NATIVE_INTERFACE,
@@ -249,28 +249,20 @@ SetElogRedirInstall (
 }
 
 /**
-  InitializeBmcElogLayer.
-
-  @param ImageHandle - ImageHandle of the loaded driver
-  @param SystemTable - Pointer to the System Table
+  InitializeSmBmcElogLayer.
 
   @retval EFI_STATUS
 
 **/
 EFI_STATUS
-EFIAPI
 InitializeSmBmcElogLayer (
-  IN EFI_HANDLE        ImageHandle,
-  IN EFI_SYSTEM_TABLE  *SystemTable
+  VOID
   )
 {
   EFI_STATUS  Status;
 
   Status = EFI_SUCCESS;
 
-  gST = SystemTable;
-  gBS = gST->BootServices;
-
   mRedirProtoPrivate = AllocatePool (sizeof (EFI_BMC_ELOG_INSTANCE_DATA));
   ASSERT (mRedirProtoPrivate != NULL);
   if (mRedirProtoPrivate == NULL) {
diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.h 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.h
index 218af380a229..89680f2f0ff1 100644
--- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.h
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElog.h
@@ -13,9 +13,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 // Statements that include other files
 //
 
-#include <Library/SmmServicesTableLib.h>
-#include <Library/SmmLib.h>
-#include <Library/UefiBootServicesTableLib.h>
+#include <Library/MmServicesTableLib.h>
 #include <Protocol/IpmiTransportProtocol.h>
 #include <Protocol/GenericElog.h>
 #include "BmcElogCommon.h"
@@ -40,4 +38,15 @@ typedef struct {
 
 #define INSTANCE_FROM_EFI_SM_ELOG_REDIR_THIS(a)  CR (a, 
EFI_BMC_ELOG_INSTANCE_DATA, BmcElog, SM_ELOG_REDIR_SIGNATURE)
 
+/**
+  InitializeSmBmcElogLayer.
+
+  @retval EFI_STATUS
+
+**/
+EFI_STATUS
+InitializeSmBmcElogLayer (
+  VOID
+  );
+
 #endif //_SMM_BMCELOG_H_
diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElogStandaloneMm.c
 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElogStandaloneMm.c
new file mode 100644
index 000000000000..1d883a6cd1e7
--- /dev/null
+++ 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElogStandaloneMm.c
@@ -0,0 +1,28 @@
+/** @file
+  Entry Piont of Bmc Elog Standalone MM Driver.
+
+Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "BmcElog.h"
+
+/**
+  InitializeBmcElogLayerStandaloneMm.
+
+  @param[in] ImageHandle   ImageHandle of the loaded driver
+  @param[in] SystemTable   Pointer to the MM System Table
+
+  @retval EFI_STATUS
+
+**/
+EFI_STATUS
+EFIAPI
+InitializeSmBmcElogLayerStandaloneMm (
+  IN EFI_HANDLE           ImageHandle,
+  IN EFI_MM_SYSTEM_TABLE  *SystemTable
+  )
+{
+  return InitializeSmBmcElogLayer ();
+}
diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElogTraditionalMm.c
 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElogTraditionalMm.c
new file mode 100644
index 000000000000..16113f8bec27
--- /dev/null
+++ 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/Smm/BmcElogTraditionalMm.c
@@ -0,0 +1,28 @@
+/** @file
+  Entry Piont of Bmc Elog SMM Driver.
+
+Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "BmcElog.h"
+
+/**
+  InitializeBmcElogLayerSmm.
+
+  @param[in] ImageHandle   ImageHandle of the loaded driver
+  @param[in] SystemTable   Pointer to the System Table
+
+  @retval EFI_STATUS
+
+**/
+EFI_STATUS
+EFIAPI
+InitializeSmBmcElogLayerSmm (
+  IN EFI_HANDLE        ImageHandle,
+  IN EFI_SYSTEM_TABLE  *SystemTable
+  )
+{
+  return InitializeSmBmcElogLayer ();
+}
diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/SmmBmcElog.inf 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/SmmBmcElog.inf
index d6880f8baa1b..8fa60fe6ac02 100644
--- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/SmmBmcElog.inf
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/SmmBmcElog.inf
@@ -14,11 +14,12 @@
   MODULE_TYPE              = DXE_SMM_DRIVER
   PI_SPECIFICATION_VERSION = 0x0001000A
   VERSION_STRING           = 1.0
-  ENTRY_POINT              = InitializeSmBmcElogLayer
+  ENTRY_POINT              = InitializeSmBmcElogLayerSmm
 
 [Sources]
   Smm/BmcElog.c
   Smm/BmcElog.h
+  Smm/BmcElogTraditionalMm.c
   Common/BmcElogCommon.h
   Common/BmcElogCommon.c
 
@@ -30,9 +31,8 @@
 [LibraryClasses]
   UefiDriverEntryPoint
   DebugLib
-  UefiBootServicesTableLib
   ReportStatusCodeLib
-  SmmServicesTableLib
+  MmServicesTableLib
   IpmiBaseLib
 
 [Protocols]
diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/StandaloneMmBmcElog.inf
 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/StandaloneMmBmcElog.inf
new file mode 100644
index 000000000000..9a229ab7abac
--- /dev/null
+++ 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/BmcElog/StandaloneMmBmcElog.inf
@@ -0,0 +1,44 @@
+### @file
+#
+# Copyright (c) 2023, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+###
+
+
+[Defines]
+  INF_VERSION              = 0x00010005
+  BASE_NAME                = SmBmcElogStandaloneMm
+  FILE_GUID                = 802bc368-2f35-4fb5-9675-bf76a7601690
+  MODULE_TYPE              = MM_STANDALONE
+  PI_SPECIFICATION_VERSION = 0x00010032
+  VERSION_STRING           = 1.0
+  ENTRY_POINT              = InitializeSmBmcElogLayerStandaloneMm
+
+[Sources]
+  Smm/BmcElog.c
+  Smm/BmcElog.h
+  Smm/BmcElogStandaloneMm.c
+  Common/BmcElogCommon.h
+  Common/BmcElogCommon.c
+
+[Packages]
+  IpmiFeaturePkg/IpmiFeaturePkg.dec
+  MdePkg/MdePkg.dec
+  MdeModulePkg/MdeModulePkg.dec
+
+[LibraryClasses]
+  StandaloneMmDriverEntryPoint
+  DebugLib
+  ReportStatusCodeLib
+  MmServicesTableLib
+  IpmiBaseLib
+
+[Protocols]
+  gSmmRedirElogProtocolGuid   # PROTOCOL ALWAYS_PRODUCED
+
+[Depex]
+  gEfiLoadedImageProtocolGuid AND
+  gSmmIpmiTransportProtocolGuid
+
diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc
index 12060d156ef4..bf8244469063 100644
--- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc
+++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc
@@ -130,6 +130,7 @@
   IpmiFeaturePkg/BmcAcpiSwChild/BmcAcpiSwChildStandaloneMm.inf
   IpmiFeaturePkg/BmcElog/DxeBmcElog.inf
   IpmiFeaturePkg/BmcElog/SmmBmcElog.inf
+  IpmiFeaturePkg/BmcElog/StandaloneMmBmcElog.inf
   IpmiFeaturePkg/GenericElog/Dxe/GenericElog.inf
   IpmiFeaturePkg/GenericElog/Smm/GenericElog.inf
   IpmiFeaturePkg/GenericElog/Smm/GenericElogStandaloneMm.inf
-- 
2.29.2.windows.2



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


Reply via email to