aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2019-04-16 13:33:14 -0700
committerGitHub <noreply@github.com>2019-04-16 13:33:14 -0700
commit15f2d35bc6413d89453c64eff39a80dfc52243f5 (patch)
tree993bb9321925531ca1b3fdb24a4784fbfeba4299
parent693c9c4f7e07d9a135dd3e6dae7240ec00875c3f (diff)
parentd78ff5ab4e8c4655c8cc3db619c42c3f60454e7e (diff)
downloadriscv-openocd-15f2d35bc6413d89453c64eff39a80dfc52243f5.zip
riscv-openocd-15f2d35bc6413d89453c64eff39a80dfc52243f5.tar.gz
riscv-openocd-15f2d35bc6413d89453c64eff39a80dfc52243f5.tar.bz2
Merge pull request #369 from riscv/check_error
Propagate some errors in execute_abstract_command().
-rw-r--r--src/target/riscv/riscv-013.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/target/riscv/riscv-013.c b/src/target/riscv/riscv-013.c
index d7bfac9..86820df 100644
--- a/src/target/riscv/riscv-013.c
+++ b/src/target/riscv/riscv-013.c
@@ -744,13 +744,14 @@ static int execute_abstract_command(struct target *target, uint32_t command)
}
}
- dmi_write_exec(target, DMI_COMMAND, command);
+ if (dmi_write_exec(target, DMI_COMMAND, command) != ERROR_OK)
+ return ERROR_FAIL;
uint32_t abstractcs = 0;
- wait_for_idle(target, &abstractcs);
+ int result = wait_for_idle(target, &abstractcs);
info->cmderr = get_field(abstractcs, DMI_ABSTRACTCS_CMDERR);
- if (info->cmderr != 0) {
+ if (info->cmderr != 0 || result != ERROR_OK) {
LOG_DEBUG("command 0x%x failed; abstractcs=0x%x", command, abstractcs);
/* Clear the error. */
dmi_write(target, DMI_ABSTRACTCS, set_field(0, DMI_ABSTRACTCS_CMDERR,