diff options
author | Tim Newsome <tim@sifive.com> | 2017-02-25 10:17:14 -0800 |
---|---|---|
committer | Tim Newsome <tim@sifive.com> | 2017-02-25 10:17:14 -0800 |
commit | ab8a5631c39300c8ecb24635b16d50d19398dbdd (patch) | |
tree | 3218570cfef4a2de6bbe5e6797e1bfc9d0f6f025 /riscv/debug_module.cc | |
parent | 5a9e289624a64156bf503144eafb2bd0921493be (diff) | |
download | spike-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.cc | 20 |
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) { |