TianoCore EDK2 master
Loading...
Searching...
No Matches
PiSmmCpuStandaloneMm.c File Reference
#include "PiSmmCpuCommon.h"

Go to the source code of this file.

Functions

BOOLEAN IsSmmProfileEnabled (VOID)
 
VOID PerformRemainingTasks (VOID)
 
VOID GetSmiCommandPort (VOID)
 
VOID GetSmmCpuSyncConfigData (IN OUT BOOLEAN *RelaxedMode, OPTIONAL IN OUT UINT64 *SyncTimeout, OPTIONAL IN OUT UINT64 *SyncTimeout2 OPTIONAL)
 
VOID GetAcpiS3EnableFlag (VOID)
 
UINTN GetSupportedMaxLogicalProcessorNumber (VOID)
 
EFI_PROCESSOR_INFORMATIONGetMpInformationFromMpServices (OUT UINTN *NumberOfCpus, OUT UINTN *MaxNumberOfCpus)
 
EFI_STATUS EFIAPI PiCpuStandaloneMmEntry (IN EFI_HANDLE ImageHandle, IN EFI_MM_SYSTEM_TABLE *SystemTable)
 

Variables

const BOOLEAN mIsStandaloneMm = TRUE
 
BOOLEAN mRemainingTasksDone = FALSE
 

Detailed Description

Agent Module to load other modules to deploy MM Entry Vector for X86 CPU.

Copyright (c) 2024, Intel Corporation. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file PiSmmCpuStandaloneMm.c.

Function Documentation

◆ GetAcpiS3EnableFlag()

VOID GetAcpiS3EnableFlag ( VOID  )

Get ACPI S3 enable flag.

Definition at line 158 of file PiSmmCpuStandaloneMm.c.

◆ GetMpInformationFromMpServices()

EFI_PROCESSOR_INFORMATION * GetMpInformationFromMpServices ( OUT UINTN NumberOfCpus,
OUT UINTN MaxNumberOfCpus 
)

Extract NumberOfCpus, MaxNumberOfCpus and EFI_PROCESSOR_INFORMATION.

Parameters
[out]NumberOfCpusPointer to NumberOfCpus.
[out]MaxNumberOfCpusPointer to MaxNumberOfCpus.
Return values
ProcessorInfoPointer to EFI_PROCESSOR_INFORMATION buffer.

Get the MP Services Protocol

Get the number of processors

Allocate buffer for processor information

Get processor information

Definition at line 206 of file PiSmmCpuStandaloneMm.c.

◆ GetSmiCommandPort()

VOID GetSmiCommandPort ( VOID  )

To get system port address of the SMI Command Port.

Definition at line 100 of file PiSmmCpuStandaloneMm.c.

◆ GetSmmCpuSyncConfigData()

VOID GetSmmCpuSyncConfigData ( IN OUT BOOLEAN *  RelaxedMode,
OPTIONAL IN OUT UINT64 *  SyncTimeout,
OPTIONAL IN OUT UINT64 *SyncTimeout2  OPTIONAL 
)

Get SmmCpuSyncConfig data: RelaxedMode, SyncTimeout, SyncTimeout2.

Parameters
[in,out]RelaxedModeIt indicates if Relaxed CPU synchronization method or traditional CPU synchronization method is used when processing an SMI.
[in,out]SyncTimeoutIt indicates the 1st BSP/AP synchronization timeout value in SMM.
[in,out]SyncTimeout2It indicates the 2nd BSP/AP synchronization timeout value in SMM.

Definition at line 118 of file PiSmmCpuStandaloneMm.c.

◆ GetSupportedMaxLogicalProcessorNumber()

UINTN GetSupportedMaxLogicalProcessorNumber ( VOID  )

Get the maximum number of logical processors supported by the system.

Return values
Themaximum number of logical processors supported by the system is indicated by the return value.

Definition at line 188 of file PiSmmCpuStandaloneMm.c.

◆ IsSmmProfileEnabled()

BOOLEAN IsSmmProfileEnabled ( VOID  )

Check SmmProfile is enabled or not.

Returns
TRUE SmmProfile is enabled. FALSE SmmProfile is not enabled.

Definition at line 31 of file PiSmmCpuStandaloneMm.c.

◆ PerformRemainingTasks()

VOID PerformRemainingTasks ( VOID  )

Perform the remaining tasks.

Definition at line 50 of file PiSmmCpuStandaloneMm.c.

◆ PiCpuStandaloneMmEntry()

EFI_STATUS EFIAPI PiCpuStandaloneMmEntry ( IN EFI_HANDLE  ImageHandle,
IN EFI_MM_SYSTEM_TABLE SystemTable 
)

The module Entry Point of the CPU StandaloneMm driver.

Parameters
ImageHandleThe firmware allocated handle for the EFI image.
SystemTableA pointer to the MM System Table.
Return values
EFI_SUCCESSThe entry point is executed successfully.
OtherSome error occurs when executing this entry point.

Definition at line 228 of file PiSmmCpuStandaloneMm.c.

Variable Documentation

◆ mIsStandaloneMm

const BOOLEAN mIsStandaloneMm = TRUE

Definition at line 16 of file PiSmmCpuStandaloneMm.c.

◆ mRemainingTasksDone

BOOLEAN mRemainingTasksDone = FALSE

Definition at line 21 of file PiSmmCpuStandaloneMm.c.