[PATCH v2 7/7] bsps/aarch64: replace boot options with asm switch code

Gedare Bloom gedare at rtems.org
Thu Jun 24 15:50:24 UTC 2021


---
 bsps/aarch64/shared/start/start.S               | 17 ++++++++++-------
 .../bsps/aarch64/xilinx-versal/grp_qemu.yml     |  2 --
 .../bsps/aarch64/xilinx-versal/grp_vck190.yml   |  2 --
 .../bsps/aarch64/xilinx-zynqmp/grp_zu3eg.yml    |  2 --
 spec/build/bsps/optstartmon.yml                 | 16 ----------------
 5 files changed, 10 insertions(+), 29 deletions(-)
 delete mode 100644 spec/build/bsps/optstartmon.yml

diff --git a/bsps/aarch64/shared/start/start.S b/bsps/aarch64/shared/start/start.S
index 338c51f7d0..5b535463de 100644
--- a/bsps/aarch64/shared/start/start.S
+++ b/bsps/aarch64/shared/start/start.S
@@ -98,7 +98,15 @@ _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
+  cmp x0, #(3<<2)
+  b.eq _el3_start
+
+_el3_start:
 	/* Drop from EL3 to EL2 */
 
   /* Initialize HCR_EL2 and SCTLR_EL2 */
@@ -131,12 +139,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 +162,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 */
diff --git a/spec/build/bsps/aarch64/xilinx-versal/grp_qemu.yml b/spec/build/bsps/aarch64/xilinx-versal/grp_qemu.yml
index 71d8c9ac49..5a98190ee3 100644
--- a/spec/build/bsps/aarch64/xilinx-versal/grp_qemu.yml
+++ b/spec/build/bsps/aarch64/xilinx-versal/grp_qemu.yml
@@ -9,8 +9,6 @@ ldflags: []
 links:
 - role: build-dependency
   uid: grp
-- role: build-dependency
-  uid: ../../optstartmon
 - role: build-dependency
   uid: tstqemu
 type: build
diff --git a/spec/build/bsps/aarch64/xilinx-versal/grp_vck190.yml b/spec/build/bsps/aarch64/xilinx-versal/grp_vck190.yml
index c10f2a725f..d47895b489 100644
--- a/spec/build/bsps/aarch64/xilinx-versal/grp_vck190.yml
+++ b/spec/build/bsps/aarch64/xilinx-versal/grp_vck190.yml
@@ -9,8 +9,6 @@ ldflags: []
 links:
 - role: build-dependency
   uid: grp
-- role: build-dependency
-  uid: ../../optstarthyp
 - role: build-dependency
   uid: tstvck190
 type: build
diff --git a/spec/build/bsps/aarch64/xilinx-zynqmp/grp_zu3eg.yml b/spec/build/bsps/aarch64/xilinx-zynqmp/grp_zu3eg.yml
index 801195cdf5..fa6347b2e4 100644
--- a/spec/build/bsps/aarch64/xilinx-zynqmp/grp_zu3eg.yml
+++ b/spec/build/bsps/aarch64/xilinx-zynqmp/grp_zu3eg.yml
@@ -9,8 +9,6 @@ ldflags: []
 links:
 - role: build-dependency
   uid: grp
-- role: build-dependency
-  uid: ../../optstarthyp
 - role: build-dependency
   uid: tstzu3eg
 type: build
diff --git a/spec/build/bsps/optstartmon.yml b/spec/build/bsps/optstartmon.yml
deleted file mode 100644
index 9c48aad926..0000000000
--- a/spec/build/bsps/optstartmon.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-actions:
-- get-boolean: null
-- define-condition: null
-build-type: option
-copyrights:
-- Copyright (C) 2021 Gedare Bloom <gedare at rtems.org>
-default: true
-default-by-variant: []
-description: |
-  If set to true, then a system start in monitor mode (EL3) is
-  supported, otherwise it is unsupported.
-enabled-by: true
-links: []
-name: BSP_START_IN_EL3_MONITOR_MODE_SUPPORT
-type: build
-- 
2.25.1



More information about the devel mailing list