|
@@ -139,7 +139,6 @@ static void riscv_any_cpu_init(Object *obj)
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
set_misa(env, RVXLEN | RVI | RVM | RVA | RVF | RVD | RVC | RVU);
|
|
set_misa(env, RVXLEN | RVI | RVM | RVA | RVF | RVD | RVC | RVU);
|
|
set_priv_version(env, PRIV_VERSION_1_11_0);
|
|
set_priv_version(env, PRIV_VERSION_1_11_0);
|
|
- set_resetvec(env, DEFAULT_RSTVEC);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static void riscv_base_cpu_init(Object *obj)
|
|
static void riscv_base_cpu_init(Object *obj)
|
|
@@ -147,7 +146,6 @@ static void riscv_base_cpu_init(Object *obj)
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
/* We set this in the realise function */
|
|
/* We set this in the realise function */
|
|
set_misa(env, 0);
|
|
set_misa(env, 0);
|
|
- set_resetvec(env, DEFAULT_RSTVEC);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static void rvxx_sifive_u_cpu_init(Object *obj)
|
|
static void rvxx_sifive_u_cpu_init(Object *obj)
|
|
@@ -155,7 +153,6 @@ static void rvxx_sifive_u_cpu_init(Object *obj)
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
set_misa(env, RVXLEN | RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU);
|
|
set_misa(env, RVXLEN | RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU);
|
|
set_priv_version(env, PRIV_VERSION_1_10_0);
|
|
set_priv_version(env, PRIV_VERSION_1_10_0);
|
|
- set_resetvec(env, 0x1004);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static void rvxx_sifive_e_cpu_init(Object *obj)
|
|
static void rvxx_sifive_e_cpu_init(Object *obj)
|
|
@@ -163,7 +160,6 @@ static void rvxx_sifive_e_cpu_init(Object *obj)
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
set_misa(env, RVXLEN | RVI | RVM | RVA | RVC | RVU);
|
|
set_misa(env, RVXLEN | RVI | RVM | RVA | RVC | RVU);
|
|
set_priv_version(env, PRIV_VERSION_1_10_0);
|
|
set_priv_version(env, PRIV_VERSION_1_10_0);
|
|
- set_resetvec(env, 0x1004);
|
|
|
|
qdev_prop_set_bit(DEVICE(obj), "mmu", false);
|
|
qdev_prop_set_bit(DEVICE(obj), "mmu", false);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -174,7 +170,6 @@ static void rv32_ibex_cpu_init(Object *obj)
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
CPURISCVState *env = &RISCV_CPU(obj)->env;
|
|
set_misa(env, RV32 | RVI | RVM | RVC | RVU);
|
|
set_misa(env, RV32 | RVI | RVM | RVC | RVU);
|
|
set_priv_version(env, PRIV_VERSION_1_10_0);
|
|
set_priv_version(env, PRIV_VERSION_1_10_0);
|
|
- set_resetvec(env, 0x8090);
|
|
|
|
qdev_prop_set_bit(DEVICE(obj), "mmu", false);
|
|
qdev_prop_set_bit(DEVICE(obj), "mmu", false);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -384,6 +379,8 @@ static void riscv_cpu_realize(DeviceState *dev, Error **errp)
|
|
set_feature(env, RISCV_FEATURE_PMP);
|
|
set_feature(env, RISCV_FEATURE_PMP);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ set_resetvec(env, cpu->cfg.resetvec);
|
|
|
|
+
|
|
/* If misa isn't set (rv32 and rv64 machines) set it here */
|
|
/* If misa isn't set (rv32 and rv64 machines) set it here */
|
|
if (!env->misa) {
|
|
if (!env->misa) {
|
|
/* Do some ISA extension error checking */
|
|
/* Do some ISA extension error checking */
|