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