qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 3/5] target-arm: Add CP_ACCESS_TRAP_UNCATEGORIZE


From: Edgar E. Iglesias
Subject: Re: [Qemu-devel] [PATCH 3/5] target-arm: Add CP_ACCESS_TRAP_UNCATEGORIZED_EL2, 3
Date: Mon, 17 Aug 2015 03:52:46 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Jul 24, 2015 at 04:21:01PM +0100, Peter Maydell wrote:
> Some coprocessor register access functions need to be able
> to report "trap to EL3 with an 'uncategorized' syndrome";
> add the necessary CPAccessResult enum and handling for it.
> 
> I don't currently know of any registers that need to trap
> to EL2 with the 'uncategorized' syndrome, but adding the
> _EL2 enum as well is trivial and fills in what would
> otherwise be an odd gap in the handling.
> 
> Signed-off-by: Peter Maydell <address@hidden>

Reviewed-by: Edgar E. Iglesias <address@hidden>


> ---
>  target-arm/cpu.h       | 3 +++
>  target-arm/op_helper.c | 8 ++++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/target-arm/cpu.h b/target-arm/cpu.h
> index 7e89152..685474e 100644
> --- a/target-arm/cpu.h
> +++ b/target-arm/cpu.h
> @@ -1280,6 +1280,9 @@ typedef enum CPAccessResult {
>      /* As CP_ACCESS_TRAP, but for traps directly to EL2 or EL3 */
>      CP_ACCESS_TRAP_EL2 = 3,
>      CP_ACCESS_TRAP_EL3 = 4,
> +    /* As CP_ACCESS_UNCATEGORIZED, but for traps directly to EL2 or EL3 */
> +    CP_ACCESS_TRAP_UNCATEGORIZED_EL2 = 5,
> +    CP_ACCESS_TRAP_UNCATEGORIZED_EL3 = 6,
>  } CPAccessResult;
>  
>  /* Access functions for coprocessor registers. These cannot fail and
> diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c
> index 663c05d..1425a1d 100644
> --- a/target-arm/op_helper.c
> +++ b/target-arm/op_helper.c
> @@ -444,6 +444,14 @@ void HELPER(access_check_cp_reg)(CPUARMState *env, void 
> *rip, uint32_t syndrome)
>          target_el = exception_target_el(env);
>          syndrome = syn_uncategorized();
>          break;
> +    case CP_ACCESS_TRAP_UNCATEGORIZED_EL2:
> +        target_el = 2;
> +        syndrome = syn_uncategorized();
> +        break;
> +    case CP_ACCESS_TRAP_UNCATEGORIZED_EL3:
> +        target_el = 3;
> +        syndrome = syn_uncategorized();
> +        break;
>      default:
>          g_assert_not_reached();
>      }
> -- 
> 1.9.1
> 



reply via email to

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