jtag: gateworks-openocd.patch

File gateworks-openocd.patch, 1.6 KB (added by trac, 10 months ago)
  • src/jtag/tcl.c

     src/jtag/tcl.c   | 42 +++++++++++++++++++++++-------------------
     1 file changed, 23 insertions(+), 19 deletions(-)
    
    diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c
    index d0020cd..5984181 100644
    a b COMMAND_HANDLER(handle_jtag_rclk_command) 
    10361036
    10371037COMMAND_HANDLER(handle_jtag_reset_command)
    10381038{
    1039         if (CMD_ARGC != 2)
    1040                 return ERROR_COMMAND_SYNTAX_ERROR;
    1041 
    1042         int trst = -1;
    1043         if (CMD_ARGV[0][0] == '1')
    1044                 trst = 1;
    1045         else if (CMD_ARGV[0][0] == '0')
    1046                 trst = 0;
    1047         else
    1048                 return ERROR_COMMAND_SYNTAX_ERROR;
    1049 
    1050         int srst = -1;
    1051         if (CMD_ARGV[1][0] == '1')
    1052                 srst = 1;
    1053         else if (CMD_ARGV[1][0] == '0')
    1054                 srst = 0;
    1055         else
     1039        unsigned int i;
     1040        if ((CMD_ARGC % 2) != 0)
    10561041                return ERROR_COMMAND_SYNTAX_ERROR;
    10571042
    10581043        if (adapter_init(CMD_CTX) != ERROR_OK)
    10591044                return ERROR_JTAG_INIT_FAILED;
    10601045
    1061         jtag_add_reset(trst, srst);
     1046        for (i = 0; i < CMD_ARGC; i += 2) {
     1047                int trst = -1;
     1048                if (CMD_ARGV[i][0] == '1')
     1049                        trst = 1;
     1050                else if (CMD_ARGV[i][0] == '0')
     1051                        trst = 0;
     1052                else
     1053                        return ERROR_COMMAND_SYNTAX_ERROR;
     1054
     1055                int srst = -1;
     1056                if (CMD_ARGV[i + 1][0] == '1')
     1057                        srst = 1;
     1058                else if (CMD_ARGV[i + 1][0] == '0')
     1059                        srst = 0;
     1060                else
     1061                        return ERROR_COMMAND_SYNTAX_ERROR;
     1062
     1063                interface_jtag_add_reset(trst, srst);
     1064        }
     1065
    10621066        return jtag_execute_queue();
    10631067}
    10641068
    static const struct command_registration jtag_command_handlers[] = { 
    13171321                .mode = COMMAND_EXEC,
    13181322                .help = "Set reset line values.  Value '1' is active, "
    13191323                        "value '0' is inactive.",
    1320                 .usage = "trst_active srst_active",
     1324                .usage = "trst_active srst_active [trst_active srst_active]*",
    13211325        },
    13221326        {
    13231327                .name = "runtest",