X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=spike_main%2Fspike.cc;h=23f8e49c0deeca8bffe414cc341353912f244fd4;hb=a1f754b2f0ec5fe72c86d6916d7c603e7727e68e;hp=d69d4bc21b5999cc2c78349543aaeaabbae6b421;hpb=e465de145c69c28230b5c73cc58f96fd9bd04419;p=riscv-isa-sim.git diff --git a/spike_main/spike.cc b/spike_main/spike.cc index d69d4bc..23f8e49 100644 --- a/spike_main/spike.cc +++ b/spike_main/spike.cc @@ -2,7 +2,7 @@ #include "sim.h" #include "mmu.h" -#include "gdbserver.h" +#include "remote_bitbang.h" #include "cachesim.h" #include "extension.h" #include @@ -33,7 +33,7 @@ static void help() fprintf(stderr, " --l2=:: B both powers of 2).\n"); fprintf(stderr, " --extension= Specify RoCC Extension\n"); fprintf(stderr, " --extlib= Shared library to load\n"); - fprintf(stderr, " --gdb-port= Listen on for gdb to connect\n"); + fprintf(stderr, " --rbb-port= Listen on for remote bitbang connection\n"); fprintf(stderr, " --dump-dts Print device tree string and exit\n"); exit(1); } @@ -82,7 +82,8 @@ int main(int argc, char** argv) std::unique_ptr l2; std::function extension; const char* isa = DEFAULT_ISA; - uint16_t gdb_port = 0; + uint16_t rbb_port = 0; + bool use_rbb = false; option_parser_t parser; parser.help(&help); @@ -94,7 +95,7 @@ int main(int argc, char** argv) parser.option('m', 0, 1, [&](const char* s){mems = make_mems(s);}); // I wanted to use --halted, but for some reason that doesn't work. parser.option('H', 0, 0, [&](const char* s){halted = true;}); - parser.option(0, "gdb-port", 1, [&](const char* s){gdb_port = atoi(s);}); + parser.option(0, "rbb-port", 1, [&](const char* s){use_rbb = true; rbb_port = atoi(s);}); parser.option(0, "pc", 1, [&](const char* s){start_pc = strtoull(s, 0, 0);}); parser.option(0, "ic", 1, [&](const char* s){ic.reset(new icache_sim_t(s));}); parser.option(0, "dc", 1, [&](const char* s){dc.reset(new dcache_sim_t(s));}); @@ -116,10 +117,11 @@ int main(int argc, char** argv) mems = make_mems("2048"); sim_t s(isa, nprocs, halted, start_pc, mems, htif_args); - std::unique_ptr gdbserver; - if (gdb_port) { - gdbserver = std::unique_ptr(new gdbserver_t(gdb_port, &s)); - s.set_gdbserver(&(*gdbserver)); + std::unique_ptr remote_bitbang((remote_bitbang_t *) NULL); + std::unique_ptr jtag_dtm(new jtag_dtm_t(&s.debug_module)); + if (use_rbb) { + remote_bitbang.reset(new remote_bitbang_t(rbb_port, &(*jtag_dtm))); + s.set_remote_bitbang(&(*remote_bitbang)); } if (dump_dts) {