test-runner: Allow running arm64 test-runner with an arm32 trusty image
Allow specifying a custom ARCH for test-runner
Allow booting test-runner in el1 instead of el2
Bug: 79993976
Change-Id: I1d81b919938e665d591fef84c406630e4f8cf8ef
diff --git a/test-runner/arm64/asm.S b/test-runner/arm64/asm.S
index a0e9c24..2b396ef 100644
--- a/test-runner/arm64/asm.S
+++ b/test-runner/arm64/asm.S
@@ -28,8 +28,17 @@
_start:
/* Set exception vector base */
adr x0, _start
- msr vbar_el2, x0
+ mrs x1, CurrentEL
+ and x1, x1, #0xc
+ cmp x1, #0x8
+ bne vbar_setup_not_el2
+ msr vbar_el2, x0
+ b vbar_setup_done
+vbar_setup_not_el2:
+ msr vbar_el1, x0
+
+vbar_setup_done:
/* Setup stack */
adr x0, stack
mov sp, x0
diff --git a/test-runner/test-runner-inc.mk b/test-runner/test-runner-inc.mk
index 33a6024..551cbc8 100644
--- a/test-runner/test-runner-inc.mk
+++ b/test-runner/test-runner-inc.mk
@@ -24,10 +24,11 @@
TEST_RUNNER_DIR := $(GET_LOCAL_DIR)
TEST_RUNNER_MEMBASE ?= 0x60000000 # Default MEMBASE for arm64 qemu
+TEST_RUNNER_ARCH ?= $(ARCH)
XBIN_NAME := test-runner
XBIN_TOP_MODULE := $(TEST_RUNNER_DIR)
-XBIN_ARCH := $(ARCH)
+XBIN_ARCH := $(TEST_RUNNER_ARCH)
XBIN_BUILDDIR := $(BUILDDIR)/test-runner
XBIN_LINKER_SCRIPT := $(BUILDDIR)/test-runner.ld