Browse Source

Move varch into cfg_t

pull/954/head
Rupert Swarbrick 4 years ago
parent
commit
acf88fe131
  1. 3
      riscv/cfg.h
  2. 4
      riscv/sim.cc
  3. 2
      riscv/sim.h
  4. 6
      spike_main/spike.cc

3
riscv/cfg.h

@ -56,12 +56,14 @@ public:
cfg_t(std::pair<reg_t, reg_t> default_initrd_bounds,
const char *default_bootargs,
const char *default_isa, const char *default_priv,
const char *default_varch,
const std::vector<mem_cfg_t> &default_mem_layout,
const std::vector<int> default_hartids)
: initrd_bounds(default_initrd_bounds),
bootargs(default_bootargs),
isa(default_isa),
priv(default_priv),
varch(default_varch),
mem_layout(default_mem_layout),
hartids(default_hartids),
explicit_hartids(false)
@ -71,6 +73,7 @@ public:
cfg_arg_t<const char *> bootargs;
cfg_arg_t<const char *> isa;
cfg_arg_t<const char *> priv;
cfg_arg_t<const char *> varch;
cfg_arg_t<std::vector<mem_cfg_t>> mem_layout;
std::optional<reg_t> start_pc;
cfg_arg_t<std::vector<int>> hartids;

4
riscv/sim.cc

@ -28,7 +28,7 @@ static void handle_signal(int sig)
signal(sig, &handle_signal);
}
sim_t::sim_t(const cfg_t *cfg, const char* varch, bool halted, bool real_time_clint,
sim_t::sim_t(const cfg_t *cfg, bool halted, bool real_time_clint,
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,
@ -77,7 +77,7 @@ sim_t::sim_t(const cfg_t *cfg, const char* varch, bool halted, bool real_time_cl
debug_mmu = new mmu_t(this, NULL);
for (size_t i = 0; i < cfg->nprocs(); i++) {
procs[i] = new processor_t(&isa, varch, this, cfg->hartids()[i], halted,
procs[i] = new processor_t(&isa, cfg->varch(), this, cfg->hartids()[i], halted,
log_file.get(), sout_);
}

2
riscv/sim.h

@ -32,7 +32,7 @@ class remote_bitbang_t;
class sim_t : public htif_t, public simif_t
{
public:
sim_t(const cfg_t *cfg, const char* varch, bool halted, bool real_time_clint,
sim_t(const cfg_t *cfg, bool halted, bool real_time_clint,
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,

6
spike_main/spike.cc

@ -256,7 +256,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* varch = DEFAULT_VARCH;
const char* dtb_file = NULL;
uint16_t rbb_port = 0;
bool use_rbb = false;
@ -278,6 +277,7 @@ int main(int argc, char** argv)
/*default_bootargs=*/nullptr,
/*default_isa=*/DEFAULT_ISA,
/*default_priv=*/DEFAULT_PRIV,
/*default_varch=*/DEFAULT_VARCH,
/*default_mem_layout=*/parse_mem_layout("2048"),
/*default_hartids=*/std::vector<int>());
@ -349,7 +349,7 @@ int main(int argc, char** argv)
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){cfg.priv = s;});
parser.option(0, "varch", 1, [&](const char* s){varch = s;});
parser.option(0, "varch", 1, [&](const char* s){cfg.varch = s;});
parser.option(0, "device", 1, device_parser);
parser.option(0, "extension", 1, [&](const char* s){extensions.push_back(find_extension(s));});
parser.option(0, "dump-dts", 0, [&](const char *s){dump_dts = true;});
@ -482,7 +482,7 @@ int main(int argc, char** argv)
cfg.hartids = default_hartids;
}
sim_t s(&cfg, varch, halted, real_time_clint,
sim_t s(&cfg, halted, real_time_clint,
mems, plugin_devices, htif_args, dm_config, log_path, dtb_enabled, dtb_file,
#ifdef HAVE_BOOST_ASIO
io_service_ptr, acceptor_ptr,

Loading…
Cancel
Save