feat(interrupts): preferred managed exit signal
A SP optionally specifies if vIRQ is the preferred choice for
signaling Managed Exit in response to a non secure interrupt.
Moreover, SPMC enables the following virtual maintenenace interrupts
by default for each Secure Partition:
> Managed Exit Interrupt
> Notification Pending Interrupt
Change-Id: I17131b42ee6fae2896804e4f952d9a371f237cd5
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
diff --git a/inc/hf/arch/plat/ffa.h b/inc/hf/arch/plat/ffa.h
index 6142440..07f274f 100644
--- a/inc/hf/arch/plat/ffa.h
+++ b/inc/hf/arch/plat/ffa.h
@@ -311,3 +311,6 @@
void plat_ffa_unwind_call_chain_ffa_direct_resp(struct vcpu *current,
struct vcpu *next);
+
+void plat_ffa_enable_virtual_maintenance_interrupts(
+ struct vcpu_locked current_locked);
diff --git a/inc/hf/manifest.h b/inc/hf/manifest.h
index 0985217..60c6f76 100644
--- a/inc/hf/manifest.h
+++ b/inc/hf/manifest.h
@@ -151,6 +151,8 @@
uint8_t messaging_method;
/** mandatory - action in response to non secure interrupt */
uint8_t ns_interrupts_action;
+ /** optional - managed exit signaled through vIRQ */
+ bool me_signal_virq;
/** optional - receipt of notifications. */
bool notification_support;
/** optional */
diff --git a/inc/hf/vm.h b/inc/hf/vm.h
index e87e2b8..350d3b4 100644
--- a/inc/hf/vm.h
+++ b/inc/hf/vm.h
@@ -222,6 +222,7 @@
* non secure interrupt.
*/
uint8_t ns_interrupts_action;
+ bool me_signal_virq;
struct vm *next_boot;
/**