move nor drivers to src/flash/nor
[fw/openocd] / src / jtag / amt_jtagaccel.c
index 6c39d88e88053e93a2193bf58b2f0794ef9c0885..d26482a6136703d55b718bbe1f1342ce336882b2 100644 (file)
@@ -72,15 +72,6 @@ static int data_mode = IEEE1284_MODE_EPP | IEEE1284_DATA ;
 
 #endif // PARPORT_USE_PPDEV
 
-static int amt_jtagaccel_execute_queue(void);
-static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx);
-static int amt_jtagaccel_speed(int speed);
-static int amt_jtagaccel_init(void);
-static int amt_jtagaccel_quit(void);
-
-static int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-
 /* tap_move[i][j]: tap movement command to go from state i to state j
  * 0: Test-Logic-Reset
  * 1: Run-Test/Idle
@@ -92,8 +83,8 @@ static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx,
 static uint8_t amt_jtagaccel_tap_move[6][6][2] =
 {
        /*         RESET         IDLE        DRSHIFT       DRPAUSE       IRSHIFT       IRPAUSE             */
-       {{0x1f, 0x00}, {0x0f, 0x00}, {0x8a, 0x04}, {0x0a, 0x00}, {0x06, 0x00}, {0x96, 0x00}},   /* RESET */
-       {{0x1f, 0x00}, {0x00, 0x00}, {0x85, 0x08}, {0x05, 0x00}, {0x8b, 0x08}, {0x0b, 0x00}},   /* IDLE */
+       {{0x1f, 0x00}, {0x0f, 0x00}, {0x05, 0x00}, {0x0a, 0x00}, {0x06, 0x00}, {0x96, 0x00}},   /* RESET */
+       {{0x1f, 0x00}, {0x00, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x0b, 0x00}},   /* IDLE */
        {{0x1f, 0x00}, {0x0d, 0x00}, {0x00, 0x00}, {0x01, 0x00}, {0x8f, 0x09}, {0x8f, 0x01}},   /* DRSHIFT  */
        {{0x1f, 0x00}, {0x0c, 0x00}, {0x08, 0x00}, {0x00, 0x00}, {0x8f, 0x09}, {0x8f, 0x01}},   /* DRPAUSE  */
        {{0x1f, 0x00}, {0x0d, 0x00}, {0x07, 0x00}, {0x97, 0x00}, {0x00, 0x00}, {0x01, 0x00}},   /* IRSHIFT  */
@@ -101,28 +92,6 @@ static uint8_t amt_jtagaccel_tap_move[6][6][2] =
 };
 
 
-jtag_interface_t amt_jtagaccel_interface =
-{
-       .name = "amt_jtagaccel",
-
-       .execute_queue = amt_jtagaccel_execute_queue,
-
-       .speed = amt_jtagaccel_speed,
-       .register_commands = amt_jtagaccel_register_commands,
-       .init = amt_jtagaccel_init,
-       .quit = amt_jtagaccel_quit,
-};
-
-static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx)
-{
-       register_command(cmd_ctx, NULL, "parport_port", amt_jtagaccel_handle_parport_port_command,
-                                        COMMAND_CONFIG, NULL);
-       register_command(cmd_ctx, NULL, "rtck", amt_jtagaccel_handle_rtck_command,
-                                        COMMAND_CONFIG, NULL);
-
-       return ERROR_OK;
-}
-
 static void amt_jtagaccel_reset(int trst, int srst)
 {
        if (trst == 1)
@@ -320,7 +289,7 @@ static void amt_jtagaccel_scan(bool ir_scan, enum scan_type type, uint8_t *buffe
 
 static int amt_jtagaccel_execute_queue(void)
 {
-       jtag_command_t *cmd = jtag_command_queue; /* currently processed command */
+       struct jtag_command *cmd = jtag_command_queue; /* currently processed command */
        int scan_size;
        enum scan_type type;
        uint8_t *buffer;
@@ -374,7 +343,7 @@ static int amt_jtagaccel_execute_queue(void)
                                break;
                        case JTAG_SLEEP:
 #ifdef _DEBUG_JTAG_IO_
-                               LOG_DEBUG("sleep %i", cmd->cmd.sleep->us);
+                               LOG_DEBUG("sleep %" PRIi32, cmd->cmd.sleep->us);
 #endif
                                jtag_sleep(cmd->cmd.sleep->us);
                                break;
@@ -526,17 +495,16 @@ static int amt_jtagaccel_quit(void)
        return ERROR_OK;
 }
 
-static int amt_jtagaccel_handle_parport_port_command(
-               struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(amt_jtagaccel_handle_parport_port_command)
 {
-       if (argc == 1)
+       if (CMD_ARGC == 1)
        {
                /* only if the port wasn't overwritten by cmdline */
                if (amt_jtagaccel_port == 0)
                {
-                       int retval = parse_u16(args[0], &amt_jtagaccel_port);
-                       if (ERROR_OK != retval)
-                               return retval;
+                       uint16_t port;
+                       COMMAND_PARSE_NUMBER(u16, CMD_ARGV[0], port);
+                       amt_jtagaccel_port = port;
                }
                else
                {
@@ -545,21 +513,21 @@ static int amt_jtagaccel_handle_parport_port_command(
                }
        }
 
-       command_print(cmd_ctx, "parport port = %u", amt_jtagaccel_port);
+       command_print(CMD_CTX, "parport port = %u", amt_jtagaccel_port);
 
        return ERROR_OK;
 }
 
-static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+COMMAND_HANDLER(amt_jtagaccel_handle_rtck_command)
 {
-       if (argc == 0)
+       if (CMD_ARGC == 0)
        {
-               command_print(cmd_ctx, "amt_jtagaccel RTCK feature %s", (rtck_enabled) ? "enabled" : "disabled");
+               command_print(CMD_CTX, "amt_jtagaccel RTCK feature %s", (rtck_enabled) ? "enabled" : "disabled");
                return ERROR_OK;
        }
        else
        {
-               if (strcmp(args[0], "enabled") == 0)
+               if (strcmp(CMD_ARGV[0], "enabled") == 0)
                {
                        rtck_enabled = 1;
                }
@@ -571,3 +539,30 @@ static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx,
 
        return ERROR_OK;
 }
+
+static const struct command_registration amtjtagaccel_command_handlers[] = {
+       {
+               .name = "parport_port",
+               .handler = &amt_jtagaccel_handle_parport_port_command,
+               .mode = COMMAND_CONFIG,
+               .help = "configure the parallel port to use",
+               .usage = "<port_num>",
+       },
+       {
+               .name = "parport_port",
+               .handler = &amt_jtagaccel_handle_rtck_command,
+               .mode = COMMAND_CONFIG,
+               .help = "enable RTCK",
+               .usage = "<enable|disable>",
+       },
+       COMMAND_REGISTRATION_DONE
+};
+
+struct jtag_interface amt_jtagaccel_interface = {
+               .name = "amt_jtagaccel",
+               .commands = amtjtagaccel_command_handlers,
+               .init = &amt_jtagaccel_init,
+               .quit = &amt_jtagaccel_quit,
+               .speed = &amt_jtagaccel_speed,
+               .execute_queue = &amt_jtagaccel_execute_queue,
+       };