diff options
Diffstat (limited to 'src/arch/arm64/boot.c')
-rw-r--r-- | src/arch/arm64/boot.c | 19 |
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) |