| From e5e1cf36cb7b77a5bb526f1744c0c77164374ca3 Mon Sep 17 00:00:00 2001 |
| From: Vishnu Banavath <vishnu.banavath@arm.com> |
| Date: Fri, 10 Dec 2021 20:10:41 +0000 |
| Subject: [PATCH 16/24] efi_boottime: corstone1000: pass interface id and |
| kernel event id using register w4 |
| |
| Initially the interface/event IDs are passed to the SP using register |
| w3 and w5. |
| |
| Now the SE proxy SP requires this arguments to be in register w4. |
| |
| This change is to pass interface ID(31:16) and kernel started |
| event ID(15:0) to SE proxy SP to trigger an event to |
| secure enclave just before ExitbootService(). |
| |
| Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com> |
| Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com> |
| Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org> |
| --- |
| lib/efi_loader/efi_boottime.c | 13 ++++++++++--- |
| 1 file changed, 10 insertions(+), 3 deletions(-) |
| |
| diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c |
| index f2b5c7834c01..140d0f4f71da 100644 |
| --- a/lib/efi_loader/efi_boottime.c |
| +++ b/lib/efi_loader/efi_boottime.c |
| @@ -27,6 +27,11 @@ |
| #include <arm_ffa_helper.h> |
| #endif |
| |
| +#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000) |
| +#include <linux/bitfield.h> |
| +#include <linux/bitops.h> |
| +#endif |
| + |
| DECLARE_GLOBAL_DATA_PTR; |
| |
| /* Task priority level */ |
| @@ -2120,10 +2125,12 @@ static int efi_corstone1000_kernel_started_event(void) |
| func_data.data0 = &part_id; |
| |
| /* |
| - * setting the kernel started event arguments |
| + * setting the kernel started event arguments: |
| + * setting capsule update interface ID(31:16) |
| + * the kernel started event ID(15:0) |
| */ |
| - msg.a3 = CORSTONE1000_SEPROXY_UPDATE_SVC_ID; |
| - msg.a5 = CORSTONE1000_KERNEL_STARTED_EVT; |
| + msg.a4 = PREP_SEPROXY_SVC_ID(CORSTONE1000_SEPROXY_UPDATE_SVC_ID) | |
| + PREP_SEPROXY_EVT(CORSTONE1000_KERNEL_STARTED_EVT); |
| |
| func_data.data1_size = sizeof(msg); |
| func_data.data1 = &msg; |
| -- |
| 2.37.1 |
| |