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] -=-=-=-=-=-=-=-=-=-=-=-