TianoCore EDK2 master
Loading...
Searching...
No Matches
MmPlatformHobProducerLib.h File Reference

Go to the source code of this file.

Functions

EFI_STATUS EFIAPI CreateMmPlatformHob (IN VOID *Buffer, IN OUT UINTN *BufferSize)
 

Detailed Description

MM Platform HOB Producer Library Class.

CreateMmPlatformHob() function is called by StandaloneMm IPL to create all Platform specific HOBs that required by Standalone MM environment.

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

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

Definition in file MmPlatformHobProducerLib.h.

Function Documentation

◆ CreateMmPlatformHob()

EFI_STATUS EFIAPI CreateMmPlatformHob ( IN VOID *  Buffer,
IN OUT UINTN BufferSize 
)

Create the platform specific HOBs needed by the Standalone MM environment.

The following HOBs are created by StandaloneMm IPL common logic hence they should NOT be created by this function: Single EFI_HOB_TYPE_FV to describe the Firmware Volume where MM Core resides. Single GUIDed (gEfiSmmSmramMemoryGuid) HOB to describe the MM regions. Single EFI_HOB_MEMORY_ALLOCATION_MODULE to describe the MM region used by MM Core. Multiple EFI_HOB_RESOURCE_DESCRIPTOR to describe the non-MM regions and their access permissions. Note: All accessible non-MM regions should be described by EFI_HOB_RESOURCE_DESCRIPTOR HOBs. Single GUIDed (gMmCommBufferHobGuid) HOB to identify MM Communication buffer in non-MM region. Multiple GUIDed (gSmmBaseHobGuid) HOB to describe the SMM base address of each processor. Multiple GUIDed (gMpInformation2HobGuid) HOB to describe the MP information. Single GUIDed (gMmCpuSyncConfigHobGuid) HOB to describe how BSP synchronizes with APs in x86 SMM. Single GUIDed (gMmAcpiS3EnableHobGuid) HOB to describe the ACPI S3 enable status. Single GUIDed (gEfiAcpiVariableGuid) HOB to identify the S3 data root region in x86. Single GUIDed (gMmProfileDataHobGuid) HOB to describe the MM profile data region.

Parameters
[in]BufferThe free buffer to be used for HOB creation.
[in,out]BufferSizeThe buffer size. On return, the expected/used size.
Return values
RETURN_INVALID_PARAMETERBufferSize is NULL.
RETURN_INVALID_PARAMETERBuffer is NULL and BufferSize is not 0.
RETURN_BUFFER_TOO_SMALLThe buffer is too small for HOB creation. BufferSize is updated to indicate the expected buffer size. When the input BufferSize is bigger than the expected buffer size, the BufferSize value will be changed to the used buffer size.
RETURN_SUCCESSThe HOB list is created successfully.

Create the platform specific HOBs needed by the Standalone MM environment.

The following HOBs are created by StandaloneMm IPL common logic. Hence they should NOT be created by this function: Single EFI_HOB_TYPE_FV to describe the Firmware Volume where MM Core resides. Single GUIDed (gEfiSmmSmramMemoryGuid) HOB to describe the MM regions. Single EFI_HOB_MEMORY_ALLOCATION_MODULE to describe the MM region used by MM Core. Multiple EFI_HOB_RESOURCE_DESCRIPTOR to describe the non-MM regions and their access permissions. Note: All accessible non-MM regions should be described by EFI_HOB_RESOURCE_DESCRIPTOR HOBs. Single GUIDed (gMmCommBufferHobGuid) HOB to identify MM Communication buffer in non-MM region. Multiple GUIDed (gSmmBaseHobGuid) HOB to describe the SMM base address of each processor. Multiple GUIDed (gMpInformation2HobGuid) HOB to describe the MP information. Single GUIDed (gMmCpuSyncConfigHobGuid) HOB to describe how BSP synchronizes with APs in x86 SMM. Single GUIDed (gMmAcpiS3EnableHobGuid) HOB to describe the ACPI S3 enable status. Single GUIDed (gEfiAcpiVariableGuid) HOB to identify the S3 data root region in x86. Single GUIDed (gMmProfileDataHobGuid) HOB to describe the MM profile data region.

Parameters
[in]BufferThe free buffer to be used for HOB creation.
[in,out]BufferSizeThe buffer size. On return, the expected/used size.
Return values
RETURN_INVALID_PARAMETERBufferSize is NULL.
RETURN_INVALID_PARAMETERBuffer is NULL and BufferSize is not 0.
RETURN_BUFFER_TOO_SMALLThe buffer is too small for HOB creation. BufferSize is updated to indicate the expected buffer size. When the input BufferSize is bigger than the expected buffer size, the BufferSize value will be changed to the used buffer size.
RETURN_SUCCESSThe HOB list is created successfully.

Definition at line 50 of file MmPlatformHobProducerLibNull.c.