From 2480e4c3e71e82a055d0a058d29c68dd98c3c96f Mon Sep 17 00:00:00 2001 From: Manish Pandey Date: Fri, 25 Sep 2020 09:50:31 +0100 Subject: [PATCH 1/2] doc: spm: update messaging method field As per FF-A v1.0 spec, Table 3.1, messaging method field also contains information about whether partition supports managed exit or not. Since a partition can support managed exit only if it supports direct messaging, so there are two new possible values, managed exit with only direct messaging or with both messaging methods. Signed-off-by: Manish Pandey Change-Id: Ic77cfb37d70975c3a36c56f8b7348d385735f378 --- docs/components/psa-ffa-manifest-binding.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/components/psa-ffa-manifest-binding.rst b/docs/components/psa-ffa-manifest-binding.rst index af79074af..4ec3faace 100644 --- a/docs/components/psa-ffa-manifest-binding.rst +++ b/docs/components/psa-ffa-manifest-binding.rst @@ -112,6 +112,8 @@ Partition Properties - 0x0: direct messaging method - 0x1: indirect messaging method - 0x2: both direct and indirect messaging methods + - 0x3: direct messaging method with managed exit support + - 0x4: both messaging methods with managed exit support - has-primary-scheduler - value type: @@ -244,4 +246,4 @@ Device Regions -------------- -*Copyright (c) 2019-2020, Arm Limited and Contributors. All rights reserved.* +*Copyright (c) 2019-2021, Arm Limited and Contributors. All rights reserved.* From 386dc365434a2c033b373e921554aa6bb7948053 Mon Sep 17 00:00:00 2001 From: Olivier Deprez Date: Fri, 2 Apr 2021 11:09:10 +0200 Subject: [PATCH 2/2] spmd: add FFA_INTERRUPT forwarding In the case of a SP pre-empted by a non-secure interrupt, the SPMC returns to the SPMD through the FFA_INTERRUPT ABI. It is then forwarded to the normal world driver hinting the SP has to be resumed after the non-secure interrupt has been serviced. Signed-off-by: Olivier Deprez Change-Id: I51a694dddcb8ea30fa84e1f11d018bc2abec0a56 --- services/std_svc/spmd/spmd_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/std_svc/spmd/spmd_main.c b/services/std_svc/spmd/spmd_main.c index 7b20bf1b0..06039f007 100644 --- a/services/std_svc/spmd/spmd_main.c +++ b/services/std_svc/spmd/spmd_main.c @@ -639,7 +639,7 @@ uint64_t spmd_smc_handler(uint32_t smc_fid, } /* Fall through to forward the call to the other world */ - + case FFA_INTERRUPT: case FFA_MSG_YIELD: /* This interface must be invoked only by the Secure world */ if (!secure_origin) {