]> git.baikalelectronics.ru Git - arm-tf.git/commitdiff
fix(context-mgmt): enable SCXTNUM access
authorMaksims Svecovs <maksims.svecovs@arm.com>
Thu, 2 Feb 2023 16:10:22 +0000 (16:10 +0000)
committerMaksims Svecovs <maksims.svecovs@arm.com>
Thu, 9 Feb 2023 11:46:03 +0000 (11:46 +0000)
Enable SCXTNUM_ELx access for lower ELs in non-secure state.
Make realm context setup take this build flag into account but enable it
by default when RME is used.

Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
Change-Id: Ieb0186b2fdffad464bb9316fc3973772c9c28cd0

Makefile
lib/el3_runtime/aarch64/context_mgmt.c

index f4d623eca9fefdbaa095751b75bb95aa8eea10f8..e2922a2902766e8c54b888df9c32a6e30255bdbe 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2013-2022, Arm Limited and Contributors. All rights reserved.
+# Copyright (c) 2013-2023, Arm Limited and Contributors. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -153,6 +153,9 @@ ARM_ARCH_MINOR := 5
 ENABLE_FEAT_ECV = 1
 ENABLE_FEAT_FGT = 1
 
+# RME enables CSV2_2 extension by default.
+ENABLE_FEAT_CSV2_2 = 1
+
 endif
 
 # USE_SPINLOCK_CAS requires AArch64 build
index 3bcefdb5d2045e9e7f3bd2e8b2c956766c7e27dd..dab25d6816d2e3368e8b5a71813c6241109dcb46 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2022, Arm Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2023, Arm Limited and Contributors. All rights reserved.
  * Copyright (c) 2022, NVIDIA Corporation. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
@@ -169,7 +169,12 @@ static void setup_realm_context(cpu_context_t *ctx, const struct entry_point_inf
        state = get_el3state_ctx(ctx);
        scr_el3 = read_ctx_reg(state, CTX_SCR_EL3);
 
-       scr_el3 |= SCR_NS_BIT | SCR_NSE_BIT | SCR_EnSCXT_BIT;
+       scr_el3 |= SCR_NS_BIT | SCR_NSE_BIT;
+
+#if ENABLE_FEAT_CSV2_2
+       /* Enable access to the SCXTNUM_ELx registers. */
+       scr_el3 |= SCR_EnSCXT_BIT;
+#endif
 
        write_ctx_reg(state, CTX_SCR_EL3, scr_el3);
 }
@@ -222,6 +227,11 @@ static void setup_ns_context(cpu_context_t *ctx, const struct entry_point_info *
        scr_el3 |= SCR_TERR_BIT;
 #endif
 
+#if ENABLE_FEAT_CSV2_2
+       /* Enable access to the SCXTNUM_ELx registers. */
+       scr_el3 |= SCR_EnSCXT_BIT;
+#endif
+
 #ifdef IMAGE_BL31
        /*
         * SCR_EL3.IRQ, SCR_EL3.FIQ: Enable the physical FIQ and IRQ routing as