aboutsummaryrefslogtreecommitdiff
path: root/riscv/debug_module.cc
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2017-02-25 10:17:14 -0800
committerTim Newsome <tim@sifive.com>2017-02-25 10:17:14 -0800
commitab8a5631c39300c8ecb24635b16d50d19398dbdd (patch)
tree3218570cfef4a2de6bbe5e6797e1bfc9d0f6f025 /riscv/debug_module.cc
parent5a9e289624a64156bf503144eafb2bd0921493be (diff)
downloadspike-ab8a5631c39300c8ecb24635b16d50d19398dbdd.zip
spike-ab8a5631c39300c8ecb24635b16d50d19398dbdd.tar.gz
spike-ab8a5631c39300c8ecb24635b16d50d19398dbdd.tar.bz2
Update bits to latest spec.
Diffstat (limited to 'riscv/debug_module.cc')
-rw-r--r--riscv/debug_module.cc20
1 files changed, 10 insertions, 10 deletions
diff --git a/riscv/debug_module.cc b/riscv/debug_module.cc
index 5298b33..51107dc 100644
--- a/riscv/debug_module.cc
+++ b/riscv/debug_module.cc
@@ -95,7 +95,6 @@ void debug_module_t::reset()
dmcontrol = {0};
dmcontrol.authenticated = 1;
dmcontrol.version = 1;
- dmcontrol.authtype = dmcontrol.AUTHTYPE_NOAUTH;
abstractcs = {0};
abstractcs.datacount = sizeof(dmdata.data) / 4;
@@ -234,8 +233,8 @@ bool debug_module_t::dmi_read(unsigned address, uint32_t *value)
if (autoexec) {
perform_abstract_command();
}
- } else if (address >= DMI_IBUF0 && address < DMI_IBUF0 + progsize) {
- result = read32(program_buffer, address - DMI_IBUF0);
+ } else if (address >= DMI_PROGBUF0 && address < DMI_PROGBUF0 + progsize) {
+ result = read32(program_buffer, address - DMI_PROGBUF0);
} else {
switch (address) {
case DMI_DMCONTROL:
@@ -252,13 +251,14 @@ bool debug_module_t::dmi_read(unsigned address, uint32_t *value)
dmcontrol.hartstatus = dmcontrol.HARTSTATUS_NOTEXIST;
}
result = set_field(result, DMI_DMCONTROL_HALTREQ, dmcontrol.haltreq);
- result = set_field(result, DMI_DMCONTROL_RESET, dmcontrol.reset);
- result = set_field(result, DMI_DMCONTROL_DMACTIVE, dmcontrol.dmactive);
+ result = set_field(result, DMI_DMCONTROL_RESUMEREQ, dmcontrol.resumereq);
result = set_field(result, DMI_DMCONTROL_HARTSTATUS, dmcontrol.hartstatus);
result = set_field(result, DMI_DMCONTROL_HARTSEL, dmcontrol.hartsel);
+ result = set_field(result, DMI_DMCONTROL_HARTRESET, dmcontrol.hartreset);
+ result = set_field(result, DMI_DMCONTROL_DMACTIVE, dmcontrol.dmactive);
+ result = set_field(result, DMI_DMCONTROL_RESET, dmcontrol.reset);
result = set_field(result, DMI_DMCONTROL_AUTHENTICATED, dmcontrol.authenticated);
result = set_field(result, DMI_DMCONTROL_AUTHBUSY, dmcontrol.authbusy);
- result = set_field(result, DMI_DMCONTROL_AUTHTYPE, dmcontrol.authtype);
result = set_field(result, DMI_DMCONTROL_VERSION, dmcontrol.version);
}
break;
@@ -275,8 +275,8 @@ bool debug_module_t::dmi_read(unsigned address, uint32_t *value)
result = set_field(result, DMI_ABSTRACTCS_BUSY, abstractcs.busy);
result = set_field(result, DMI_ABSTRACTCS_DATACOUNT, abstractcs.datacount);
break;
- case DMI_ACCESSCS:
- result = progsize << DMI_ACCESSCS_PROGSIZE_OFFSET;
+ case DMI_PROGBUFCS:
+ result = progsize << DMI_PROGBUFCS_PROGSIZE_OFFSET;
break;
case DMI_COMMAND:
result = 0;
@@ -395,8 +395,8 @@ bool debug_module_t::dmi_write(unsigned address, uint32_t value)
}
return true;
- } else if (address >= DMI_IBUF0 && address < DMI_IBUF0 + progsize) {
- write32(program_buffer, address - DMI_IBUF0, value);
+ } else if (address >= DMI_PROGBUF0 && address < DMI_PROGBUF0 + progsize) {
+ write32(program_buffer, address - DMI_PROGBUF0, value);
return true;
} else {
switch (address) {