diff options
author | Tim Newsome <tim@sifive.com> | 2019-01-24 12:28:06 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-24 12:28:06 -0800 |
commit | eb7af6cba0b42ea6d0990f4360a32ca90b7902fb (patch) | |
tree | 2dffda04e24d25a786b8ff4554618f836e390ab9 /src | |
parent | 1599853032c0fd90a3d4cbd6eac1e6869ef750ec (diff) | |
parent | 906635c4bda717884f87c0bd241f5c86a8238b41 (diff) | |
download | riscv-openocd-eb7af6cba0b42ea6d0990f4360a32ca90b7902fb.zip riscv-openocd-eb7af6cba0b42ea6d0990f4360a32ca90b7902fb.tar.gz riscv-openocd-eb7af6cba0b42ea6d0990f4360a32ca90b7902fb.tar.bz2 |
Merge pull request #346 from riscv/dmactive
Move version check until after dmactive=1.
Diffstat (limited to 'src')
-rw-r--r-- | src/target/riscv/riscv-013.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/target/riscv/riscv-013.c b/src/target/riscv/riscv-013.c index 1ef7307..3611d48 100644 --- a/src/target/riscv/riscv-013.c +++ b/src/target/riscv/riscv-013.c @@ -1401,16 +1401,6 @@ static int examine(struct target *target) info->abits = get_field(dtmcontrol, DTM_DTMCS_ABITS); info->dtmcs_idle = get_field(dtmcontrol, DTM_DTMCS_IDLE); - uint32_t dmstatus; - if (dmstatus_read(target, &dmstatus, false) != ERROR_OK) - return ERROR_FAIL; - LOG_DEBUG("dmstatus: 0x%08x", dmstatus); - if (get_field(dmstatus, DMI_DMSTATUS_VERSION) != 2) { - LOG_ERROR("OpenOCD only supports Debug Module version 2, not %d " - "(dmstatus=0x%x)", get_field(dmstatus, DMI_DMSTATUS_VERSION), dmstatus); - return ERROR_FAIL; - } - /* Reset the Debug Module. */ dm013_info_t *dm = get_dm(target); if (!dm->was_reset) { @@ -1431,6 +1421,16 @@ static int examine(struct target *target) return ERROR_FAIL; } + uint32_t dmstatus; + if (dmstatus_read(target, &dmstatus, false) != ERROR_OK) + return ERROR_FAIL; + LOG_DEBUG("dmstatus: 0x%08x", dmstatus); + if (get_field(dmstatus, DMI_DMSTATUS_VERSION) != 2) { + LOG_ERROR("OpenOCD only supports Debug Module version 2, not %d " + "(dmstatus=0x%x)", get_field(dmstatus, DMI_DMSTATUS_VERSION), dmstatus); + return ERROR_FAIL; + } + uint32_t hartsel = (get_field(dmcontrol, DMI_DMCONTROL_HARTSELHI) << DMI_DMCONTROL_HARTSELLO_LENGTH) | |