summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlevi.yun <yeoreum.yun@arm.com>2024-12-23 18:36:00 +0000
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2025-01-17 14:55:42 +0000
commit54e394b4a20ea5ad0a1dee32e3ea498f5d7d3188 (patch)
treee8bbf48d5332e59c6844059f6ec66fe3952481d0
parentc56856f068132dbc09cdf3c061941737c75699f3 (diff)
downloadedk2-54e394b4a20ea5ad0a1dee32e3ea498f5d7d3188.tar.gz
ArmPkg/StandaloneMmMmuLib: Introduce a SPM_MM status helper fucntion
Introduce a new helper function SpmMmStatusToEfiStatus() to convert the SPM_MM status values to EFI_STATUS values. Signed-off-by: Levi yun <yeoreum.yun@arm.com>
-rw-r--r--ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c46
1 files changed, 28 insertions, 18 deletions
diff --git a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
index a30273c011..bfec689a0c 100644
--- a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
+++ b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.c
@@ -25,6 +25,33 @@
#include <Library/DebugLib.h>
#include <Library/PcdLib.h>
+/**
+ Convert FFA return code to EFI_STATUS.
+
+ @param [in] SpmMmStatus SPM_MM return code
+
+ @retval EFI_STATUS correspond EFI_STATUS to SpmMmStatus
+**/
+STATIC
+EFI_STATUS
+SpmMmStatusToEfiStatus (
+ IN UINTN SpmMmStatus
+ )
+{
+ switch (SpmMmStatus) {
+ case ARM_SPM_MM_RET_SUCCESS:
+ return EFI_SUCCESS;
+ case ARM_SPM_MM_RET_INVALID_PARAMS:
+ return EFI_INVALID_PARAMETER;
+ case ARM_SPM_MM_RET_DENIED:
+ return EFI_ACCESS_DENIED;
+ case ARM_SPM_MM_RET_NO_MEMORY:
+ return EFI_OUT_OF_RESOURCES;
+ default:
+ return EFI_UNSUPPORTED;
+ }
+}
+
/** Send memory permission request to target.
@param [in, out] SvcArgs Pointer to SVC arguments to send. On
@@ -106,24 +133,7 @@ SendMemoryPermissionRequest (
// Bit 31 set means there is an error returned
// See [1], Section 13.5.5.1 MM_SP_MEMORY_ATTRIBUTES_GET_AARCH64 and
// Section 13.5.5.2 MM_SP_MEMORY_ATTRIBUTES_SET_AARCH64.
- switch (*RetVal) {
- case ARM_SPM_MM_RET_NOT_SUPPORTED:
- return EFI_UNSUPPORTED;
-
- case ARM_SPM_MM_RET_INVALID_PARAMS:
- return EFI_INVALID_PARAMETER;
-
- case ARM_SPM_MM_RET_DENIED:
- return EFI_ACCESS_DENIED;
-
- case ARM_SPM_MM_RET_NO_MEMORY:
- return EFI_OUT_OF_RESOURCES;
-
- default:
- // Undefined error code received.
- ASSERT (0);
- return EFI_INVALID_PARAMETER;
- }
+ SpmMmStatusToEfiStatus (*RetVal);
}
return EFI_SUCCESS;