mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-23 13:44:33 +02:00
StandaloneMmPkg: Create null instance for MmPlatformHobProducerLib
Create null instance MmPlatformHobProducerLibNull.inf for MmPlatformHobProducerLib. Signed-off-by: Dun Tan <dun.tan@intel.com>
This commit is contained in:
parent
c0b1ad64e4
commit
0806fb60d4
@ -0,0 +1,66 @@
|
|||||||
|
/** @file
|
||||||
|
Null instance of 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.<BR>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#include <Uefi.h>
|
||||||
|
#include <PiPei.h>
|
||||||
|
#include <Library/MmPlatformHobProducerLib.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
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.
|
||||||
|
|
||||||
|
@param[in] Buffer The free buffer to be used for HOB creation.
|
||||||
|
@param[in, out] BufferSize The buffer size.
|
||||||
|
On return, the expected/used size.
|
||||||
|
|
||||||
|
@retval RETURN_INVALID_PARAMETER BufferSize is NULL.
|
||||||
|
@retval RETURN_INVALID_PARAMETER Buffer is NULL and BufferSize is not 0.
|
||||||
|
@retval RETURN_BUFFER_TOO_SMALL The 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.
|
||||||
|
@retval RETURN_SUCCESS The HOB list is created successfully.
|
||||||
|
|
||||||
|
**/
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
CreateMmPlatformHob (
|
||||||
|
IN VOID *Buffer,
|
||||||
|
IN OUT UINTN *BufferSize
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (BufferSize == NULL) {
|
||||||
|
return RETURN_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((*BufferSize != 0) && (Buffer == NULL)) {
|
||||||
|
return RETURN_INVALID_PARAMETER;
|
||||||
|
}
|
||||||
|
|
||||||
|
*BufferSize = 0;
|
||||||
|
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
## @file
|
||||||
|
# Null instance of MM Platform HOB Producer Library Class.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024, Intel Corporation. All rights reserved.<BR>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
#
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010017
|
||||||
|
BASE_NAME = MmPlatformHobProducerLibNull
|
||||||
|
FILE_GUID = DE6B5E7C-6636-4646-90F8-776408157750
|
||||||
|
MODULE_TYPE = PEIM
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = MmPlatformHobProducerLib
|
||||||
|
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32 X64
|
||||||
|
#
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
MmPlatformHobProducerLibNull.c
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
StandaloneMmPkg/StandaloneMmPkg.dec
|
@ -60,6 +60,7 @@
|
|||||||
StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
|
StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
|
||||||
VariableMmDependency|StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf
|
VariableMmDependency|StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf
|
||||||
HobPrintLib|MdeModulePkg/Library/HobPrintLib/HobPrintLib.inf
|
HobPrintLib|MdeModulePkg/Library/HobPrintLib/HobPrintLib.inf
|
||||||
|
MmPlatformHobProducerLib|StandaloneMmPkg/Library/MmPlatformHobProducerLibNull/MmPlatformHobProducerLibNull.inf
|
||||||
|
|
||||||
[LibraryClasses.AARCH64, LibraryClasses.ARM]
|
[LibraryClasses.AARCH64, LibraryClasses.ARM]
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
||||||
@ -119,6 +120,7 @@
|
|||||||
StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf
|
StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf
|
||||||
StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf
|
StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf
|
||||||
StandaloneMmPkg/Library/SmmLockBoxMmDependency/SmmLockBoxMmDependency.inf
|
StandaloneMmPkg/Library/SmmLockBoxMmDependency/SmmLockBoxMmDependency.inf
|
||||||
|
StandaloneMmPkg/Library/MmPlatformHobProducerLibNull/MmPlatformHobProducerLibNull.inf
|
||||||
|
|
||||||
[Components.AARCH64, Components.ARM]
|
[Components.AARCH64, Components.ARM]
|
||||||
StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf
|
StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf
|
||||||
|
Loading…
x
Reference in New Issue
Block a user