mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-02-02 11:21:09 +00:00
target/riscv: Add the lowRISC Ibex CPU
The reset vector is set in the init function don't set it again in realize. Backports commit 36b80ad99f7ea4979a4c5fc6e4072619b405e3b0 from qemu
This commit is contained in:
parent
2584ab8ee5
commit
2b2f91f82c
|
@ -136,6 +136,14 @@ static void rv32gcsu_priv1_10_0_cpu_init(struct uc_struct *uc, Object *obj, void
|
|||
set_feature(env, RISCV_FEATURE_PMP);
|
||||
}
|
||||
|
||||
static void rv32imcu_nommu_cpu_init(struct uc_struct *uc, Object *obj, void *opaque)
|
||||
{
|
||||
CPURISCVState *env = &RISCV_CPU(uc, obj)->env;
|
||||
set_misa(env, RV32 | RVI | RVM | RVC | RVU);
|
||||
set_priv_version(env, PRIV_VERSION_1_10_0);
|
||||
set_resetvec(env, 0x8090);
|
||||
}
|
||||
|
||||
static void rv32imacu_nommu_cpu_init(struct uc_struct *uc, Object *obj, void *opaque)
|
||||
{
|
||||
CPURISCVState *env = &RISCV_CPU(uc, obj)->env;
|
||||
|
@ -377,6 +385,7 @@ static const TypeInfo riscv_cpu_type_infos[] = {
|
|||
DEFINE_CPU(TYPE_RISCV_CPU_ANY, riscv_any_cpu_init),
|
||||
#if defined(TARGET_RISCV32)
|
||||
DEFINE_CPU(TYPE_RISCV_CPU_BASE32, riscv_base32_cpu_init),
|
||||
DEFINE_CPU(TYPE_RISCV_CPU_IBEX, rv32imcu_nommu_cpu_init),
|
||||
DEFINE_CPU(TYPE_RISCV_CPU_SIFIVE_E31, rv32imacu_nommu_cpu_init),
|
||||
DEFINE_CPU(TYPE_RISCV_CPU_SIFIVE_E34, rv32imafcu_nommu_cpu_init),
|
||||
DEFINE_CPU(TYPE_RISCV_CPU_SIFIVE_U34, rv32gcsu_priv1_10_0_cpu_init),
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#define TYPE_RISCV_CPU_ANY RISCV_CPU_TYPE_NAME("any")
|
||||
#define TYPE_RISCV_CPU_BASE32 RISCV_CPU_TYPE_NAME("rv32")
|
||||
#define TYPE_RISCV_CPU_BASE64 RISCV_CPU_TYPE_NAME("rv64")
|
||||
#define TYPE_RISCV_CPU_IBEX RISCV_CPU_TYPE_NAME("lowrisc-ibex")
|
||||
#define TYPE_RISCV_CPU_SIFIVE_E31 RISCV_CPU_TYPE_NAME("sifive-e31")
|
||||
#define TYPE_RISCV_CPU_SIFIVE_E34 RISCV_CPU_TYPE_NAME("sifive-e34")
|
||||
#define TYPE_RISCV_CPU_SIFIVE_E51 RISCV_CPU_TYPE_NAME("sifive-e51")
|
||||
|
|
Loading…
Reference in a new issue