[U-Boot] [PATCH] ARMv7: start.S: stay in HYP mode if u-boot is entered in it
Albert ARIBAUD
albert.u.boot at aribaud.net
Mon Apr 15 19:20:54 CEST 2013
Hi Andre,
On Tue, 2 Apr 2013 17:43:36 +0200, Andre Przywara
<andre.przywara at linaro.org> wrote:
> The KVM and Xen hypervisors for the Cortex-A15 virtualization
> implementation need to be entered in HYP mode. Should the primary
> board firmware already enter HYP mode (Calxeda firmware does that),
> we should not deliberately drop back to SVC mode.
> Since U-boot does not use the MMU, running in HYP mode is just fine.
>
> Signed-off-by: Andre Przywara <andre.przywara at linaro.org>
> ---
> arch/arm/cpu/armv7/start.S | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
> index 36a4c3c..95c8a95 100644
> --- a/arch/arm/cpu/armv7/start.S
> +++ b/arch/arm/cpu/armv7/start.S
> @@ -126,11 +126,15 @@ IRQ_STACK_START_IN:
> reset:
> bl save_boot_params
> /*
> - * set the cpu to SVC32 mode
> + * disable interrupts (FIQ and IRQ), also set the cpu to SVC32 mode,
> + * except if in HYP mode already
> */
> mrs r0, cpsr
> - bic r0, r0, #0x1f
> - orr r0, r0, #0xd3
> + and r1, r0, #0x1f @ mask mode bits
> + teq r1, #0x1a @ test for HYP mode
> + bicne r0, r0, #0x1f @ clear all mode bits
> + orrne r0, r0, #0x13 @ set SVC mode
> + orr r0, r0, #0xc0 @ disable FIQ and IRQ
> msr cpsr,r0
>
> /*
Applied to u-boot-arm/master, thanks!
Amicalement,
--
Albert.
More information about the U-Boot
mailing list