Commit 84e3f63a authored by Leonard Crestez's avatar Leonard Crestez Committed by Matthias Welwarsky
Browse files

jtag: tcl: Add cget -idcode



This can be used to dynamically distinguish between similar chips in tcl
code.

Change-Id: Ic4dfb61693e78616355173142dc7f9b9683a9f73
Signed-off-by: default avatarLeonard Crestez <leonard.crestez@nxp.com>
Reviewed-on: http://openocd.zylin.com/5033


Tested-by: jenkins
Reviewed-by: default avatarMatthias Welwarsky <matthias@welwarsky.de>
parent ca7ba6b5
...@@ -3895,10 +3895,14 @@ devices do not set the ack bit until sometime later. ...@@ -3895,10 +3895,14 @@ devices do not set the ack bit until sometime later.
@section Other TAP commands @section Other TAP commands
@deffn Command {jtag cget} dotted.name @option{-idcode}
Get the value of the IDCODE found in hardware.
@end deffn
@deffn Command {jtag cget} dotted.name @option{-event} event_name @deffn Command {jtag cget} dotted.name @option{-event} event_name
@deffnx Command {jtag configure} dotted.name @option{-event} event_name handler @deffnx Command {jtag configure} dotted.name @option{-event} event_name handler
At this writing this TAP attribute At this writing this TAP attribute
mechanism is used only for event handling. mechanism is limited and used mostly for event handling.
(It is not a direct analogue of the @code{cget}/@code{configure} (It is not a direct analogue of the @code{cget}/@code{configure}
mechanism for debugger targets.) mechanism for debugger targets.)
See the next section for information about the available events. See the next section for information about the available events.
......
...@@ -307,11 +307,13 @@ static const struct command_registration jtag_command_handlers_to_move[] = { ...@@ -307,11 +307,13 @@ static const struct command_registration jtag_command_handlers_to_move[] = {
enum jtag_tap_cfg_param { enum jtag_tap_cfg_param {
JCFG_EVENT JCFG_EVENT,
JCFG_IDCODE,
}; };
static Jim_Nvp nvp_config_opts[] = { static Jim_Nvp nvp_config_opts[] = {
{ .name = "-event", .value = JCFG_EVENT }, { .name = "-event", .value = JCFG_EVENT },
{ .name = "-idcode", .value = JCFG_IDCODE },
{ .name = NULL, .value = -1 } { .name = NULL, .value = -1 }
}; };
...@@ -404,8 +406,23 @@ static int jtag_tap_configure_cmd(Jim_GetOptInfo *goi, struct jtag_tap *tap) ...@@ -404,8 +406,23 @@ static int jtag_tap_configure_cmd(Jim_GetOptInfo *goi, struct jtag_tap *tap)
if (e != JIM_OK) if (e != JIM_OK)
return e; return e;
break; break;
case JCFG_IDCODE:
if (goi->isconfigure) {
Jim_SetResultFormatted(goi->interp,
"not settable: %s", n->name);
return JIM_ERR;
} else {
if (goi->argc != 0) {
Jim_WrongNumArgs(goi->interp,
goi->argc, goi->argv,
"NO PARAMS");
return JIM_ERR;
}
}
Jim_SetResult(goi->interp, Jim_NewIntObj(goi->interp, tap->idcode));
break;
default: default:
Jim_SetResultFormatted(goi->interp, "unknown event: %s", n->name); Jim_SetResultFormatted(goi->interp, "unknown value: %s", n->name);
return JIM_ERR; return JIM_ERR;
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment