From af2c9ecdf1b68c6243f6d23e26d0281d182d3b45 Mon Sep 17 00:00:00 2001 From: Jeenu Viswambharan Date: Wed, 17 Jan 2018 12:30:11 +0000 Subject: SDEI: Allow platforms to define explicit events The current macros only allow to define dynamic and statically-bound SDEI events. However, there ought be a mechanism to define SDEI events that are explicitly dispatched; i.e., events that are dispatched as a result of a previous secure interrupt or other exception This patch introduces SDEI_EXPLICIT_EVENT() macro to define an explicit event. They must be placed under private mappings. Only the priority flags are allowed to be additionally specified. Documentation updated. Change-Id: I2e12f5571381195d6234c9dfbd5904608ad41db3 Signed-off-by: Jeenu Viswambharan --- include/services/sdei.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/services/sdei.h b/include/services/sdei.h index ce9a008c..ee3531cb 100644 --- a/include/services/sdei.h +++ b/include/services/sdei.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -52,6 +52,7 @@ #define _SDEI_MAPF_SIGNALABLE_SHIFT 3 #define _SDEI_MAPF_PRIVATE_SHIFT 4 #define _SDEI_MAPF_CRITICAL_SHIFT 5 +#define _SDEI_MAPF_EXPLICIT_SHIFT 6 /* SDEI event 0 */ #define SDEI_EVENT_0 0 @@ -81,9 +82,12 @@ */ #define SDEI_MAPF_DYNAMIC BIT(_SDEI_MAPF_DYNAMIC_SHIFT) #define SDEI_MAPF_BOUND BIT(_SDEI_MAPF_BOUND_SHIFT) +#define SDEI_MAPF_EXPLICIT BIT(_SDEI_MAPF_EXPLICIT_SHIFT) #define SDEI_MAPF_SIGNALABLE BIT(_SDEI_MAPF_SIGNALABLE_SHIFT) #define SDEI_MAPF_PRIVATE BIT(_SDEI_MAPF_PRIVATE_SHIFT) + +#define SDEI_MAPF_NORMAL 0 #define SDEI_MAPF_CRITICAL BIT(_SDEI_MAPF_CRITICAL_SHIFT) /* Indices of private and shared mappings */ @@ -114,6 +118,9 @@ #define SDEI_DEFINE_EVENT_0(_intr) \ SDEI_PRIVATE_EVENT(SDEI_EVENT_0, _intr, SDEI_MAPF_SIGNALABLE) +#define SDEI_EXPLICIT_EVENT(_event, _pri) \ + SDEI_EVENT_MAP(_event, 0, _pri | SDEI_MAPF_EXPLICIT | SDEI_MAPF_PRIVATE) + /* * Declare shared and private entries for each core. Also declare a global * structure containing private and share entries. -- cgit v1.2.3