From db03bf1d9dd7741571fbd9ad597add36ef4250d5 Mon Sep 17 00:00:00 2001 From: Oliver Smith-Denny Date: Wed, 29 Jan 2025 13:19:54 -0800 Subject: StandaloneMmPkg: Consume X64 StandaloneMmCoreEntryPoint From MdePkg Now that the X64 StandaloneMmCoreEntryPoint has been moved to MdePkg, it can be removed from StandaloneMmPkg and consumed from MdePpkg. Signed-off-by: Oliver Smith-Denny --- .../Include/Library/StandaloneMmCoreEntryPoint.h | 91 ---------------------- .../StandaloneMmCoreEntryPoint.inf | 49 ------------ .../X64/StandaloneMmCoreEntryPoint.c | 69 ---------------- StandaloneMmPkg/StandaloneMmPkg.dec | 3 - StandaloneMmPkg/StandaloneMmPkg.dsc | 3 +- 5 files changed, 1 insertion(+), 214 deletions(-) delete mode 100644 StandaloneMmPkg/Include/Library/StandaloneMmCoreEntryPoint.h delete mode 100644 StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf delete mode 100644 StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/StandaloneMmCoreEntryPoint.c diff --git a/StandaloneMmPkg/Include/Library/StandaloneMmCoreEntryPoint.h b/StandaloneMmPkg/Include/Library/StandaloneMmCoreEntryPoint.h deleted file mode 100644 index 4e88482230..0000000000 --- a/StandaloneMmPkg/Include/Library/StandaloneMmCoreEntryPoint.h +++ /dev/null @@ -1,91 +0,0 @@ -/** @file - Module entry point library for STANDALONE MM core. - -Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
-Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.
- -SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __MODULE_ENTRY_POINT_H__ -#define __MODULE_ENTRY_POINT_H__ - -/// -/// Global variable that contains a pointer to the Hob List passed into the STANDALONE MM Core entry point. -/// -extern VOID *gHobList; - -/** - The entry point of PE/COFF Image for the STANDALONE MM Core. - - This function is the entry point for the STANDALONE MM Core. This function is required to call - ProcessModuleEntryPointList() and ProcessModuleEntryPointList() is never expected to return. - The STANDALONE MM Core is responsible for calling ProcessLibraryConstructorList() as soon as the EFI - System Table and the image handle for the STANDALONE MM Core itself have been established. - If ProcessModuleEntryPointList() returns, then ASSERT() and halt the system. - - @param HobStart Pointer to the beginning of the HOB List passed in from the PEI Phase. - -**/ -VOID -EFIAPI -_ModuleEntryPoint ( - IN VOID *HobStart - ); - -/** - Required by the EBC compiler and identical in functionality to _ModuleEntryPoint(). - - This function is required to call _ModuleEntryPoint() passing in HobStart. - - @param HobStart Pointer to the beginning of the HOB List passed in from the PEI Phase. - -**/ -VOID -EFIAPI -EfiMain ( - IN VOID *HobStart - ); - -/** - Auto generated function that calls the library constructors for all of the module's dependent libraries. - - This function must be called by _ModuleEntryPoint(). - This function calls the set of library constructors for the set of library instances - that a module depends on. This includes library instances that a module depends on - directly and library instances that a module depends on indirectly through other - libraries. This function is auto generated by build tools and those build tools are - responsible for collecting the set of library instances, determine which ones have - constructors, and calling the library constructors in the proper order based upon - each of the library instances own dependencies. - - @param ImageHandle The image handle of the STANDALONE MM Core. - @param SystemTable A pointer to the EFI System Table. - -**/ -VOID -EFIAPI -ProcessLibraryConstructorList ( - IN EFI_HANDLE ImageHandle, - IN EFI_MM_SYSTEM_TABLE *MmSystemTable - ); - -/** - Autogenerated function that calls a set of module entry points. - - This function must be called by _ModuleEntryPoint(). - This function calls the set of module entry points. - This function is auto generated by build tools and those build tools are responsible - for collecting the module entry points and calling them in a specified order. - - @param HobStart Pointer to the beginning of the HOB List passed in from the PEI Phase. - -**/ -VOID -EFIAPI -ProcessModuleEntryPointList ( - IN VOID *HobStart - ); - -#endif diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf deleted file mode 100644 index 9f66a8f84c..0000000000 --- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf +++ /dev/null @@ -1,49 +0,0 @@ -## @file -# Module entry point library for DXE core. -# -# Copyright (c) 2017 - 2021, Arm Ltd. All rights reserved.
-# -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -# -## - -[Defines] - INF_VERSION = 0x0001001A - BASE_NAME = StandaloneMmCoreEntryPoint - FILE_GUID = C97AC593-109A-4C63-905C-675FDE2689E8 - MODULE_TYPE = MM_CORE_STANDALONE - VERSION_STRING = 1.0 - PI_SPECIFICATION_VERSION = 0x00010032 - LIBRARY_CLASS = StandaloneMmCoreEntryPoint|MM_CORE_STANDALONE - -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC (EBC is for build only) -# - -[Sources.X64] - X64/StandaloneMmCoreEntryPoint.c - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - StandaloneMmPkg/StandaloneMmPkg.dec - -[LibraryClasses] - BaseLib - DebugLib - -[Guids] - gMpInformationHobGuid - gEfiMmPeiMmramMemoryReserveGuid - gEfiStandaloneMmNonSecureBufferGuid - -# -# This configuration fails for CLANGPDB, which does not support PIE in the GCC -# sense. Such however is required for ARM family StandaloneMmCore -# self-relocation, and thus the CLANGPDB toolchain is unsupported for ARM and -# AARCH64 for this module. -# -[BuildOptions] - GCC:*_*_ARM_CC_FLAGS = -fpie - GCC:*_*_AARCH64_CC_FLAGS = -fpie diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/StandaloneMmCoreEntryPoint.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/StandaloneMmCoreEntryPoint.c deleted file mode 100644 index 98e6c0d766..0000000000 --- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/StandaloneMmCoreEntryPoint.c +++ /dev/null @@ -1,69 +0,0 @@ -/** @file - Entry point to the Standalone Mm Core. - -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
-Copyright (c) Microsoft Corporation. -SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#include - -#include -#include -#include - -// -// Cache copy of HobList pointer. -// -VOID *gHobList = NULL; - -/** - The entry point of PE/COFF Image for the STANDALONE MM Core. - - This function is the entry point for the STANDALONE MM Core. This function is required to call - ProcessModuleEntryPointList() and ProcessModuleEntryPointList() is never expected to return. - The STANDALONE MM Core is responsible for calling ProcessLibraryConstructorList() as soon as the EFI - System Table and the image handle for the STANDALONE MM Core itself have been established. - If ProcessModuleEntryPointList() returns, then ASSERT() and halt the system. - - @param HobStart Pointer to the beginning of the HOB List passed in from the PEI Phase. - -**/ -VOID -EFIAPI -_ModuleEntryPoint ( - IN VOID *HobStart - ) -{ - // - // Cache a pointer to the HobList - // - gHobList = HobStart; - - // - // Call the Standalone MM Core entry point - // - ProcessModuleEntryPointList (HobStart); - - // - // TODO: Set page table here?? AARCH64 has this step for some reason - // -} - -/** - Required by the EBC compiler and identical in functionality to _ModuleEntryPoint(). - - This function is required to call _ModuleEntryPoint() passing in HobStart. - - @param HobStart Pointer to the beginning of the HOB List passed in from the PEI Phase. - -**/ -VOID -EFIAPI -EfiMain ( - IN VOID *HobStart - ) -{ - _ModuleEntryPoint (HobStart); -} diff --git a/StandaloneMmPkg/StandaloneMmPkg.dec b/StandaloneMmPkg/StandaloneMmPkg.dec index ca8ce715d9..00ec8c076e 100644 --- a/StandaloneMmPkg/StandaloneMmPkg.dec +++ b/StandaloneMmPkg/StandaloneMmPkg.dec @@ -23,9 +23,6 @@ ## @libraryclass Defines a set of helper methods. FvLib|Include/Library/FvLib.h - ## @libraryclass Defines a set of interfaces for the MM core entrypoint. - StandaloneMmCoreEntryPoint|Include/Library/StandaloneMmCoreEntryPoint.h - ## @libraryclass Defines a set of interfaces that provides services for ## MM Memory Operation. MemLib|Include/Library/StandaloneMmMemLib.h diff --git a/StandaloneMmPkg/StandaloneMmPkg.dsc b/StandaloneMmPkg/StandaloneMmPkg.dsc index a935f3a7e7..08b80c9360 100644 --- a/StandaloneMmPkg/StandaloneMmPkg.dsc +++ b/StandaloneMmPkg/StandaloneMmPkg.dsc @@ -72,7 +72,7 @@ MmUnblockMemoryLib|MdePkg/Library/MmUnblockMemoryLib/MmUnblockMemoryLibNull.inf [LibraryClasses.X64] - StandaloneMmCoreEntryPoint|StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf + StandaloneMmCoreEntryPoint|MdePkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf [LibraryClasses.AARCH64, LibraryClasses.ARM] ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf @@ -153,7 +153,6 @@ StandaloneMmPkg/Library/StandaloneMmPeCoffExtraActionLib/StandaloneMmPeCoffExtraActionLib.inf [Components.X64] - StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf StandaloneMmPkg/Drivers/StandaloneMmIplPei/StandaloneMmIplPei.inf ################################################################################################### -- cgit