aboutsummaryrefslogtreecommitdiff
path: root/src/target
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2023-08-14 09:48:03 -0700
committerGitHub <noreply@github.com>2023-08-14 09:48:03 -0700
commit9260101307f10a39cfae94550745ba505b56f4d2 (patch)
treed71fdf87af4eef0bfbac0f5cb91fd94267b86d54 /src/target
parent68ad364f273acb6d54d8763638230f126a5046a0 (diff)
parent9b558838b1c457c9e381dafbb667edc97514bc60 (diff)
downloadriscv-openocd-9260101307f10a39cfae94550745ba505b56f4d2.zip
riscv-openocd-9260101307f10a39cfae94550745ba505b56f4d2.tar.gz
riscv-openocd-9260101307f10a39cfae94550745ba505b56f4d2.tar.bz2
Merge pull request #899 from en-sc/en-sc/trig-handle-res-not-avlbl
target/riscv: improve error handling in trigger setup
Diffstat (limited to 'src/target')
-rw-r--r--src/target/riscv/riscv.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/target/riscv/riscv.c b/src/target/riscv/riscv.c
index 3a3ba4a..c404b14 100644
--- a/src/target/riscv/riscv.c
+++ b/src/target/riscv/riscv.c
@@ -897,7 +897,7 @@ static int maybe_add_trigger_t2_t6(struct target *target,
};
ret = try_setup_single_match_trigger(target, trigger, eq);
if (ret != ERROR_OK)
- return ERROR_FAIL;
+ return ret;
if (trigger->length > 1) {
LOG_TARGET_DEBUG(target, "Trigger will match accesses at address 0x%" TARGET_PRIxADDR
@@ -1042,7 +1042,9 @@ static int add_trigger(struct target *target, struct trigger *trigger)
break;
} while (0);
- riscv_set_register(target, GDB_REGNO_TSELECT, tselect);
+ if (riscv_set_register(target, GDB_REGNO_TSELECT, tselect) != ERROR_OK &&
+ ret == ERROR_OK)
+ return ERROR_FAIL;
return ret;
}