|
|
|
@ -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 |
|
|
|
|