diff options
Diffstat (limited to 'ArmPkg')
-rw-r--r-- | ArmPkg/ArmPkg.dsc | 2 | ||||
-rw-r--r-- | ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf | 36 | ||||
-rw-r--r-- | ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c | 72 | ||||
-rw-r--r-- | ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.inf | 37 |
4 files changed, 147 insertions, 0 deletions
diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc index df50b38b7d..330effdfe3 100644 --- a/ArmPkg/ArmPkg.dsc +++ b/ArmPkg/ArmPkg.dsc @@ -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
diff --git a/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf b/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf new file mode 100644 index 0000000000..a31fa5b152 --- /dev/null +++ b/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmCoreLib.inf @@ -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
diff --git a/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c b/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c new file mode 100644 index 0000000000..ce70e07d48 --- /dev/null +++ b/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c @@ -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 ();
+}
diff --git a/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.inf b/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.inf new file mode 100644 index 0000000000..bd3ec3fe8d --- /dev/null +++ b/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.inf @@ -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
+
|