Propagate some errors in execute_abstract_command().

Change-Id: Ia3ec457dd5d65378a6c922802713e36d6828bcea
reverse-resume-order
Tim Newsome 2019-04-09 10:55:25 -07:00
parent 693c9c4f7e
commit d78ff5ab4e
1 changed files with 4 additions and 3 deletions

View File

@ -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; uint32_t abstractcs = 0;
wait_for_idle(target, &abstractcs); int result = wait_for_idle(target, &abstractcs);
info->cmderr = get_field(abstractcs, DMI_ABSTRACTCS_CMDERR); 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); LOG_DEBUG("command 0x%x failed; abstractcs=0x%x", command, abstractcs);
/* Clear the error. */ /* Clear the error. */
dmi_write(target, DMI_ABSTRACTCS, set_field(0, DMI_ABSTRACTCS_CMDERR, dmi_write(target, DMI_ABSTRACTCS, set_field(0, DMI_ABSTRACTCS_CMDERR,