summaryrefslogtreecommitdiff
path: root/bl31
diff options
context:
space:
mode:
authorOlivier Deprez <olivier.deprez@arm.com>2022-09-02 11:06:52 +0200
committerTrustedFirmware Code Review <review@review.trustedfirmware.org>2022-09-02 11:06:52 +0200
commit9a5dec66953bc6e124513430dcff6b921e7ed874 (patch)
treead61e329537e8ddd8bec5ffc34b18f40df5f7598 /bl31
parentada1daeda9eeb277dfc6f08f5377dd1def39fbef (diff)
parent7c2fe62f1347bb94d82e9fdd3bc5eaebedaf0bc7 (diff)
downloadarm-trusted-firmware-9a5dec66953bc6e124513430dcff6b921e7ed874.tar.gz
Merge "fix(bl31): allow use of EHF with S-EL2 SPMC" into integration
Diffstat (limited to 'bl31')
-rw-r--r--bl31/ehf.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/bl31/ehf.c b/bl31/ehf.c
index 745f165d4..b328380d1 100644
--- a/bl31/ehf.c
+++ b/bl31/ehf.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2017-2022, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -475,9 +475,16 @@ void __init ehf_init(void)
assert((exception_data.pri_bits >= 1U) ||
(exception_data.pri_bits < 8U));
- /* Route EL3 interrupts when in Secure and Non-secure. */
+ /* Route EL3 interrupts when in Non-secure. */
set_interrupt_rm_flag(flags, NON_SECURE);
+
+ /*
+ * Route EL3 interrupts when in secure, only when SPMC is not present
+ * in S-EL2.
+ */
+#if !(defined(SPD_spmd) && (SPMD_SPM_AT_SEL2 == 1))
set_interrupt_rm_flag(flags, SECURE);
+#endif /* !(defined(SPD_spmd) && (SPMD_SPM_AT_SEL2 == 1)) */
/* Register handler for EL3 interrupts */
ret = register_interrupt_type_handler(INTR_TYPE_EL3,