ArmPkg: Add ArmFfaLib used in StandaloneMm

Add ArmFfaLib used in StandaloneMmCore/StandaloneMm Driver.

Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
This commit is contained in:
Levi Yun
2024-09-20 12:37:47 +01:00
committed by mergify[bot]
parent 166c3b2eb7
commit 401699c326
5 changed files with 148 additions and 0 deletions

View File

@ -136,6 +136,8 @@
ArmPkg/Library/ArmTransferListLib/ArmTransferListLib.inf
ArmPkg/Library/ArmFfaLib/ArmFfaPeiLib.inf
ArmPkg/Library/ArmFfaLib/ArmFfaDxeLib.inf
ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf
ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.inf
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf

View File

@ -0,0 +1,36 @@
## @file
# Provides FF-A ABI Library used in StandaloneMmCore.
#
# Copyright (c) 2024, Arm Limited. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
[Defines]
INF_VERSION = 0x0001001B
BASE_NAME = ArmFfaStandaloneMmCoreLib
FILE_GUID = 80d2c4dc-5f0b-11ef-bc86-43b3fb486d6d
MODULE_TYPE = MM_CORE_STANDALONE
VERSION_STRING = 1.0
PI_SPECIFICATION_VERSION = 0x00010032
LIBRARY_CLASS = ArmFfaLib
CONSTRUCTOR = ArmFfaStandaloneMmLibConstructor
[Sources]
ArmFfaCommon.h
ArmFfaCommon.c
ArmFfaStandaloneMmLib.c
[Packages]
MdePkg/MdePkg.dec
ArmPkg/ArmPkg.dec
[LibraryClasses]
ArmSmcLib
ArmSvcLib
BaseLib
BaseMemoryLib
DebugLib
[Pcd]
gArmTokenSpaceGuid.PcdFfaLibConduitSmc

View File

@ -0,0 +1,72 @@
/** @file
Arm Ffa library code for StandaloneMmCore.
Copyright (c) 2024, Arm Limited. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@par Glossary:
- FF-A - Firmware Framework for Arm A-profile
@par Reference(s):
- Arm Firmware Framework for Arm A-Profile [https://developer.arm.com/documentation/den0077/latest]
**/
#include <PiMm.h>
#include <Library/ArmLib.h>
#include <Library/ArmSmcLib.h>
#include <Library/ArmFfaLib.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include "ArmFfaCommon.h"
/**
Get mapped Rx/Tx buffers.
@param [out] TxBuffer Address of TxBuffer
@param [out] TxBufferSize Size of TxBuffer
@param [out] RxBuffer Address of RxBuffer
@param [out] RxBufferSize Size of RxBuffer
@retval EFI_SUCCESS
@retval Others Error.
**/
EFI_STATUS
EFIAPI
ArmFfaLibGetRxTxBuffers (
OUT VOID **TxBuffer,
OUT UINT64 *TxBufferSize,
OUT VOID **RxBuffer,
OUT UINT64 *RxBufferSize
)
{
/*
* StandaloneMm doesn't use Rx/Tx buffer.
* So, return EFI_UNSUPPORTED.
*/
return EFI_UNSUPPORTED;
}
/**
ArmFfaLib Constructor.
@param [in] ImageHandle The firmware allocated handle for the EFI image
@param [in] MmSystemTable A pointer to the Management mode System Table
@retval EFI_SUCCESS Success
@retval Others Error
**/
EFI_STATUS
EFIAPI
ArmFfaStandaloneMmLibConstructor (
IN EFI_HANDLE ImageHandle,
IN EFI_MM_SYSTEM_TABLE *MmSystemTable
)
{
return ArmFfaLibCommonInit ();
}

View File

@ -0,0 +1,37 @@
## @file
# Provides FF-A ABI Library used in StandaloneMmCore.
#
# Copyright (c) 2024, Arm Limited. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
[Defines]
INF_VERSION = 0x0001001B
BASE_NAME = ArmFfaStandaloneMmLib
FILE_GUID = e07db74e-6a95-11ef-97ea-c7a6149e81c9
MODULE_TYPE = MM_STANDALONE
VERSION_STRING = 1.0
PI_SPECIFICATION_VERSION = 0x00010032
LIBRARY_CLASS = ArmFfaLib
CONSTRUCTOR = ArmFfaStandaloneMmLibConstructor
[Sources]
ArmFfaCommon.h
ArmFfaCommon.c
ArmFfaStandaloneMmLib.c
[Packages]
MdePkg/MdePkg.dec
ArmPkg/ArmPkg.dec
[LibraryClasses]
ArmSmcLib
ArmSvcLib
BaseLib
BaseMemoryLib
DebugLib
[Pcd]
gArmTokenSpaceGuid.PcdFfaLibConduitSmc

View File

@ -82,6 +82,7 @@
[LibraryClasses.common.MM_CORE_STANDALONE]
HobLib|StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf
ArmFfaLib|ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf
[LibraryClasses.common.MM_STANDALONE]
MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf