diff options
-rw-r--r-- | riscv/cfg.h | 6 | ||||
-rw-r--r-- | riscv/sim.cc | 5 | ||||
-rw-r--r-- | riscv/sim.h | 3 | ||||
-rw-r--r-- | spike_main/spike.cc | 8 |
4 files changed, 11 insertions, 11 deletions
diff --git a/riscv/cfg.h b/riscv/cfg.h index e0b9dcc..f0dea9f 100644 --- a/riscv/cfg.h +++ b/riscv/cfg.h @@ -30,17 +30,19 @@ class cfg_t public: cfg_t(std::pair<reg_t, reg_t> default_initrd_bounds, const char *default_bootargs, size_t default_nprocs, - const char *default_isa) + const char *default_isa, const char *default_priv) : initrd_bounds(default_initrd_bounds), bootargs(default_bootargs), nprocs(default_nprocs), - isa(default_isa) + isa(default_isa), + priv(default_priv) {} cfg_arg_t<std::pair<reg_t, reg_t>> initrd_bounds; cfg_arg_t<const char *> bootargs; cfg_arg_t<size_t> nprocs; cfg_arg_t<const char *> isa; + cfg_arg_t<const char *> priv; }; #endif diff --git a/riscv/sim.cc b/riscv/sim.cc index 39c6525..f3999a7 100644 --- a/riscv/sim.cc +++ b/riscv/sim.cc @@ -28,8 +28,7 @@ static void handle_signal(int sig) signal(sig, &handle_signal); } -sim_t::sim_t(const cfg_t *cfg, const char* priv, const char* varch, - bool halted, bool real_time_clint, +sim_t::sim_t(const cfg_t *cfg, const char* varch, bool halted, bool real_time_clint, reg_t start_pc, std::vector<std::pair<reg_t, mem_t*>> mems, std::vector<std::pair<reg_t, abstract_device_t*>> plugin_devices, const std::vector<std::string>& args, @@ -42,7 +41,7 @@ sim_t::sim_t(const cfg_t *cfg, const char* priv, const char* varch, #endif FILE *cmd_file) // needed for command line option --cmd : htif_t(args), - isa(cfg->isa(), priv), + isa(cfg->isa(), cfg->priv()), cfg(cfg), mems(mems), plugin_devices(plugin_devices), diff --git a/riscv/sim.h b/riscv/sim.h index 84abada..fc20a2c 100644 --- a/riscv/sim.h +++ b/riscv/sim.h @@ -32,8 +32,7 @@ class remote_bitbang_t; class sim_t : public htif_t, public simif_t { public: - sim_t(const cfg_t *cfg, const char* priv, const char* varch, - bool halted, bool real_time_clint, + sim_t(const cfg_t *cfg, const char* varch, bool halted, bool real_time_clint, reg_t start_pc, std::vector<std::pair<reg_t, mem_t*>> mems, std::vector<std::pair<reg_t, abstract_device_t*>> plugin_devices, const std::vector<std::string>& args, const std::vector<int> hartids, diff --git a/spike_main/spike.cc b/spike_main/spike.cc index 70a1012..3c6e14c 100644 --- a/spike_main/spike.cc +++ b/spike_main/spike.cc @@ -232,7 +232,6 @@ int main(int argc, char** argv) const char *log_path = nullptr; std::vector<std::function<extension_t*()>> extensions; const char* initrd = NULL; - const char* priv = DEFAULT_PRIV; const char* varch = DEFAULT_VARCH; const char* dtb_file = NULL; uint16_t rbb_port = 0; @@ -253,7 +252,8 @@ int main(int argc, char** argv) cfg_t cfg(/*default_initrd_bounds=*/std::make_pair((reg_t)0, (reg_t)0), /*default_bootargs=*/nullptr, /*default_nprocs=*/1, - /*default_isa=*/DEFAULT_ISA); + /*default_isa=*/DEFAULT_ISA, + /*default_priv=*/DEFAULT_PRIV); auto const hartids_parser = [&](const char *s) { std::string const str(s); @@ -331,7 +331,7 @@ int main(int argc, char** argv) parser.option(0, "l2", 1, [&](const char* s){l2.reset(cache_sim_t::construct(s, "L2$"));}); parser.option(0, "log-cache-miss", 0, [&](const char* s){log_cache = true;}); parser.option(0, "isa", 1, [&](const char* s){cfg.isa = s;}); - parser.option(0, "priv", 1, [&](const char* s){priv = s;}); + parser.option(0, "priv", 1, [&](const char* s){cfg.priv = s;}); parser.option(0, "varch", 1, [&](const char* s){varch = s;}); parser.option(0, "device", 1, device_parser); parser.option(0, "extension", 1, [&](const char* s){extensions.push_back(find_extension(s));}); @@ -445,7 +445,7 @@ int main(int argc, char** argv) } #endif - sim_t s(&cfg, priv, varch, halted, real_time_clint, + sim_t s(&cfg, varch, halted, real_time_clint, start_pc, mems, plugin_devices, htif_args, std::move(hartids), dm_config, log_path, dtb_enabled, dtb_file, #ifdef HAVE_BOOST_ASIO |