The 'max' CPU type is being configured during init() time by enabling all relevant extensions.
Instead of checking for 'max' CPU to enable all extensions, add a new CPU cfg flag 'max_features' that can be used by any CPU during its cpu_init() function. We'll check for it during post_init() time to decide whether we should enable the maximum amount of features in the current CPU instance. Signed-off-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com> --- target/riscv/cpu.c | 2 ++ target/riscv/cpu_cfg.h | 1 + 2 files changed, 3 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index e2e8724dc2..c35d58c64b 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -424,6 +424,8 @@ static void riscv_max_cpu_init(Object *obj) CPURISCVState *env = &cpu->env; RISCVMXL mlx = MXL_RV64; + cpu->cfg.max_features = true; + #ifdef TARGET_RISCV32 mlx = MXL_RV32; #endif diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h index 0e6a0f245c..df723e697b 100644 --- a/target/riscv/cpu_cfg.h +++ b/target/riscv/cpu_cfg.h @@ -137,6 +137,7 @@ struct RISCVCPUConfig { bool epmp; bool debug; bool misa_w; + bool max_features; bool short_isa_string; -- 2.41.0