aboutsummaryrefslogtreecommitdiff
path: root/src/arch/arm64/boot.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/arm64/boot.c')
-rw-r--r--src/arch/arm64/boot.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/src/arch/arm64/boot.c b/src/arch/arm64/boot.c
index 5fd46a7ebd..95c51d3842 100644
--- a/src/arch/arm64/boot.c
+++ b/src/arch/arm64/boot.c
@@ -36,23 +36,8 @@ static void run_payload(struct prog *prog)
if (IS_ENABLED(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE))
arm_tf_run_bl31((u64)doit, (u64)arg, payload_spsr);
- else {
- uint8_t current_el = get_current_el();
-
- printk(BIOS_SPEW, "entry = %p\n", doit);
-
- /* If current EL is not EL3, jump to payload at same EL. */
- if (current_el != EL3)
- doit(arg);
- else {
- /* If current EL is EL3, we transition to payload in EL2. */
- struct exc_state exc_state;
- memset(&exc_state, 0, sizeof(exc_state));
- exc_state.elx.spsr = payload_spsr;
-
- transition_with_entry(doit, arg, &exc_state);
- }
- }
+ else
+ transition_to_el2(doit, arg, payload_spsr);
}
void arch_prog_run(struct prog *prog)