qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 2/2] ARM: arm_cpu_reset: make possible to use high


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] [RFC 2/2] ARM: arm_cpu_reset: make possible to use high vectors for reset_exc
Date: Sat, 7 Dec 2013 11:08:40 +1000

On Sat, Dec 7, 2013 at 10:55 AM, Antony Pavlov <address@hidden> wrote:
> Signed-off-by: Antony Pavlov <address@hidden>
> ---
>  target-arm/cpu.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/target-arm/cpu.c b/target-arm/cpu.c
> index f838499..6f548c7 100644
> --- a/target-arm/cpu.c
> +++ b/target-arm/cpu.c
> @@ -126,6 +126,10 @@ static void arm_cpu_reset(CPUState *s)
>              env->cp15.c1_sys = c1_sys | (1 << 13);
>      }
>
> +    if (!IS_M(env) && env->cp15.c1_sys & (1 << 13)) {
> +            env->regs[15] = 0xFFFF0000;

Dont see the need for the second if. This should only be reachable if
reset_hivecs == true. Can you just put this line after the above
"env->cp15.c1_sys = c1_sys | (1 << 13);" ?

With the change I suggested in P1, the reset_hivecs variable wont be a
property of M CPUs so it will be impossible for an M to have
rest_hivecs regardless of board code (mis)behaviour. So I think you
are safe to drop the IS_M here.

Regards,
Peter

> +    }
> +
>      env->vfp.xregs[ARM_VFP_FPEXC] = 0;
>  #endif
>      set_flush_to_zero(1, &env->vfp.standard_fp_status);
> --
> 1.8.5
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]