[edk2-devel] [PATCH v1 01/15] StandaloneMmPkg: StandaloneMmCoreEntryPoint: Extends support for X64

Yao, Jiewen jiewen.yao at intel.com
Mon Dec 28 00:11:00 UTC 2020


Reviewed-by: Jiewen Yao <Jiewen.yao at intel.com>

> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Kun Qin
> Sent: Saturday, December 19, 2020 2:50 AM
> To: devel at edk2.groups.io
> Cc: Ard Biesheuvel <ard.biesheuvel at arm.com>; Sami Mujawar
> <sami.mujawar at arm.com>; Yao, Jiewen <jiewen.yao at intel.com>; Supreeth
> Venkatesh <supreeth.venkatesh at arm.com>
> Subject: [edk2-devel] [PATCH v1 01/15] StandaloneMmPkg:
> StandaloneMmCoreEntryPoint: Extends support for X64
> 
> This change extends StandaloneMmCoreEntryPoint library to support X64
> architecture.
> 
> Cc: Ard Biesheuvel <ard.biesheuvel at arm.com>
> Cc: Sami Mujawar <sami.mujawar at arm.com>
> Cc: Jiewen Yao <jiewen.yao at intel.com>
> Cc: Supreeth Venkatesh <supreeth.venkatesh at arm.com>
> 
> Signed-off-by: Kun Qin <kun.q at outlook.com>
> ---
> 
> StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/Standalone
> MmCoreEntryPoint.c | 71 ++++++++++++++++++++
> 
> StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMm
> CoreEntryPoint.inf   |  3 +
>  2 files changed, 74 insertions(+)
> 
> diff --git
> a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/Standalo
> neMmCoreEntryPoint.c
> b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/Standalo
> neMmCoreEntryPoint.c
> new file mode 100644
> index 000000000000..dffa965b8425
> --- /dev/null
> +++
> b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/Standalo
> neMmCoreEntryPoint.c
> @@ -0,0 +1,71 @@
> +/** @file
> +  Entry point to the Standalone Mm Core.
> +
> +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) Microsoft Corporation.
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +
> +#include <PiMm.h>
> +
> +#include <Library/StandaloneMmCoreEntryPoint.h>
> +#include <Library/DebugLib.h>
> +#include <Library/BaseLib.h>
> +
> +//
> +// 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/Library/StandaloneMmCoreEntryPoint/StandaloneM
> mCoreEntryPoint.inf
> b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneM
> mCoreEntryPoint.inf
> index 7d6ee4e08ecb..3b7629bc8fb9 100644
> ---
> a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneM
> mCoreEntryPoint.inf
> +++
> b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneM
> mCoreEntryPoint.inf
> @@ -26,6 +26,9 @@ [Sources.AARCH64]
>    AArch64/SetPermissions.c
>    AArch64/CreateHobList.c
> 
> +[Sources.X64]
> +  X64/StandaloneMmCoreEntryPoint.c
> +
>  [Packages]
>    MdePkg/MdePkg.dec
>    MdeModulePkg/MdeModulePkg.dec
> --
> 2.28.0.windows.1
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#69465): https://edk2.groups.io/g/devel/message/69465
Mute This Topic: https://groups.io/mt/79068284/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list