feat(interrupts): support Other S-Int action field

Secure partitions can request SPMC to queue secure interrupts that
are targetted for other SPs through a new field. This patch adds
support for SPs to specify the field `other-s-interrupts-action` in
their manifest.

Change-Id: I6c68b1b7216c5121d3d8e522ede94a9c291c3403
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
diff --git a/inc/hf/manifest.h b/inc/hf/manifest.h
index 3f4cd3e..fb8bfc0 100644
--- a/inc/hf/manifest.h
+++ b/inc/hf/manifest.h
@@ -159,8 +159,6 @@
 	bool notification_support;
 	/** optional */
 	bool has_primary_scheduler;
-	/** optional - preemptible / run to completion */
-	uint8_t runtime_model;
 	/** optional - tuples SEPID/SMMUID/streamId */
 	uint32_t stream_ep_ids[1];
 
@@ -170,6 +168,8 @@
 	/** Device regions */
 	uint16_t dev_region_count;
 	struct device_region dev_regions[PARTITION_MAX_DEVICE_REGIONS];
+	/** optional - action in response to Other-Secure interrupt */
+	uint8_t other_s_interrupts_action;
 };
 
 /**
@@ -232,8 +232,9 @@
 	MANIFEST_ERROR_MEM_REGION_OVERLAP,
 	MANIFEST_ERROR_INVALID_MEM_PERM,
 	MANIFEST_ERROR_INTERRUPT_ID_REPEATED,
-	MANIFEST_ILLEGAL_NS_ACTION,
+	MANIFEST_ERROR_ILLEGAL_NS_INT_ACTION,
 	MANIFEST_ERROR_INTERRUPT_ID_NOT_IN_LIST,
+	MANIFEST_ERROR_ILLEGAL_OTHER_S_INT_ACTION,
 };
 
 enum manifest_return_code manifest_init(struct mm_stage1_locked stage1_locked,
diff --git a/inc/hf/vm.h b/inc/hf/vm.h
index 6dd1584..fbb2946 100644
--- a/inc/hf/vm.h
+++ b/inc/hf/vm.h
@@ -24,6 +24,10 @@
 #define LOG_BUFFER_SIZE 256
 #define VM_MANIFEST_MAX_INTERRUPTS 32
 
+/** Action for Other-Secure interrupts by SPMC. */
+#define OTHER_S_INT_ACTION_QUEUED 0
+#define OTHER_S_INT_ACTION_SIGNALED 1
+
 /**
  * The state of an RX buffer.
  *
@@ -225,6 +229,12 @@
 	 * non secure interrupt.
 	 */
 	uint8_t ns_interrupts_action;
+
+	/**
+	 * Action specified by a Partition through the manifest in response to
+	 * Other-S-Int.
+	 */
+	uint8_t other_s_interrupts_action;
 	bool me_signal_virq;
 	struct vm *next_boot;