From: "Sami Mujawar" <sami.mujawar@arm.com>
To: Sughosh Ganu <sughosh.ganu@linaro.org>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Ard Biesheuvel <Ard.Biesheuvel@arm.com>,
Jiewen Yao <jiewen.yao@intel.com>,
Achin Gupta <Achin.Gupta@arm.com>, nd <nd@arm.com>
Subject: Re: [PATCH v1 09/12] ArmPkg/StandaloneMmMmuLib: Add option to use FF-A calls to get memory region's permissions
Date: Mon, 23 Nov 2020 13:26:44 +0000 [thread overview]
Message-ID: <DB7PR08MB3097BB9D41D594EB83535BD084FC0@DB7PR08MB3097.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <20201021113233.25548-10-sughosh.ganu@linaro.org>
Hi Sughosh,
Please find my response inline marked [SAMI].
Regards,
Sami Mujawar
-----Original Message-----
From: Sughosh Ganu <sughosh.ganu@linaro.org>
Sent: 21 October 2020 12:33 PM
To: devel@edk2.groups.io
Cc: Ard Biesheuvel <Ard.Biesheuvel@arm.com>; Sami Mujawar <Sami.Mujawar@arm.com>; Jiewen Yao <jiewen.yao@intel.com>; Achin Gupta <Achin.Gupta@arm.com>
Subject: [PATCH v1 09/12] ArmPkg/StandaloneMmMmuLib: Add option to use FF-A calls to get memory region's permissions
[SAMI] Please abbreviate the subject line if possible. [/SAMI]
From: Achin Gupta <achin.gupta@arm.com>
Allow getting memory region's permissions using either of the Firmware
Framework(FF-A) ABI transport or through the earlier used SVC calls.
Signed-off-by: Achin Gupta <achin.gupta@arm.com>
Co-developed-by: Sughosh Ganu <sughosh.ganu@linaro.org>
---
ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf | 3 +++
ArmPkg/Library/StandaloneMmMmuLib/AArch64/ArmMmuStandaloneMmLib.c | 28 +++++++++++++++-----
2 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
index 85973687f5..a29dd800b5 100644
--- a/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
+++ b/ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
@@ -23,6 +23,9 @@
ArmPkg/ArmPkg.dec
MdePkg/MdePkg.dec
+[Pcd]
+ gArmTokenSpaceGuid.PcdFfaEnable
+
[LibraryClasses]
ArmLib
CacheMaintenanceLib
diff --git a/ArmPkg/Library/StandaloneMmMmuLib/AArch64/ArmMmuStandaloneMmLib.c b/ArmPkg/Library/StandaloneMmMmuLib/AArch64/ArmMmuStandaloneMmLib.c
index 362b1a0f8a..ab13602556 100644
--- a/ArmPkg/Library/StandaloneMmMmuLib/AArch64/ArmMmuStandaloneMmLib.c
+++ b/ArmPkg/Library/StandaloneMmMmuLib/AArch64/ArmMmuStandaloneMmLib.c
@@ -16,6 +16,7 @@
#include <Library/ArmSvcLib.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
+#include <Library/PcdLib.h>
STATIC
EFI_STATUS
@@ -25,19 +26,32 @@ GetMemoryPermissions (
)
{
ARM_SVC_ARGS GetMemoryPermissionsSvcArgs = {0};
-
- GetMemoryPermissionsSvcArgs.Arg0 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
- GetMemoryPermissionsSvcArgs.Arg1 = BaseAddress;
- GetMemoryPermissionsSvcArgs.Arg2 = 0;
- GetMemoryPermissionsSvcArgs.Arg3 = 0;
+ BOOLEAN FfaEnabled;
+
+ FfaEnabled = FeaturePcdGet (PcdFfaEnable);
+ if (FfaEnabled) {
+ GetMemoryPermissionsSvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64;
+ GetMemoryPermissionsSvcArgs.Arg1 = 0x3;
+ GetMemoryPermissionsSvcArgs.Arg2 = 0;
+ GetMemoryPermissionsSvcArgs.Arg3 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
+ GetMemoryPermissionsSvcArgs.Arg4 = BaseAddress;
+ } else {
+ GetMemoryPermissionsSvcArgs.Arg0 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
+ GetMemoryPermissionsSvcArgs.Arg1 = BaseAddress;
+ GetMemoryPermissionsSvcArgs.Arg2 = 0;
+ GetMemoryPermissionsSvcArgs.Arg3 = 0;
+ }
ArmCallSvc (&GetMemoryPermissionsSvcArgs);
- if (GetMemoryPermissionsSvcArgs.Arg0 == ARM_SVC_SPM_RET_INVALID_PARAMS) {
+ if (GetMemoryPermissionsSvcArgs.Arg0 == ARM_SVC_SPM_RET_INVALID_PARAMS ||
+ GetMemoryPermissionsSvcArgs.Arg3 == ARM_SVC_SPM_RET_INVALID_PARAMS) {
[SAMI] Other error codes can also be returned and must be checked.
See FFA Spec, section 10.2 and also https://trustedfirmware-a.readthedocs.io/en/latest/components/secure-partition-manager-mm.html#mm-sp-memory-attributes-get-aarch64
For FFA the error codes would be returned in Arg0 & Arg3. For SPM based on the MM interface the error code would be in Arg0.
It might be better to check if FfaEnabled is enabled here and handle the errors appropriately. Also, it could be combined with the following code that returns the Memory attributes.
[/SAMI]
*MemoryAttributes = 0;
return EFI_INVALID_PARAMETER;
}
- *MemoryAttributes = GetMemoryPermissionsSvcArgs.Arg0;
+ *MemoryAttributes = FfaEnabled ?
+ GetMemoryPermissionsSvcArgs.Arg3 : GetMemoryPermissionsSvcArgs.Arg0;
+
return EFI_SUCCESS;
}
--
2.17.1
next prev parent reply other threads:[~2020-11-23 13:26 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-21 11:32 [PATCH v1 00/12] Add support for using FF-A calls sughosh.ganu
2020-10-21 11:32 ` [PATCH v1 01/12] ArmPkg/IndustryStandard: Add barebones FF-A header Sughosh Ganu
2020-11-05 10:33 ` Sami Mujawar
2020-11-06 9:06 ` Sughosh Ganu
2020-10-21 11:32 ` [PATCH v1 02/12] ArmPkg/ArmSvcLib: Return x4-x7 in output parameters Sughosh Ganu
2020-11-10 12:02 ` Sami Mujawar
2020-10-21 11:32 ` [PATCH v1 03/12] StandaloneMmPkg: Use FF-A header file in Standalone MM Core entry point Sughosh Ganu
2020-10-21 11:32 ` [PATCH v1 04/12] ArmPkg: Introduce support for PcdFfaEnable Sughosh Ganu
2020-11-19 9:56 ` Sami Mujawar
2020-10-21 11:32 ` [PATCH v1 05/12] StandaloneMmPkg: Add the SPM version for FF-A Sughosh Ganu
2020-11-19 9:54 ` Sami Mujawar
2020-10-21 11:32 ` [PATCH v1 06/12] StandaloneMmPkg: Add option to use FF-A calls for getting SPM version Sughosh Ganu
2020-11-23 10:10 ` Sami Mujawar
2020-10-21 11:32 ` [PATCH v1 07/12] StandaloneMmPkg: Add option to use FF-A calls for communication with SPM Sughosh Ganu
2020-11-23 12:38 ` Sami Mujawar
2020-10-21 11:32 ` [PATCH v1 08/12] StandaloneMmPkg: Use FF-A header file in Standalone MM Arm MMU library Sughosh Ganu
2020-10-21 11:32 ` [PATCH v1 09/12] ArmPkg/StandaloneMmMmuLib: Add option to use FF-A calls to get memory region's permissions Sughosh Ganu
2020-11-23 13:26 ` Sami Mujawar [this message]
2020-10-21 11:32 ` [PATCH v1 10/12] ArmPkg/StandaloneMmMmuLib: Add option to use FF-A calls to set " Sughosh Ganu
2020-11-23 13:42 ` Sami Mujawar
[not found] ` <164A26E48323EBBE.21019@groups.io>
2020-11-23 14:21 ` [edk2-devel] " Sami Mujawar
2020-10-21 11:32 ` [PATCH v1 11/12] MdeModulePkg/VariableStandaloneMm: Set PcdFlashNvStorageVariableBase to Pcd Sughosh Ganu
2020-11-23 13:52 ` Sami Mujawar
2020-10-21 11:32 ` [PATCH v1 12/12] StandaloneMmPkg: Allow sending FFA Direct Request message to StandaloneMm Sughosh Ganu
2020-11-23 14:17 ` Sami Mujawar
2020-11-05 10:29 ` [PATCH v1 00/12] Add support for using FF-A calls Sami Mujawar
2020-11-23 14:33 ` Sami Mujawar
2020-11-24 7:48 ` Sughosh Ganu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DB7PR08MB3097BB9D41D594EB83535BD084FC0@DB7PR08MB3097.eurprd08.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox