aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Vanek <vanekt@fbl.cz>2019-04-26 08:44:38 +0200
committerMatthias Welwarsky <matthias@welwarsky.de>2019-06-12 15:15:51 +0100
commit20396e56b75d786c535f5655da862f1addc9e255 (patch)
treec40c5b7845175cdfdb95b0fad4f1ccaee135fe10
parent7a27423e31cee1cef205ee8ef703e6e3bf56782b (diff)
downloadriscv-openocd-20396e56b75d786c535f5655da862f1addc9e255.zip
riscv-openocd-20396e56b75d786c535f5655da862f1addc9e255.tar.gz
riscv-openocd-20396e56b75d786c535f5655da862f1addc9e255.tar.bz2
target: make target re-configuration possible again
Before commit 877cec20dca6e78f9f029f0f173879cda101a6c2 ("command: check command mode for native jim commands") all the jim commands were erroneously treated as they had mode COMMAND_ANY. The command '$_TARGET configure -xxx' was therefore applicable on running OpenOCD to change the target configuration. It is handy e.g. for changing an event handler or changes of the work area. Change 'configure' command .mode to COMMAND_ANY to make it possible again. The only parameter which cannot be re-configured after init is -gdb-port. Test the command mode and refuse setting of gdb port after init. Change-Id: I88493ac10a46647dc52a88fbc9f8ce6b5ba3bcd0 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: http://openocd.zylin.com/5214 Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
-rw-r--r--src/target/target.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/target/target.c b/src/target/target.c
index 1e42c5e..917fb66 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -4893,6 +4893,12 @@ no_params:
case TCFG_GDB_PORT:
if (goi->isconfigure) {
+ struct command_context *cmd_ctx = current_command_context(goi->interp);
+ if (cmd_ctx->mode != COMMAND_CONFIG) {
+ Jim_SetResultString(goi->interp, "-gdb-port must be configured before 'init'", -1);
+ return JIM_ERR;
+ }
+
const char *s;
e = Jim_GetOpt_String(goi, &s, NULL);
if (e != JIM_OK)
@@ -5194,7 +5200,7 @@ static int jim_target_invoke_event(Jim_Interp *interp, int argc, Jim_Obj *const
static const struct command_registration target_instance_command_handlers[] = {
{
.name = "configure",
- .mode = COMMAND_CONFIG,
+ .mode = COMMAND_ANY,
.jim_handler = jim_target_configure,
.help = "configure a new target for use",
.usage = "[target_attribute ...]",