This is an automated email from Gerrit.

Leonard Crestez ([email protected]) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/5033

-- gerrit

commit e2c4e79da1fdc2bbb318b3a40ba8673689d3b3a0
Author: Leonard Crestez <[email protected]>
Date:   Fri Aug 10 17:09:41 2018 +0300

    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 <[email protected]>

diff --git a/doc/openocd.texi b/doc/openocd.texi
index 027e6d2..b3d8d63 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -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.
diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c
index 7683014..71d220b 100644
--- a/src/jtag/tcl.c
+++ b/src/jtag/tcl.c
@@ -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;
                }
        }

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to