Browse Source

Merge pull request #128 from riscv/reset

Fix debug reset.
pull/130/head
Tim Newsome 9 years ago
committed by GitHub
parent
commit
58b6c187df
  1. 9
      riscv/debug_module.cc

9
riscv/debug_module.cc

@ -447,6 +447,7 @@ bool debug_module_t::dmi_write(unsigned address, uint32_t value)
if (dmcontrol.dmactive) {
dmcontrol.haltreq = get_field(value, DMI_DMCONTROL_HALTREQ);
dmcontrol.resumereq = get_field(value, DMI_DMCONTROL_RESUMEREQ);
dmcontrol.hartreset = get_field(value, DMI_DMCONTROL_HARTRESET);
dmcontrol.ndmreset = get_field(value, DMI_DMCONTROL_NDMRESET);
dmcontrol.hartsel = get_field(value, DMI_DMCONTROL_HARTSEL);
} else {
@ -459,10 +460,16 @@ bool debug_module_t::dmi_write(unsigned address, uint32_t value)
debug_rom_flags[dmcontrol.hartsel] |= (1 << DEBUG_ROM_FLAG_RESUME);
resumeack[dmcontrol.hartsel] = false;
}
if (dmcontrol.ndmreset) {
if (dmcontrol.hartreset) {
proc->reset();
}
}
if (dmcontrol.ndmreset) {
for (size_t i = 0; i < sim->nprocs(); i++) {
proc = sim->get_core(i);
proc->reset();
}
}
}
return true;

Loading…
Cancel
Save