if (NULL == cp)
cp = "(unknown)";
if (NULL == t)
- Jim_SetResult_sprintf(interp, "Tap '%s' could not be found", cp);
+ Jim_SetResultFormatted(interp, "Tap '%s' could not be found", cp);
return t;
}
endstate = tap_state_by_name(cp);
if (endstate < 0) {
/* update the error message */
- Jim_SetResult_sprintf(interp,"endstate: %s invalid", cp);
+ Jim_SetResultFormatted(interp,"endstate: %s invalid", cp);
} else {
if (!scan_is_safe(endstate))
LOG_WARNING("drscan with unsafe "
if (states[i] < 0)
{
/* update the error message */
- Jim_SetResult_sprintf(interp,"endstate: %s invalid", cp);
+ Jim_SetResultFormatted(interp,"endstate: %s invalid", cp);
return JIM_ERR;
}
}
return e;
break;
default:
- Jim_SetResult_sprintf(goi->interp, "unknown event: %s", n->name);
+ Jim_SetResultFormatted(goi->interp, "unknown event: %s", n->name);
return JIM_ERR;
}
}
jim_wide w;
int e = Jim_GetOpt_Wide(goi, &w);
if (e != JIM_OK) {
- Jim_SetResult_sprintf(goi->interp, "option: %s bad parameter", n->name);
+ Jim_SetResultFormatted(goi->interp, "option: %s bad parameter", n->name);
return e;
}
uint32_t *new_expected_ids = malloc(expected_len + sizeof(uint32_t));
if (new_expected_ids == NULL)
{
- Jim_SetResult_sprintf(goi->interp, "no memory");
+ Jim_SetResultFormatted(goi->interp, "no memory");
return JIM_ERR;
}
int e = Jim_GetOpt_Wide(goi, &w);
if (e != JIM_OK)
{
- Jim_SetResult_sprintf(goi->interp,
+ Jim_SetResultFormatted(goi->interp,
"option: %s bad parameter", n->name);
free((void *)pTap->dotted_name);
return e;
pTap = calloc(1, sizeof(struct jtag_tap));
if (!pTap) {
- Jim_SetResult_sprintf(goi->interp, "no memory");
+ Jim_SetResultFormatted(goi->interp, "no memory");
return JIM_ERR;
}
* we expect CHIP + TAP + OPTIONS
* */
if (goi->argc < 3) {
- Jim_SetResult_sprintf(goi->interp, "Missing CHIP TAP OPTIONS ....");
+ Jim_SetResultFormatted(goi->interp, "Missing CHIP TAP OPTIONS ....");
free(pTap);
return JIM_ERR;
}
return JIM_OK;
}
- Jim_SetResult_sprintf(goi->interp,
+ Jim_SetResultFormatted(goi->interp,
"newtap: %s missing IR length",
pTap->dotted_name);
jtag_tap_free(pTap);
if (Jim_EvalObj(jteap->interp, jteap->body) != JIM_OK)
{
- Jim_PrintErrorMessage(jteap->interp);
+ Jim_MakeErrorMessage(jteap->interp);
+ LOG_USER_N("%s\n", Jim_GetString(Jim_GetResult(jteap->interp), NULL));
continue;
}
Jim_WrongNumArgs(goi.interp, 1, goi.argv-1, "(no params)");
return JIM_ERR;
}
- struct command_context *context = Jim_GetAssocData(interp, "context");
+ struct command_context *context = current_command_context(interp);
int e = jtag_init_inner(context);
if (e != ERROR_OK) {
- Jim_SetResult_sprintf(goi.interp, "error: %d", e);
+ Jim_Obj *eObj = Jim_NewIntObj(goi.interp, e);
+ Jim_SetResultFormatted(goi.interp, "error: %#s", eObj);
+ Jim_FreeNewObj(goi.interp, eObj);
return JIM_ERR;
}
return JIM_OK;
Jim_WrongNumArgs(goi.interp, 1, goi.argv-1, "(no params)");
return JIM_ERR;
}
- struct command_context *context = Jim_GetAssocData(interp, "context");
+ struct command_context *context = current_command_context(interp);
int e = jtag_init_reset(context);
if (e != ERROR_OK) {
- Jim_SetResult_sprintf(goi.interp, "error: %d", e);
+ Jim_Obj *eObj = Jim_NewIntObj(goi.interp, e);
+ Jim_SetResultFormatted(goi.interp, "error: %#s", eObj);
+ Jim_FreeNewObj(goi.interp, eObj);
return JIM_ERR;
}
return JIM_OK;
}
-static int jim_jtag_newtap(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
+int jim_jtag_newtap(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
Jim_GetOptInfo goi;
Jim_GetOpt_Setup(&goi, interp, argc-1, argv + 1);
Jim_GetOptInfo goi;
Jim_GetOpt_Setup(&goi, interp, argc-1, argv + 1);
if (goi.argc != 1) {
- Jim_SetResult_sprintf(goi.interp, "usage: %s <name>", cmd_name);
+ Jim_SetResultFormatted(goi.interp, "usage: %s <name>", cmd_name);
return JIM_ERR;
}
// do nothing, just return the value
} else if (strcasecmp(cmd_name, "tapenable") == 0) {
if (!jtag_tap_enable(t))
- LOG_WARNING("failed to disable tap");
+ LOG_WARNING("failed to enable tap %s", t->dotted_name);
} else if (strcasecmp(cmd_name, "tapdisable") == 0) {
if (!jtag_tap_disable(t))
- LOG_WARNING("failed to disable tap");
+ LOG_WARNING("failed to disable tap %s", t->dotted_name);
} else {
LOG_ERROR("command '%s' unknown", cmd_name);
return JIM_ERR;
return ERROR_OK;
}
+COMMAND_HANDLER(handle_jtag_flush_queue_sleep)
+{
+ if (CMD_ARGC != 1)
+ return ERROR_COMMAND_SYNTAX_ERROR;
+
+ int sleep_ms;
+ COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], sleep_ms);
+
+ jtag_set_flush_queue_sleep(sleep_ms);
+
+ return ERROR_OK;
+}
+
+
+
static const struct command_registration jtag_command_handlers[] = {
+
+ {
+ .name = "jtag_flush_queue_sleep",
+ .handler = handle_jtag_flush_queue_sleep,
+ .mode = COMMAND_ANY,
+ .help = "For debug purposes(simulate long delays of interface) "
+ "to test performance or change in behavior. Default 0ms.",
+ .usage = "[sleep in ms]",
+ },
{
.name = "jtag_rclk",
.handler = handle_jtag_rclk_command,