2. MM Foundation Entry Point
2.1. EFI_MM_ENTRY_POINT
Summary
This function is the main entry point to the MM Foundation.
Prototype
typedef
VOID
(EFIAPI \*EFI_MM_ENTRY_POINT) (
IN CONST EFI_MM_ENTRY_CONTEXT *\*MmEntryContext*
);
Parameters
- MmEntryContext
Processor information and functionality needed by MM Foundation.
Description
This function is the entry point to the MM Foundation. The processor MM entry code will call this function with the processor information and functionality necessary for MM.
Related Definitions
typedef struct _EFI_MM_ENTRY_CONTEXT {
EFI_MM_STARTUP_THIS_AP *MmStartupThisAp;*
UINTN *CurrentlyExecutingCpu* ;
UINTN *NumberOfCpus* ;
UINTN *\*CpuSaveStateSize* ;
VOID *\**CpuSaveState;*
} EFI_MM_ENTRY_CONTEXT;
- MmStartupThisAp
Initiate a procedure on an application processor while in SM. See the MmStartupThisAp() function description.
- CurrentlyExecutingCpu
A number between zero and the NumberOfCpus field. This field designates which processor is executing the MM Foundation.
- NumberOfCpus
The number of current operational processors in the platform. This is a 1 based counter. This does not indicate the number of processors that entered MM.
- CpuSaveStateSize
Points to an array, where each element describes the number of bytes in the corresponding save state specified by CpuSaveState . There are always NumberOfCpus entries in the array.
- CpuSaveState
Points to an array, where each element is a pointer to a CPU save state. The corresponding element in CpuSaveStateSize specifies the number of bytes in the save state area. There are always NumberOfCpus entries in the array.
2.2. MM_FOUNDATION_ENTRY_POINT
Summary
This function is the image entry point of a standalone MM Foundation.
Prototype
typedef
VOID
(EFIAPI \*MM_FOUNDATION_ENTRY_POINT) (
IN CONST VOID \* *HobStart*
);
Parameters
- HobStart
A pointer to the HOB list.
Description
This function is the image entry point of a standalone MM Foundation. Standalone MM IPL passes* HobStart to standalone MM Foundation. HOB list that describes the system state at the hand-off to the MM Foundation. At a minimum, this system state must include the following:
PHIT HOB
CPU HOB
Description of MMRAM
Description of one or more firmware volumes
MM Foundation can use MMRAM hob to build heap base upon MMRAM hob information. MM Foundation can use FV hob to dispatch standalone MM driver.