From e4aaed1b7b08998a6b6aefa34f7c575e292dde62 Mon Sep 17 00:00:00 2001 From: Rupert Swarbrick Date: Mon, 11 Apr 2022 10:47:50 +0100 Subject: Move the "default hartids" logic from sim.cc into spike.cc This moves another part of the "configuration" out of the generic sim.cc code. --- spike_main/spike.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'spike_main') diff --git a/spike_main/spike.cc b/spike_main/spike.cc index 25d7c69..a3c18d1 100644 --- a/spike_main/spike.cc +++ b/spike_main/spike.cc @@ -458,6 +458,22 @@ int main(int argc, char** argv) } #endif + if (!hartids.empty()) { + if (cfg.nprocs.overridden() && (cfg.nprocs() != hartids.size())) { + std::cerr << "Number of specified hartids (" + << hartids.size() + << ") doesn't match specified number of processors (" + << cfg.nprocs() << ").\n"; + exit(1); + } + } else { + // Set default set of hartids based on nprocs + hartids.reserve(cfg.nprocs()); + for (size_t i = 0; i < cfg.nprocs(); ++i) { + hartids.push_back(i); + } + } + sim_t s(&cfg, varch, halted, real_time_clint, mems, plugin_devices, htif_args, std::move(hartids), dm_config, log_path, dtb_enabled, dtb_file, -- cgit v1.1