Skip to content

Commit

Permalink
target/riscv: detailed error messages for cases when resume operation…
Browse files Browse the repository at this point in the history
… fails

This change aims to provide more context in case if resume operation
fails. Before the change messages were quite confusing.
  • Loading branch information
aap-sc committed Nov 13, 2024
1 parent f9a1292 commit 5f3e8ea
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions src/target/riscv/riscv-013.c
Original file line number Diff line number Diff line change
Expand Up @@ -5418,16 +5418,22 @@ static int riscv013_step_or_resume_current_hart(struct target *target,
return ERROR_OK;
}

LOG_TARGET_ERROR(target, "unable to %s. dmstatus=0x%08x",
step ? "single-step" : "resume", dmstatus);

dm_write(target, DM_DMCONTROL, dmcontrol);
LOG_TARGET_ERROR(target, " cancelling RESUMEREQ");

LOG_TARGET_ERROR(target, "unable to resume");
if (dmstatus_read(target, &dmstatus, true) != ERROR_OK)
return ERROR_FAIL;
LOG_TARGET_ERROR(target, " dmstatus=0x%08x", dmstatus);

LOG_TARGET_ERROR(target, " dmstatus after cancellation=0x%08x", dmstatus);

if (step) {
LOG_TARGET_ERROR(target, " was stepping, halting");
LOG_TARGET_ERROR(target,
" trying to restore from failed single-step, by requesting throw-away halt");
riscv_halt(target);
// TODO: returning ERROR_OK is questionable, this code needs to be revised
return ERROR_OK;
}

Expand Down

0 comments on commit 5f3e8ea

Please sign in to comment.