SPM: Add build config for FF-M interrupt APIs

Add configs of optionally building FF-M interrupt APIs. Build:
- psa_irq_enable() and psa_irq_disable() for either FLIH or
  SLIH enabled.
- psa_reset_signal() for FLIH enabled.
- psa_eoi() for SLIH enabled.

Signed-off-by: Mingyang Sun <mingyang.sun@arm.com>
Change-Id: I0822f96c1e827181edf34a409b357b7e81485dc4
diff --git a/interface/include/config_impl.h.template b/interface/include/config_impl.h.template
index 85b2cba..214f928 100644
--- a/interface/include/config_impl.h.template
+++ b/interface/include/config_impl.h.template
@@ -19,6 +19,8 @@
 #define {{"%-56s"|format("CONFIG_TFM_PSA_API_SUPERVISOR_CALL")}} {{config_impl['CONFIG_TFM_PSA_API_SUPERVISOR_CALL']}}
 
 #define {{"%-56s"|format("CONFIG_TFM_CONNECTION_BASED_SERVICE_API")}} {{config_impl['CONFIG_TFM_CONNECTION_BASED_SERVICE_API']}}
+#define {{"%-56s"|format("CONFIG_TFM_FLIH_API")}} {{config_impl['CONFIG_TFM_FLIH_API']}}
+#define {{"%-56s"|format("CONFIG_TFM_SLIH_API")}} {{config_impl['CONFIG_TFM_SLIH_API']}}
 
 #if CONFIG_TFM_SPM_BACKEND_IPC == 1
 /* Trustzone NS agent working stack size. */
diff --git a/interface/include/psa_interface_redirect.h b/interface/include/psa_interface_redirect.h
index ee46d15..96dc79c 100644
--- a/interface/include/psa_interface_redirect.h
+++ b/interface/include/psa_interface_redirect.h
@@ -22,11 +22,7 @@
 #define psa_reply                psa_reply_svc
 #define psa_notify               psa_notify_svc
 #define psa_clear                psa_clear_svc
-#define psa_eoi                  psa_eoi_svc
 #define psa_panic                psa_panic_svc
-#define psa_irq_enable           psa_irq_enable_svc
-#define psa_irq_disable          psa_irq_disable_svc
-#define psa_reset_signal         psa_reset_signal_svc
 #define psa_rot_lifecycle_state  psa_rot_lifecycle_state_svc
 /* Following PSA APIs are only needed by connection-based services */
 #if CONFIG_TFM_CONNECTION_BASED_SERVICE_API == 1
@@ -35,6 +31,19 @@
 #define psa_set_rhandle          psa_set_rhandle_svc
 #endif /* CONFIG_TFM_CONNECTION_BASED_SERVICE_API */
 
+#if CONFIG_TFM_FLIH_API == 1 || CONFIG_TFM_SLIH_API == 1
+#define psa_irq_enable           psa_irq_enable_svc
+#define psa_irq_disable          psa_irq_disable_svc
+/* This API is only used for FLIH. */
+#if CONFIG_TFM_FLIH_API == 1
+#define psa_reset_signal         psa_reset_signal_svc
+#endif
+/* This API is only used for SLIH. */
+#if CONFIG_TFM_SLIH_API == 1
+#define psa_eoi                  psa_eoi_svc
+#endif
+#endif /* CONFIG_TFM_FLIH_API == 1 || CONFIG_TFM_SLIH_API == 1 */
+
 #elif CONFIG_TFM_PSA_API_CROSS_CALL == 1
 
 #define psa_framework_version    psa_framework_version_cross
@@ -48,11 +57,7 @@
 #define psa_reply                psa_reply_cross
 #define psa_notify               psa_notify_cross
 #define psa_clear                psa_clear_cross
-#define psa_eoi                  psa_eoi_cross
 #define psa_panic                psa_panic_cross
-#define psa_irq_enable           psa_irq_enable_cross
-#define psa_irq_disable          psa_irq_disable_cross
-#define psa_reset_signal         psa_reset_signal_cross
 #define psa_rot_lifecycle_state  psa_rot_lifecycle_state_cross
 /* Following PSA APIs are only needed by connection-based services */
 #if CONFIG_TFM_CONNECTION_BASED_SERVICE_API == 1
@@ -61,6 +66,19 @@
 #define psa_set_rhandle          psa_set_rhandle_cross
 #endif /* CONFIG_TFM_CONNECTION_BASED_SERVICE_API */
 
+#if CONFIG_TFM_FLIH_API == 1 || CONFIG_TFM_SLIH_API == 1
+#define psa_irq_enable           psa_irq_enable_cross
+#define psa_irq_disable          psa_irq_disable_cross
+/* This API is only used for FLIH. */
+#if CONFIG_TFM_FLIH_API == 1
+#define psa_reset_signal         psa_reset_signal_cross
+#endif
+/* This API is only used for SLIH. */
+#if CONFIG_TFM_SLIH_API == 1
+#define psa_eoi                  psa_eoi_cross
+#endif
+#endif /* CONFIG_TFM_FLIH_API == 1 || CONFIG_TFM_SLIH_API == 1 */
+
 #if PSA_FRAMEWORK_HAS_MM_IOVEC
 #define psa_map_invec            psa_map_invec_cross
 #define psa_unmap_invec          psa_unmap_invec_cross