diff options
Diffstat (limited to 'arch/arm/cpu/sm_as.S')
-rw-r--r-- | arch/arm/cpu/sm_as.S | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/arch/arm/cpu/sm_as.S b/arch/arm/cpu/sm_as.S index 09580e75de..de6cd0406f 100644 --- a/arch/arm/cpu/sm_as.S +++ b/arch/arm/cpu/sm_as.S @@ -129,7 +129,9 @@ secure_monitor: sub sp, sp, #4*4 @ allocate result structure on stack mov r12, sp push {r4-r6, r12} +#ifdef CONFIG_ARM_PSCI bl psci_entry +#endif pop {r4-r6, r12} ldm r12, {r0-r3} add sp, sp, #4*4 @@ -146,23 +148,14 @@ hyp_trap: mov pc, lr @ do no switch modes, but @ return to caller -ENTRY(armv7_switch_to_hyp) - mov r0, lr - mov r1, sp @ save SVC copy of LR and SP - isb - hvc #0 @ for older asm: .byte 0x70, 0x00, 0x40, 0xe1 - mov sp, r1 - mov lr, r0 @ restore SVC copy of LR and SP - - bx lr -ENDPROC(armv7_switch_to_hyp) - ENTRY(psci_cpu_entry) mrc p15, 0, r0, c1, c0, 1 @ ACTLR orr r0, r0, #(1 << 6) @ Set SMP bit mcr p15, 0, r0, c1, c0, 1 @ ACTLR bl secure_monitor_stack_setup +#ifdef CONFIG_ARM_PSCI bl psci_cpu_entry_c +#endif ENDPROC(psci_cpu_entry) |