On 01/19/2012 09:17 PM, Alexander Graf wrote:
> E500mc supports IVORs 36-41. Add them to the support mask.
> 
> Signed-off-by: Alexander Graf <ag...@suse.de>
> ---
>  target-ppc/translate_init.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
> index 83348b5..7d1c6a3 100644
> --- a/target-ppc/translate_init.c
> +++ b/target-ppc/translate_init.c
> @@ -4433,6 +4433,7 @@ enum fsl_e500_version {
>  static void init_proc_e500 (CPUPPCState *env, int version)
>  {
>      uint32_t tlbncfg[2];
> +    uint64_t ivor_mask = 0x0000000F0000FFFFULL;
>  #if !defined(CONFIG_USER_ONLY)
>      int i;
>  #endif
> @@ -4444,7 +4445,10 @@ static void init_proc_e500 (CPUPPCState *env, int 
> version)
>       *     complain when accessing them.
>       * gen_spr_BookE(env, 0x0000000F0000FD7FULL);
>       */
> -    gen_spr_BookE(env, 0x0000000F0000FFFFULL);
> +    if (version == fsl_e500mc) {
> +        ivor_mask |= 0x3F000000000ULL;
> +    }
> +    gen_spr_BookE(env, ivor_mask);
>      /* Processor identification */
>      spr_register(env, SPR_BOOKE_PIR, "PIR",
>                   SPR_NOACCESS, SPR_NOACCESS,
What happens when we add e5500 and future chips?  We should probably
move variant-specific data into a table instead of ad-hocking it.

Also, e500mc doesn't just add new IVORs, it drops the SPE IVORs.

-Scott


Reply via email to