[edk2-devel] [PATCH v3 02/13] ArmPkg/ArmSvcLib: Return x4-x7 in output parameters
Sughosh Ganu
sughosh.ganu at linaro.org
Fri Jan 15 06:13:53 UTC 2021
From: Achin Gupta <achin.gupta at arm.com>
The Arm SMC calling convention standard v1.2 allows 8 input and output
parameter registers. The FF-A specification relies on this
communication. This patch extends the number of output registers
returned by ArmCallSvc() to match this convention.
Signed-off-by: Achin Gupta <achin.gupta at arm.com>
Reviewed-by: Sami Mujawar <sami.mujawar at arm.com>
---
Changes since V2: None
ArmPkg/Include/Library/ArmSvcLib.h | 10 ++++++++--
ArmPkg/Library/ArmSvcLib/AArch64/ArmSvc.S | 4 +++-
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/ArmPkg/Include/Library/ArmSvcLib.h b/ArmPkg/Include/Library/ArmSvcLib.h
index a94ead1965..a4414270f3 100644
--- a/ArmPkg/Include/Library/ArmSvcLib.h
+++ b/ArmPkg/Include/Library/ArmSvcLib.h
@@ -27,10 +27,16 @@ typedef struct {
/**
Trigger an SVC call
- SVC calls can take up to 7 arguments and return up to 4 return values.
- Therefore, the 4 first fields in the ARM_SVC_ARGS structure are used
+ SVC calls can take up to 8 arguments and return up to 8 return values.
+ Therefore, the 8 first fields in the ARM_SVC_ARGS structure are used
for both input and output values.
+ @param[in, out] Args Arguments to be passed as part of the SVC call
+ The return values of the SVC call are also placed
+ in the same structure
+
+ @retval None
+
**/
VOID
ArmCallSvc (
diff --git a/ArmPkg/Library/ArmSvcLib/AArch64/ArmSvc.S b/ArmPkg/Library/ArmSvcLib/AArch64/ArmSvc.S
index ee265f94b9..1a7c10cb79 100644
--- a/ArmPkg/Library/ArmSvcLib/AArch64/ArmSvc.S
+++ b/ArmPkg/Library/ArmSvcLib/AArch64/ArmSvc.S
@@ -33,9 +33,11 @@ ASM_PFX(ArmCallSvc):
ldr x9, [sp, #16]
// Store the SVC returned values into the ARM_SVC_ARGS structure.
- // A SVC call can return up to 4 values - we do not need to store back x4-x7.
+ // A SVC call can return up to 8 values
stp x0, x1, [x9, #0]
stp x2, x3, [x9, #16]
+ stp x4, x5, [x9, #32]
+ stp x6, x7, [x9, #48]
mov x0, x9
--
2.17.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#70359): https://edk2.groups.io/g/devel/message/70359
Mute This Topic: https://groups.io/mt/79696439/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list