summaryrefslogtreecommitdiffstats
path: root/bsps/aarch64/shared
diff options
context:
space:
mode:
authorGedare Bloom <gedare@rtems.org>2021-06-24 09:33:22 -0600
committerGedare Bloom <gedare@rtems.org>2021-06-24 12:55:23 -0600
commit93088fb8351c94899b82f0ed4d658cd98a028c1f (patch)
tree5073d5471b637f201b1b8064bd343227140cb1eb /bsps/aarch64/shared
parentbsps/aarch64: add non-secure mode and versal support (diff)
downloadrtems-93088fb8351c94899b82f0ed4d658cd98a028c1f.tar.bz2
bsps/aarch64: replace boot options with asm switch code
Diffstat (limited to 'bsps/aarch64/shared')
-rw-r--r--bsps/aarch64/shared/start/start.S15
1 files changed, 8 insertions, 7 deletions
diff --git a/bsps/aarch64/shared/start/start.S b/bsps/aarch64/shared/start/start.S
index 338c51f7d0..bc1fb00d70 100644
--- a/bsps/aarch64/shared/start/start.S
+++ b/bsps/aarch64/shared/start/start.S
@@ -98,7 +98,13 @@ _start:
#endif
msr SCTLR_EL1, x0
-#ifdef BSP_START_IN_EL3_MONITOR_MODE_SUPPORT
+ mrs x0, CurrentEL
+ cmp x0, #(1<<2)
+ b.eq _el1_start
+ cmp x0, #(2<<2)
+ b.eq _el2_start
+
+_el3_start:
/* Drop from EL3 to EL2 */
/* Initialize HCR_EL2 and SCTLR_EL2 */
@@ -131,12 +137,7 @@ _start:
#endif
msr ELR_EL3, x0
eret
-#endif
-#if defined(BSP_START_IN_HYP_SUPPORT) || \
- ( defined(BSP_START_IN_EL3_MONITOR_MODE_SUPPORT) && \
- defined(AARCH64_IS_NONSECURE) \
- )
_el2_start:
/* Drop from EL2 to EL1 */
@@ -159,8 +160,8 @@ _el2_start:
adr x0, _el1_start
msr ELR_EL2, x0
eret
+
_el1_start:
-#endif
#ifdef RTEMS_SMP
/* Read MPIDR and get current processor index */