From: "Xu, Wei6" <wei6.xu@intel.com>
To: devel@edk2.groups.io
Cc: Wei6 Xu <wei6.xu@intel.com>, Abner Chang <Abner.Chang@amd.com>,
Nate DeSimone <nathaniel.l.desimone@intel.com>,
Lixia Huang <lisa.huang@intel.com>
Subject: [edk2-devel] [PATCH edk2-platforms 4/4] IpmiFeaturePkg/BmcElog: Support Standalone MM
Date: Thu, 21 Dec 2023 01:01:45 +0800 [thread overview]
Message-ID: <2191e4b069e111eca0ecf0802f47496415fa98b5.1703090380.git.wei6.xu@intel.com> (raw)
In-Reply-To: <cover.1703090380.git.wei6.xu@intel.com>
Refactor BmcElog to support Standalone MM.
Remove unused code.
Cc: Abner Chang <Abner.Chang@amd.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@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/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2023-12-20 17:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-20 17:01 [edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: Support Standalone MM Xu, Wei6
2023-12-20 17:01 ` [edk2-devel] [PATCH edk2-platforms 1/4] IpmiFeaturePkg/ServerManagementLib: " Xu, Wei6
2023-12-20 17:01 ` [edk2-devel] [PATCH edk2-platforms 2/4] IpmiFeaturePkg/BmcAcpiSwChild: " Xu, Wei6
2023-12-20 17:01 ` [edk2-devel] [PATCH edk2-platforms 3/4] IpmiFeaturePkg/GenericElog: " Xu, Wei6
2023-12-20 17:01 ` Xu, Wei6 [this message]
2023-12-21 1:58 ` [edk2-devel] [PATCH edk2-platforms 0/4] IpmiFeaturePkg: " Nate DeSimone
2023-12-21 2:02 ` Nate DeSimone
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2191e4b069e111eca0ecf0802f47496415fa98b5.1703090380.git.wei6.xu@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox