On Thu May 2, 2024 at 9:43 AM AEST, BALATON Zoltan wrote:
> Several 4xx related CPUs have the same TLB settings. Split it off in a
> common function in cpu_init.
>
> Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu>
> ---
>  target/ppc/cpu_init.c | 46 ++++++++++++++++---------------------------
>  1 file changed, 17 insertions(+), 29 deletions(-)
>
> diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
> index 07ad788e54..d7e85c1b07 100644
> --- a/target/ppc/cpu_init.c
> +++ b/target/ppc/cpu_init.c
> @@ -2107,18 +2107,22 @@ static int check_pow_hid0_74xx(CPUPPCState *env)
>      return 0;
>  }
>  
> +static void init_tlbs_4xx(CPUPPCState *env)
> +{
> +#ifndef CONFIG_USER_ONLY
> +    env->nb_tlb = 64;
> +    env->nb_ways = 1;
> +    env->tlb_type = TLB_EMB;
> +#endif
> +}

e200 isn't 4xx though is it? Call it init_TLB_EMB()?

Otherwise,

Reviewed-by: Nicholas Piggin <npig...@gmail.com>

Thanks,
Nick

> +
>  static void init_proc_405(CPUPPCState *env)
>  {
>      register_40x_sprs(env);
>      register_405_sprs(env);
>      register_usprgh_sprs(env);
>  
> -    /* Memory management */
> -#if !defined(CONFIG_USER_ONLY)
> -    env->nb_tlb = 64;
> -    env->nb_ways = 1;
> -    env->tlb_type = TLB_EMB;
> -#endif
> +    init_tlbs_4xx(env);
>      init_excp_4xx(env);
>      env->dcache_line_size = 32;
>      env->icache_line_size = 32;
> @@ -2185,12 +2189,8 @@ static void init_proc_440EP(CPUPPCState *env)
>                   SPR_NOACCESS, SPR_NOACCESS,
>                   &spr_read_generic, &spr_write_generic,
>                   0x00000000);
> -    /* Memory management */
> -#if !defined(CONFIG_USER_ONLY)
> -    env->nb_tlb = 64;
> -    env->nb_ways = 1;
> -    env->tlb_type = TLB_EMB;
> -#endif
> +
> +    init_tlbs_4xx(env);
>      init_excp_BookE(env);
>      env->dcache_line_size = 32;
>      env->icache_line_size = 32;
> @@ -2282,12 +2282,7 @@ static void init_proc_440GP(CPUPPCState *env)
>      register_440_sprs(env);
>      register_usprgh_sprs(env);
>  
> -    /* Memory management */
> -#if !defined(CONFIG_USER_ONLY)
> -    env->nb_tlb = 64;
> -    env->nb_ways = 1;
> -    env->tlb_type = TLB_EMB;
> -#endif
> +    init_tlbs_4xx(env);
>      init_excp_BookE(env);
>      env->dcache_line_size = 32;
>      env->icache_line_size = 32;
> @@ -2355,12 +2350,8 @@ static void init_proc_440x5(CPUPPCState *env)
>                   SPR_NOACCESS, SPR_NOACCESS,
>                   &spr_read_generic, &spr_write_generic,
>                   0x00000000);
> -    /* Memory management */
> -#if !defined(CONFIG_USER_ONLY)
> -    env->nb_tlb = 64;
> -    env->nb_ways = 1;
> -    env->tlb_type = TLB_EMB;
> -#endif
> +
> +    init_tlbs_4xx(env);
>      init_excp_BookE(env);
>      env->dcache_line_size = 32;
>      env->icache_line_size = 32;
> @@ -2717,11 +2708,8 @@ static void init_proc_e200(CPUPPCState *env)
>                   SPR_NOACCESS, SPR_NOACCESS,
>                   &spr_read_generic, &spr_write_generic,
>                   0x00000000);
> -#if !defined(CONFIG_USER_ONLY)
> -    env->nb_tlb = 64;
> -    env->nb_ways = 1;
> -    env->tlb_type = TLB_EMB;
> -#endif
> +
> +    init_tlbs_4xx(env);
>      init_excp_e200(env, 0xFFFF0000UL);
>      env->dcache_line_size = 32;
>      env->icache_line_size = 32;


Reply via email to