jtag: tcl: Add cget -idcode
This can be used to dynamically distinguish between similar chips in tcl code. Change-Id: Ic4dfb61693e78616355173142dc7f9b9683a9f73 Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com> Reviewed-on: http://openocd.zylin.com/5033 Tested-by: jenkins Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
This commit is contained in:
parent
ca7ba6b58d
commit
84e3f63a8c
|
@ -3895,10 +3895,14 @@ devices do not set the ack bit until sometime later.
|
|||
|
||||
@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
|
||||
@deffnx Command {jtag configure} dotted.name @option{-event} event_name handler
|
||||
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}
|
||||
mechanism for debugger targets.)
|
||||
See the next section for information about the available events.
|
||||
|
|
|
@ -307,11 +307,13 @@ static const struct command_registration jtag_command_handlers_to_move[] = {
|
|||
|
||||
|
||||
enum jtag_tap_cfg_param {
|
||||
JCFG_EVENT
|
||||
JCFG_EVENT,
|
||||
JCFG_IDCODE,
|
||||
};
|
||||
|
||||
static Jim_Nvp nvp_config_opts[] = {
|
||||
{ .name = "-event", .value = JCFG_EVENT },
|
||||
{ .name = "-idcode", .value = JCFG_IDCODE },
|
||||
|
||||
{ .name = NULL, .value = -1 }
|
||||
};
|
||||
|
@ -404,8 +406,23 @@ static int jtag_tap_configure_cmd(Jim_GetOptInfo *goi, struct jtag_tap *tap)
|
|||
if (e != JIM_OK)
|
||||
return e;
|
||||
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:
|
||||
Jim_SetResultFormatted(goi->interp, "unknown event: %s", n->name);
|
||||
Jim_SetResultFormatted(goi->interp, "unknown value: %s", n->name);
|
||||
return JIM_ERR;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue