On Thu, Nov 14, 2024 at 3:20 AM Daniel Henrique Barboza
<dbarb...@ventanamicro.com> wrote:
>
> Commit 68c9e54bea handled a situation where a warning was being shown
> when using the 'sifive_e' cpu when disabling the named extension zic64b.
> It makes little sense to show user warnings for named extensions that
> users can't control, and the solution taken was to disable zic64b
> manually in riscv_cpu_update_named_features().
>
> This solution won't scale well when adding more named features, and can
> eventually end up repeating riscv_cpu_disable_priv_spec_isa_exts().
>
> Change riscv_cpu_disable_priv_spec_isa_exts() to not show warnings when
> disabling a named feature. This will accomplish the same thing we're
> doing today while avoiding having two points where we're disabling
> exts via priv_ver mismatch.
>
> Signed-off-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com>

Reviewed-by: Alistair Francis <alistair.fran...@wdc.com>

Alistair

> ---
>  target/riscv/tcg/tcg-cpu.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c
> index c62c221696..cd83968166 100644
> --- a/target/riscv/tcg/tcg-cpu.c
> +++ b/target/riscv/tcg/tcg-cpu.c
> @@ -304,6 +304,15 @@ static void 
> riscv_cpu_disable_priv_spec_isa_exts(RISCVCPU *cpu)
>              }
>
>              isa_ext_update_enabled(cpu, edata->ext_enable_offset, false);
> +
> +            /*
> +             * Do not show user warnings for named features that users
> +             * can't enable/disable in the command line. See commit
> +             * 68c9e54bea for more info.
> +             */
> +            if (cpu_cfg_offset_is_named_feat(edata->ext_enable_offset)) {
> +                continue;
> +            }
>  #ifndef CONFIG_USER_ONLY
>              warn_report("disabling %s extension for hart 0x" TARGET_FMT_lx
>                          " because privilege spec version does not match",
> @@ -331,11 +340,9 @@ static void riscv_cpu_update_named_features(RISCVCPU 
> *cpu)
>          cpu->cfg.has_priv_1_13 = true;
>      }
>
> -    /* zic64b is 1.12 or later */
>      cpu->cfg.ext_zic64b = cpu->cfg.cbom_blocksize == 64 &&
>                            cpu->cfg.cbop_blocksize == 64 &&
> -                          cpu->cfg.cboz_blocksize == 64 &&
> -                          cpu->cfg.has_priv_1_12;
> +                          cpu->cfg.cboz_blocksize == 64;
>  }
>
>  static void riscv_cpu_validate_g(RISCVCPU *cpu)
> --
> 2.47.0
>
>

Reply via email to