target: arc: rewrite command 'arc jtag get-aux-reg' as COMMAND_HANDLER
This also fixes an incorrect return ERROR_OK from a jim command. Change-Id: I3c51355e7e05965327ce819a3114e370f2de5249 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7407 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
This commit is contained in:
parent
9d97cace0e
commit
700cdbfac4
|
@ -318,39 +318,28 @@ static int jim_arc_set_aux_reg(Jim_Interp *interp, int argc, Jim_Obj * const *ar
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int jim_arc_get_aux_reg(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
|
COMMAND_HANDLER(arc_handle_get_aux_reg)
|
||||||
{
|
{
|
||||||
struct command_context *context;
|
if (CMD_ARGC != 1)
|
||||||
struct target *target;
|
return ERROR_COMMAND_SYNTAX_ERROR;
|
||||||
uint32_t regnum;
|
|
||||||
uint32_t value;
|
|
||||||
|
|
||||||
struct jim_getopt_info goi;
|
struct target *target = get_current_target(CMD_CTX);
|
||||||
JIM_CHECK_RETVAL(jim_getopt_setup(&goi, interp, argc-1, argv+1));
|
|
||||||
|
|
||||||
if (goi.argc != 1) {
|
|
||||||
Jim_SetResultFormatted(goi.interp,
|
|
||||||
"usage: %s <aux_reg_num>", Jim_GetString(argv[0], NULL));
|
|
||||||
return JIM_ERR;
|
|
||||||
}
|
|
||||||
|
|
||||||
context = current_command_context(interp);
|
|
||||||
assert(context);
|
|
||||||
|
|
||||||
target = get_current_target(context);
|
|
||||||
if (!target) {
|
if (!target) {
|
||||||
Jim_SetResultFormatted(goi.interp, "No current target");
|
command_print(CMD, "No current target");
|
||||||
return JIM_ERR;
|
return ERROR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Register number */
|
/* Register number */
|
||||||
JIM_CHECK_RETVAL(arc_cmd_jim_get_uint32(&goi, ®num));
|
uint32_t regnum;
|
||||||
|
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], regnum);
|
||||||
|
|
||||||
struct arc_common *arc = target_to_arc(target);
|
struct arc_common *arc = target_to_arc(target);
|
||||||
assert(arc);
|
assert(arc);
|
||||||
|
|
||||||
|
uint32_t value;
|
||||||
CHECK_RETVAL(arc_jtag_read_aux_reg_one(&arc->jtag_info, regnum, &value));
|
CHECK_RETVAL(arc_jtag_read_aux_reg_one(&arc->jtag_info, regnum, &value));
|
||||||
Jim_SetResultInt(interp, value);
|
|
||||||
|
command_print(CMD, "0x%" PRIx32, value);
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
@ -445,7 +434,7 @@ static int jim_arc_set_core_reg(Jim_Interp *interp, int argc, Jim_Obj * const *a
|
||||||
static const struct command_registration arc_jtag_command_group[] = {
|
static const struct command_registration arc_jtag_command_group[] = {
|
||||||
{
|
{
|
||||||
.name = "get-aux-reg",
|
.name = "get-aux-reg",
|
||||||
.jim_handler = jim_arc_get_aux_reg,
|
.handler = arc_handle_get_aux_reg,
|
||||||
.mode = COMMAND_EXEC,
|
.mode = COMMAND_EXEC,
|
||||||
.help = "Get AUX register by number. This command does a "
|
.help = "Get AUX register by number. This command does a "
|
||||||
"raw JTAG request that bypasses OpenOCD register cache "
|
"raw JTAG request that bypasses OpenOCD register cache "
|
||||||
|
|
Loading…
Reference in New Issue