From: Zach W. <zw...@us...> - 2009-11-10 06:41:43
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via db6c2871dd3f106ca8b5dc8828a17f8b729de181 (commit) via 841721929a63bb77379b1598d91ed85b85021734 (commit) via 23d88e57748bece953ddf1063017152243abc93a (commit) via 8d6dcb9d39f0f948ef44beff991337b830fc4567 (commit) from ef6387a0c90913b888aea33ac7a275a246e3e8e3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit db6c2871dd3f106ca8b5dc8828a17f8b729de181 Author: Zachary T Welch <zw...@su...> Date: Mon Nov 9 21:24:45 2009 -0800 svf,xsvf,arm7_9_common: trim forard declarations Remove forward declarations by reordering command registration. diff --git a/src/svf/svf.c b/src/svf/svf.c index 9c597bf..ba6ed1b 100644 --- a/src/svf/svf.c +++ b/src/svf/svf.c @@ -210,7 +210,6 @@ static int svf_read_command_from_file(int fd); static int svf_check_tdo(void); static int svf_add_check_para(uint8_t enabled, int buffer_offset, int bit_len); static int svf_run_command(struct command_context_s *cmd_ctx, char *cmd_str); -static int handle_svf_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int svf_fd = 0; static char *svf_command_buffer = NULL; @@ -225,14 +224,6 @@ static int svf_buffer_index = 0, svf_buffer_size = 0; static int svf_quiet = 0; -int svf_register_commands(struct command_context_s *cmd_ctx) -{ - register_command(cmd_ctx, NULL, "svf", handle_svf_command, - COMMAND_EXEC, "run svf <file>"); - - return ERROR_OK; -} - static void svf_free_xxd_para(svf_xxr_para_t *para) { if (NULL != para) @@ -1468,3 +1459,12 @@ static int svf_run_command(struct command_context_s *cmd_ctx, char *cmd_str) return ERROR_OK; } + +int svf_register_commands(struct command_context_s *cmd_ctx) +{ + register_command(cmd_ctx, NULL, "svf", + &handle_svf_command, COMMAND_EXEC, + "run svf <file>"); + + return ERROR_OK; +} diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c index b251ec5..a3c6a56 100644 --- a/src/target/arm7_9_common.c +++ b/src/target/arm7_9_common.c @@ -39,16 +39,6 @@ int arm7_9_debug_entry(target_t *target); -/* command handler forward declarations */ -int handle_arm7_9_write_xpsr_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_arm7_9_write_xpsr_im8_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_arm7_9_read_core_reg_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_arm7_9_write_core_reg_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_arm7_9_dbgrq_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_arm7_9_fast_memory_access_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_arm7_9_dcc_downloads_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_arm7_9_etm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - /** * Clear watchpoints for an ARM7/9 target. * @@ -2881,31 +2871,6 @@ int arm7_9_blank_check_memory(struct target_s *target, uint32_t address, uint32_ return ERROR_OK; } -int arm7_9_register_commands(struct command_context_s *cmd_ctx) -{ - command_t *arm7_9_cmd; - - arm7_9_cmd = register_command(cmd_ctx, NULL, "arm7_9", NULL, COMMAND_ANY, "arm7/9 specific commands"); - - register_command(cmd_ctx, arm7_9_cmd, "write_xpsr", handle_arm7_9_write_xpsr_command, COMMAND_EXEC, "write program status register <value> <not cpsr | spsr>"); - register_command(cmd_ctx, arm7_9_cmd, "write_xpsr_im8", handle_arm7_9_write_xpsr_im8_command, COMMAND_EXEC, "write program status register <8bit immediate> <rotate> <not cpsr | spsr>"); - - register_command(cmd_ctx, arm7_9_cmd, "write_core_reg", handle_arm7_9_write_core_reg_command, COMMAND_EXEC, "write core register <num> <mode> <value>"); - - register_command(cmd_ctx, arm7_9_cmd, "dbgrq", handle_arm7_9_dbgrq_command, - COMMAND_ANY, "use EmbeddedICE dbgrq instead of breakpoint for target halt requests <enable | disable>"); - register_command(cmd_ctx, arm7_9_cmd, "fast_memory_access", handle_arm7_9_fast_memory_access_command, - COMMAND_ANY, "use fast memory accesses instead of slower but potentially safer accesses <enable | disable>"); - register_command(cmd_ctx, arm7_9_cmd, "dcc_downloads", handle_arm7_9_dcc_downloads_command, - COMMAND_ANY, "use DCC downloads for larger memory writes <enable | disable>"); - - armv4_5_register_commands(cmd_ctx); - - etm_register_commands(cmd_ctx); - - return ERROR_OK; -} - int handle_arm7_9_write_xpsr_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { uint32_t value; @@ -3178,3 +3143,41 @@ int arm7_9_init_arch_info(target_t *target, arm7_9_common_t *arm7_9) return ERROR_OK; } + +int arm7_9_register_commands(struct command_context_s *cmd_ctx) +{ + command_t *arm7_9_cmd; + + arm7_9_cmd = register_command(cmd_ctx, NULL, "arm7_9", + NULL, COMMAND_ANY, "arm7/9 specific commands"); + + register_command(cmd_ctx, arm7_9_cmd, "write_xpsr", + handle_arm7_9_write_xpsr_command, COMMAND_EXEC, + "write program status register <value> <not cpsr | spsr>"); + register_command(cmd_ctx, arm7_9_cmd, "write_xpsr_im8", + handle_arm7_9_write_xpsr_im8_command, COMMAND_EXEC, + "write program status register " + "<8bit immediate> <rotate> <not cpsr | spsr>"); + + register_command(cmd_ctx, arm7_9_cmd, "write_core_reg", + handle_arm7_9_write_core_reg_command, COMMAND_EXEC, + "write core register <num> <mode> <value>"); + + register_command(cmd_ctx, arm7_9_cmd, "dbgrq", + handle_arm7_9_dbgrq_command, COMMAND_ANY, + "use EmbeddedICE dbgrq instead of breakpoint " + "for target halt requests <enable | disable>"); + register_command(cmd_ctx, arm7_9_cmd, "fast_memory_access", + handle_arm7_9_fast_memory_access_command, COMMAND_ANY, + "use fast memory accesses instead of slower " + "but potentially safer accesses <enable | disable>"); + register_command(cmd_ctx, arm7_9_cmd, "dcc_downloads", + handle_arm7_9_dcc_downloads_command, COMMAND_ANY, + "use DCC downloads for larger memory writes <enable | disable>"); + + armv4_5_register_commands(cmd_ctx); + + etm_register_commands(cmd_ctx); + + return ERROR_OK; +} diff --git a/src/xsvf/xsvf.c b/src/xsvf/xsvf.c index 719470e..17af9ea 100644 --- a/src/xsvf/xsvf.c +++ b/src/xsvf/xsvf.c @@ -123,7 +123,6 @@ LSDR 1 TDI (0) #define XSTATE_MAX_PATH 12 -static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int xsvf_fd = 0; @@ -161,14 +160,6 @@ static tap_state_t xsvf_to_tap(int xsvf_state) -int xsvf_register_commands(struct command_context_s *cmd_ctx) -{ - register_command(cmd_ctx, NULL, "xsvf", handle_xsvf_command, - COMMAND_EXEC, "run xsvf <file> [virt2] [quiet]"); - - return ERROR_OK; -} - static int xsvf_read_buffer(int num_bits, int fd, uint8_t* buf) { int num_bytes; @@ -1059,6 +1050,14 @@ static int handle_xsvf_command(struct command_context_s *cmd_ctx, char *cmd, cha return ERROR_OK; } +int xsvf_register_commands(struct command_context_s *cmd_ctx) +{ + register_command(cmd_ctx, NULL, "xsvf", + &handle_xsvf_command, COMMAND_EXEC, + "run xsvf <file> [virt2] [quiet]"); + + return ERROR_OK; +} #if 0 /* this comment style used to try and keep uncrustify from adding * at begin of line */ commit 841721929a63bb77379b1598d91ed85b85021734 Author: Zachary T Welch <zw...@su...> Date: Mon Nov 9 21:23:38 2009 -0800 command.c: make commands static Removes useless declarations, moving the handler functions to appear before their use in the (much bigger) command registriation function. diff --git a/src/helper/command.c b/src/helper/command.c index bd317e6..d29b6ec 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -47,9 +47,6 @@ int fast_and_dangerous = 0; Jim_Interp *interp = NULL; -int handle_sleep_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_fast_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - int run_command(command_context_t *context, command_t *c, char *words[], int num_words); static void tcl_output(void *privData, const char *file, int line, const char *function, const char *string) @@ -688,6 +685,54 @@ static int jim_capture(Jim_Interp *interp, int argc, Jim_Obj *const *argv) return retcode; } +/* sleep command sleeps for <n> miliseconds + * this is useful in target startup scripts + */ +static int handle_sleep_command(struct command_context_s *cmd_ctx, + char *cmd, char **args, int argc) +{ + bool busy = false; + if (argc == 2) + { + if (strcmp(args[1], "busy") == 0) + busy = true; + else + return ERROR_COMMAND_SYNTAX_ERROR; + } + else if (argc < 1 || argc > 2) + return ERROR_COMMAND_SYNTAX_ERROR; + + unsigned long duration = 0; + int retval = parse_ulong(args[0], &duration); + if (ERROR_OK != retval) + return retval; + + if (!busy) + { + long long then = timeval_ms(); + while (timeval_ms() - then < (long long)duration) + { + target_call_timer_callbacks_now(); + usleep(1000); + } + } + else + busy_sleep(duration); + + return ERROR_OK; +} + +static int handle_fast_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +{ + if (argc != 1) + return ERROR_COMMAND_SYNTAX_ERROR; + + fast_and_dangerous = strcmp("enable", args[0]) == 0; + + return ERROR_OK; +} + + command_context_t* command_init() { command_context_t* context = malloc(sizeof(command_context_t)); @@ -777,53 +822,6 @@ int command_context_mode(command_context_t *cmd_ctx, enum command_mode mode) return ERROR_OK; } -/* sleep command sleeps for <n> miliseconds - * this is useful in target startup scripts - */ -int handle_sleep_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc) -{ - bool busy = false; - if (argc == 2) - { - if (strcmp(args[1], "busy") == 0) - busy = true; - else - return ERROR_COMMAND_SYNTAX_ERROR; - } - else if (argc < 1 || argc > 2) - return ERROR_COMMAND_SYNTAX_ERROR; - - unsigned long duration = 0; - int retval = parse_ulong(args[0], &duration); - if (ERROR_OK != retval) - return retval; - - if (!busy) - { - long long then = timeval_ms(); - while (timeval_ms() - then < (long long)duration) - { - target_call_timer_callbacks_now(); - usleep(1000); - } - } - else - busy_sleep(duration); - - return ERROR_OK; -} - -int handle_fast_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) -{ - if (argc != 1) - return ERROR_COMMAND_SYNTAX_ERROR; - - fast_and_dangerous = strcmp("enable", args[0]) == 0; - - return ERROR_OK; -} - void process_jim_events(void) { #if !BUILD_ECOSBOARD commit 23d88e57748bece953ddf1063017152243abc93a Author: Zachary T Welch <zw...@su...> Date: Mon Nov 9 21:22:48 2009 -0800 server: remove useless declarations Remove server command declarations, make handler routines static. diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 3ed2b1f..284def3 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -2249,7 +2249,7 @@ int gdb_init(void) return ERROR_OK; } -int handle_gdb_sync_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_gdb_sync_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { if (argc != 0) { @@ -2269,12 +2269,12 @@ int handle_gdb_sync_command(struct command_context_s *cmd_ctx, char *cmd, char * } /* daemon configuration command gdb_port */ -int handle_gdb_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_gdb_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { return server_port_command(cmd_ctx, cmd, args, argc, &gdb_port); } -int handle_gdb_memory_map_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_gdb_memory_map_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { if (argc == 1) { @@ -2295,7 +2295,7 @@ int handle_gdb_memory_map_command(struct command_context_s *cmd_ctx, char *cmd, return ERROR_COMMAND_SYNTAX_ERROR; } -int handle_gdb_flash_program_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_gdb_flash_program_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { if (argc == 1) { @@ -2316,7 +2316,7 @@ int handle_gdb_flash_program_command(struct command_context_s *cmd_ctx, char *cm return ERROR_COMMAND_SYNTAX_ERROR; } -int handle_gdb_report_data_abort_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_gdb_report_data_abort_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { if (argc == 1) { @@ -2338,7 +2338,7 @@ int handle_gdb_report_data_abort_command(struct command_context_s *cmd_ctx, char } /* gdb_breakpoint_override */ -int handle_gdb_breakpoint_override_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_gdb_breakpoint_override_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { if (argc == 0) { @@ -2373,17 +2373,25 @@ int handle_gdb_breakpoint_override_command(struct command_context_s *cmd_ctx, ch int gdb_register_commands(command_context_t *command_context) { - register_command(command_context, NULL, "gdb_sync", handle_gdb_sync_command, - COMMAND_ANY, "next stepi will return immediately allowing GDB fetch register state without affecting target state"); - register_command(command_context, NULL, "gdb_port", handle_gdb_port_command, - COMMAND_ANY, "daemon configuration command gdb_port"); - register_command(command_context, NULL, "gdb_memory_map", handle_gdb_memory_map_command, - COMMAND_CONFIG, "enable or disable memory map"); - register_command(command_context, NULL, "gdb_flash_program", handle_gdb_flash_program_command, - COMMAND_CONFIG, "enable or disable flash program"); - register_command(command_context, NULL, "gdb_report_data_abort", handle_gdb_report_data_abort_command, - COMMAND_CONFIG, "enable or disable reporting data aborts"); - register_command(command_context, NULL, "gdb_breakpoint_override", handle_gdb_breakpoint_override_command, - COMMAND_EXEC, "hard/soft/disable - force breakpoint type for gdb 'break' commands."); + register_command(command_context, NULL, "gdb_sync", + handle_gdb_sync_command, COMMAND_ANY, + "next stepi will return immediately allowing GDB to " + "fetch register state without affecting target state"); + register_command(command_context, NULL, "gdb_port", + handle_gdb_port_command, COMMAND_ANY, + "daemon configuration command gdb_port"); + register_command(command_context, NULL, "gdb_memory_map", + handle_gdb_memory_map_command, COMMAND_CONFIG, + "enable or disable memory map"); + register_command(command_context, NULL, "gdb_flash_program", + handle_gdb_flash_program_command, COMMAND_CONFIG, + "enable or disable flash program"); + register_command(command_context, NULL, "gdb_report_data_abort", + handle_gdb_report_data_abort_command, COMMAND_CONFIG, + "enable or disable reporting data aborts"); + register_command(command_context, NULL, "gdb_breakpoint_override", + handle_gdb_breakpoint_override_command, COMMAND_EXEC, + "hard/soft/disable - force type of breakpoint " + "used by gdb 'break' commands."); return ERROR_OK; } diff --git a/src/server/server.c b/src/server/server.c index 03f0ee6..0501869 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -41,7 +41,6 @@ service_t *services = NULL; /* shutdown_openocd == 1: exit the main event loop, and quit the debugger */ static int shutdown_openocd = 0; -int handle_shutdown_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); /* set when using pipes rather than tcp */ int server_use_pipes = 0; @@ -534,22 +533,25 @@ int server_quit(void) return ERROR_OK; } -int server_register_commands(command_context_t *context) +/* tell the server we want to shut down */ +static int handle_shutdown_command(struct command_context_s *cmd_ctx, + char *cmd, char **args, int argc) { - register_command(context, NULL, "shutdown", handle_shutdown_command, - COMMAND_ANY, "shut the server down"); + shutdown_openocd = 1; - return ERROR_OK; + return ERROR_COMMAND_CLOSE_CONNECTION; } -/* tell the server we want to shut down */ -int handle_shutdown_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +int server_register_commands(command_context_t *context) { - shutdown_openocd = 1; + register_command(context, NULL, "shutdown", + handle_shutdown_command, COMMAND_ANY, + "shut the server down"); - return ERROR_COMMAND_CLOSE_CONNECTION; + return ERROR_OK; } + int server_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, unsigned short *out) { diff --git a/src/server/tcl_server.c b/src/server/tcl_server.c index 178d86b..2e93e36 100644 --- a/src/server/tcl_server.c +++ b/src/server/tcl_server.c @@ -36,9 +36,6 @@ typedef struct tcl_connection_s { static unsigned short tcl_port = 6666; -/* commands */ -static int handle_tcl_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - /* handlers */ static int tcl_new_connection(connection_t *connection); static int tcl_input(connection_t *connection); @@ -173,14 +170,16 @@ int tcl_init(void) return retval; } -int tcl_register_commands(command_context_t *cmd_ctx) -{ - register_command(cmd_ctx, NULL, "tcl_port", handle_tcl_port_command, COMMAND_CONFIG, "port on which to listen for incoming TCL syntax"); - return ERROR_OK; -} - static int handle_tcl_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { return server_port_command(cmd_ctx, cmd, args, argc, &tcl_port); } + +int tcl_register_commands(command_context_t *cmd_ctx) +{ + register_command(cmd_ctx, NULL, "tcl_port", + handle_tcl_port_command, COMMAND_CONFIG, + "port on which to listen for incoming TCL syntax"); + return ERROR_OK; +} diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c index c9c60bb..84959e3 100644 --- a/src/server/telnet_server.c +++ b/src/server/telnet_server.c @@ -32,9 +32,6 @@ static unsigned short telnet_port = 4444; -int handle_exit_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_telnet_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - static char *negotiate = "\xFF\xFB\x03" /* IAC WILL Suppress Go Ahead */ "\xFF\xFB\x01" /* IAC WILL Echo */ @@ -608,24 +605,30 @@ int telnet_init(char *banner) return ERROR_OK; } -int telnet_register_commands(command_context_t *command_context) -{ - register_command(command_context, NULL, "exit", handle_exit_command, - COMMAND_EXEC, "exit telnet session"); - - register_command(command_context, NULL, "telnet_port", handle_telnet_port_command, - COMMAND_ANY, "port on which to listen for incoming telnet connections"); - - return ERROR_OK; -} - /* daemon configuration command telnet_port */ -int handle_telnet_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_telnet_port_command(struct command_context_s *cmd_ctx, + char *cmd, char **args, int argc) { return server_port_command(cmd_ctx, cmd, args, argc, &telnet_port); } -int handle_exit_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_exit_command(struct command_context_s *cmd_ctx, + char *cmd, char **args, int argc) { return ERROR_COMMAND_CLOSE_CONNECTION; } + +int telnet_register_commands(command_context_t *command_context) +{ + register_command(command_context, NULL, "exit", + &handle_exit_command, COMMAND_EXEC, + "exit telnet session"); + + register_command(command_context, NULL, "telnet_port", + &handle_telnet_port_command, COMMAND_ANY, + "port on which to listen for incoming telnet connections"); + + return ERROR_OK; +} + + commit 8d6dcb9d39f0f948ef44beff991337b830fc4567 Author: Zachary T Welch <zw...@su...> Date: Mon Nov 9 21:21:06 2009 -0800 jtag: remove useless declarations Contrary to my previous assessment, some opportunities to remove forward declarations were overlooked. Remove them by moving the definitions of the command registration and interface structure to the end of files. diff --git a/src/jtag/amt_jtagaccel.c b/src/jtag/amt_jtagaccel.c index e3f440c..abfaadc 100644 --- a/src/jtag/amt_jtagaccel.c +++ b/src/jtag/amt_jtagaccel.c @@ -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 @@ -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) @@ -571,3 +540,24 @@ static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, return ERROR_OK; } + +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; +} + +jtag_interface_t amt_jtagaccel_interface = { + .name = "amt_jtagaccel", + .register_commands = &amt_jtagaccel_register_commands, + .init = &amt_jtagaccel_init, + .quit = &amt_jtagaccel_quit, + .speed = &amt_jtagaccel_speed, + .execute_queue = &amt_jtagaccel_execute_queue, + }; diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c index b3389cc..243479d 100644 --- a/src/jtag/ft2232.c +++ b/src/jtag/ft2232.c @@ -90,20 +90,6 @@ #endif #endif -static int ft2232_execute_queue(void); -static int ft2232_speed(int speed); -static int ft2232_speed_div(int speed, int* khz); -static int ft2232_khz(int khz, int* jtag_speed); -static int ft2232_register_commands(struct command_context_s* cmd_ctx); -static int ft2232_init(void); -static int ft2232_quit(void); - -static int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); -static int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); -static int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); -static int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); -static int ft2232_handle_latency_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc); - /** * Send out \a num_cycles on the TCK line while the TAP(s) are in a * stable state. Calling code must ensure that current state is stable, @@ -349,18 +335,6 @@ static void move_to_state(tap_state_t goal_state) clock_tms(0x4b, tms_bits, tms_count, 0); } -jtag_interface_t ft2232_interface = -{ - .name = "ft2232", - .execute_queue = ft2232_execute_queue, - .speed = ft2232_speed, - .speed_div = ft2232_speed_div, - .khz = ft2232_khz, - .register_commands = ft2232_register_commands, - .init = ft2232_init, - .quit = ft2232_quit, -}; - static int ft2232_write(uint8_t* buf, int size, uint32_t* bytes_written) { #if BUILD_FT2232_FTD2XX == 1 @@ -590,21 +564,6 @@ static int ft2232_khz(int khz, int* jtag_speed) return ERROR_OK; } -static int ft2232_register_commands(struct command_context_s* cmd_ctx) -{ - register_command(cmd_ctx, NULL, "ft2232_device_desc", ft2232_handle_device_desc_command, - COMMAND_CONFIG, "the USB device description of the FTDI FT2232 device"); - register_command(cmd_ctx, NULL, "ft2232_serial", ft2232_handle_serial_command, - COMMAND_CONFIG, "the serial number of the FTDI FT2232 device"); - register_command(cmd_ctx, NULL, "ft2232_layout", ft2232_handle_layout_command, - COMMAND_CONFIG, "the layout of the FT2232 GPIO signals used to control output-enables and reset signals"); - register_command(cmd_ctx, NULL, "ft2232_vid_pid", ft2232_handle_vid_pid_command, - COMMAND_CONFIG, "the vendor ID and product ID of the FTDI FT2232 device"); - register_command(cmd_ctx, NULL, "ft2232_latency", ft2232_handle_latency_command, - COMMAND_CONFIG, "set the FT2232 latency timer to a new value"); - return ERROR_OK; -} - static void ft2232_end_state(tap_state_t state) { if (tap_is_state_stable(state)) @@ -1804,7 +1763,7 @@ static int ft2232_execute_command(jtag_command_t *cmd) return retval; } -static int ft2232_execute_queue() +static int ft2232_execute_queue(void) { jtag_command_t* cmd = jtag_command_queue; /* currently processed command */ int retval; @@ -4011,3 +3970,37 @@ static void ktlink_blink(void) buffer_write(high_output); buffer_write(high_direction); } + +static int ft2232_register_commands(struct command_context_s* cmd_ctx) +{ + register_command(cmd_ctx, NULL, "ft2232_device_desc", + ft2232_handle_device_desc_command, COMMAND_CONFIG, + "the USB device description of the FTDI FT2232 device"); + register_command(cmd_ctx, NULL, "ft2232_serial", + ft2232_handle_serial_command, COMMAND_CONFIG, + "the serial number of the FTDI FT2232 device"); + register_command(cmd_ctx, NULL, "ft2232_layout", + ft2232_handle_layout_command, COMMAND_CONFIG, + "the layout of the FT2232 GPIO signals used " + "to control output-enables and reset signals"); + register_command(cmd_ctx, NULL, "ft2232_vid_pid", + ft2232_handle_vid_pid_command, COMMAND_CONFIG, + "the vendor ID and product ID of the FTDI FT2232 device"); + register_command(cmd_ctx, NULL, "ft2232_latency", + ft2232_handle_latency_command, COMMAND_CONFIG, + "set the FT2232 latency timer to a new value"); + + return ERROR_OK; +} + + +jtag_interface_t ft2232_interface = { + .name = "ft2232", + .register_commands = &ft2232_register_commands, + .init = &ft2232_init, + .quit = &ft2232_quit, + .speed = &ft2232_speed, + .speed_div = &ft2232_speed_div, + .khz = &ft2232_khz, + .execute_queue = &ft2232_execute_queue, + }; diff --git a/src/jtag/gw16012.c b/src/jtag/gw16012.c index 4b0ffd7..35473ab 100644 --- a/src/jtag/gw16012.c +++ b/src/jtag/gw16012.c @@ -78,34 +78,6 @@ static uint8_t gw16012_control_value = 0x0; static int device_handle; #endif -static int gw16012_execute_queue(void); -static int gw16012_register_commands(struct command_context_s *cmd_ctx); -static int gw16012_speed(int speed); -static int gw16012_init(void); -static int gw16012_quit(void); - -static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - -jtag_interface_t gw16012_interface = -{ - .name = "gw16012", - - .execute_queue = gw16012_execute_queue, - - .speed = gw16012_speed, - .register_commands = gw16012_register_commands, - .init = gw16012_init, - .quit = gw16012_quit, -}; - -static int gw16012_register_commands(struct command_context_s *cmd_ctx) -{ - register_command(cmd_ctx, NULL, "parport_port", gw16012_handle_parport_port_command, - COMMAND_CONFIG, NULL); - - return ERROR_OK; -} - static void gw16012_data(uint8_t value) { value = (value & 0x7f) | gw16012_msb; @@ -589,3 +561,21 @@ static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx return ERROR_OK; } + +static int gw16012_register_commands(struct command_context_s *cmd_ctx) +{ + register_command(cmd_ctx, NULL, "parport_port", + gw16012_handle_parport_port_command, COMMAND_CONFIG, + NULL); + + return ERROR_OK; +} + +jtag_interface_t gw16012_interface = { + .name = "gw16012", + .register_commands = &gw16012_register_commands, + .init = &gw16012_init, + .quit = &gw16012_quit, + .speed = &gw16012_speed, + .execute_queue = &gw16012_execute_queue, + }; diff --git a/src/jtag/parport.c b/src/jtag/parport.c index 12a5eea..fdf7df4 100644 --- a/src/jtag/parport.c +++ b/src/jtag/parport.c @@ -118,43 +118,6 @@ static unsigned long dataport; static unsigned long statusport; #endif -/* low level command set - */ -static int parport_read(void); -static void parport_write(int tck, int tms, int tdi); -static void parport_reset(int trst, int srst); -static void parport_led(int on); - -static int parport_speed(int speed); -static int parport_register_commands(struct command_context_s *cmd_ctx); -static int parport_init(void); -static int parport_quit(void); - -/* interface commands */ -static int parport_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int parport_handle_parport_cable_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int parport_handle_write_on_exit_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - -jtag_interface_t parport_interface = -{ - .name = "parport", - - .execute_queue = bitbang_execute_queue, - - .speed = parport_speed, - .register_commands = parport_register_commands, - .init = parport_init, - .quit = parport_quit, -}; - -static bitbang_interface_t parport_bitbang = -{ - .read = parport_read, - .write = parport_write, - .reset = parport_reset, - .blink = parport_led -}; - static int parport_read(void) { int data = 0; @@ -244,18 +207,6 @@ static int parport_speed(int speed) return ERROR_OK; } -static int parport_register_commands(struct command_context_s *cmd_ctx) -{ - register_command(cmd_ctx, NULL, "parport_port", parport_handle_parport_port_command, - COMMAND_CONFIG, "either the address of the I/O port or the number of the '/dev/parport' device"); - register_command(cmd_ctx, NULL, "parport_cable", parport_handle_parport_cable_command, - COMMAND_CONFIG, "the layout of the parallel port cable used to connect to the target"); - register_command(cmd_ctx, NULL, "parport_write_on_exit", parport_handle_write_on_exit_command, - COMMAND_CONFIG, "configure the parallel driver to write a known value to the parallel interface"); - - return ERROR_OK; -} - #if PARPORT_USE_GIVEIO == 1 static int parport_get_giveio_access(void) { @@ -282,6 +233,13 @@ static int parport_get_giveio_access(void) } #endif +static bitbang_interface_t parport_bitbang = { + .read = &parport_read, + .write = &parport_write, + .reset = &parport_reset, + .blink = &parport_led, + }; + static int parport_init(void) { cable_t *cur_cable; @@ -479,3 +437,32 @@ static int parport_handle_write_on_exit_command(struct command_context_s *cmd_ct return ERROR_OK; } + +static int parport_register_commands(struct command_context_s *cmd_ctx) +{ + register_command(cmd_ctx, NULL, "parport_port", + parport_handle_parport_port_command, COMMAND_CONFIG, + "either the address of the I/O port " + "or the number of the '/dev/parport' device"); + + register_command(cmd_ctx, NULL, "parport_cable", + parport_handle_parport_cable_command, COMMAND_CONFIG, + "the layout of the parallel port cable " + "used to connect to the target"); + + register_command(cmd_ctx, NULL, "parport_write_on_exit", + parport_handle_write_on_exit_command, COMMAND_CONFIG, + "configure the parallel driver to write " + "a known value to the parallel interface"); + + return ERROR_OK; +} + +jtag_interface_t parport_interface = { + .name = "parport", + .register_commands = &parport_register_commands, + .init = &parport_init, + .quit = &parport_quit, + .speed = &parport_speed, + .execute_queue = &bitbang_execute_queue, + }; diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c index 574f266..71efc8b 100644 --- a/src/jtag/tcl.c +++ b/src/jtag/tcl.c @@ -51,32 +51,6 @@ static const Jim_Nvp nvp_jtag_tap_event[] = { extern jtag_interface_t *jtag_interface; -/* jtag commands */ -static int handle_interface_list_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc); -static int handle_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_jtag_khz_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_jtag_rclk_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_jtag_nsrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_jtag_ntrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_jtag_nsrst_assert_width_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_jtag_ntrst_assert_width_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - -static int handle_scan_chain_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - -static int handle_jtag_reset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_runtest_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *argv); -static int Jim_Command_pathmove(Jim_Interp *interp, int argc, Jim_Obj *const *argv); -static int Jim_Command_flush_count(Jim_Interp *interp, int argc, Jim_Obj *const *args); - -static int handle_verify_ircapture_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_verify_jtag_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int handle_tms_sequence_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - - enum jtag_tap_cfg_param { JCFG_EVENT }; @@ -604,59 +578,6 @@ void jtag_notify_event(enum jtag_event event) } -int jtag_register_commands(struct command_context_s *cmd_ctx) -{ - register_jim(cmd_ctx, "jtag", jim_jtag_command, "perform jtag tap actions"); - - register_command(cmd_ctx, NULL, "interface", handle_interface_command, - COMMAND_CONFIG, "try to configure interface"); - register_command(cmd_ctx, NULL, - "interface_list", &handle_interface_list_command, - COMMAND_ANY, "list all built-in interfaces"); - register_command(cmd_ctx, NULL, "jtag_khz", handle_jtag_khz_command, - COMMAND_ANY, "set maximum jtag speed (if supported); " - "parameter is maximum khz, or 0 for adaptive clocking (RTCK)."); - register_command(cmd_ctx, NULL, "jtag_rclk", handle_jtag_rclk_command, - COMMAND_ANY, "fallback_speed_khz - set JTAG speed to RCLK or use fallback speed"); - register_command(cmd_ctx, NULL, "reset_config", handle_reset_config_command, - COMMAND_ANY, - "reset_config " - "[none|trst_only|srst_only|trst_and_srst] " - "[srst_pulls_trst|trst_pulls_srst|combined|separate] " - "[srst_gates_jtag|srst_nogate] " - "[trst_push_pull|trst_open_drain] " - "[srst_push_pull|srst_open_drain]"); - register_command(cmd_ctx, NULL, "jtag_nsrst_delay", handle_jtag_nsrst_delay_command, - COMMAND_ANY, "jtag_nsrst_delay <ms> - delay after deasserting srst in ms"); - register_command(cmd_ctx, NULL, "jtag_ntrst_delay", handle_jtag_ntrst_delay_command, - COMMAND_ANY, "jtag_ntrst_delay <ms> - delay after deasserting trst in ms"); - register_command(cmd_ctx, NULL, "jtag_nsrst_assert_width", handle_jtag_nsrst_assert_width_command, - COMMAND_ANY, "jtag_nsrst_assert_width <ms> - delay after asserting srst in ms"); - register_command(cmd_ctx, NULL, "jtag_ntrst_assert_width", handle_jtag_ntrst_assert_width_command, - COMMAND_ANY, "jtag_ntrst_assert_width <ms> - delay after asserting trst in ms"); - - register_command(cmd_ctx, NULL, "scan_chain", handle_scan_chain_command, - COMMAND_EXEC, "print current scan chain configuration"); - - register_command(cmd_ctx, NULL, "jtag_reset", handle_jtag_reset_command, - COMMAND_EXEC, "toggle reset lines <trst> <srst>"); - register_command(cmd_ctx, NULL, "runtest", handle_runtest_command, - COMMAND_EXEC, "move to Run-Test/Idle, and execute <num_cycles>"); - register_command(cmd_ctx, NULL, "irscan", handle_irscan_command, - COMMAND_EXEC, "execute IR scan <device> <instr> [dev2] [instr2] ..."); - register_jim(cmd_ctx, "drscan", Jim_Command_drscan, "execute DR scan <device> <num_bits> <value> <num_bits1> <value2> ..."); - register_jim(cmd_ctx, "flush_count", Jim_Command_flush_count, "returns number of times the JTAG queue has been flushed"); - register_jim(cmd_ctx, "pathmove", Jim_Command_pathmove, "move JTAG to state1 then to state2, state3, etc. <state1>,<state2>,<stat3>..."); - - register_command(cmd_ctx, NULL, "verify_ircapture", handle_verify_ircapture_command, - COMMAND_ANY, "verify value captured during Capture-IR <enable | disable>"); - register_command(cmd_ctx, NULL, "verify_jtag", handle_verify_jtag_command, - COMMAND_ANY, "verify value capture <enable | disable>"); - register_command(cmd_ctx, NULL, "tms_sequence", handle_tms_sequence_command, - COMMAND_ANY, "choose short(default) or long tms_sequence <short | long>"); - return ERROR_OK; -} - static int default_khz(int khz, int *jtag_speed) { LOG_ERROR("Translation from khz to jtag_speed not implemented"); @@ -681,6 +602,22 @@ static int default_srst_asserted(int *srst_asserted) return ERROR_OK; } +static int handle_interface_list_command(struct command_context_s *cmd_ctx, + char *cmd, char **args, int argc) +{ + if (strcmp(cmd, "interface_list") == 0 && argc > 0) + return ERROR_COMMAND_SYNTAX_ERROR; + + command_print(cmd_ctx, "The following JTAG interfaces are available:"); + for (unsigned i = 0; NULL != jtag_interfaces[i]; i++) + { + const char *name = jtag_interfaces[i]->name; + command_print(cmd_ctx, "%u: %s", i + 1, name); + } + + return ERROR_OK; +} + static int handle_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { @@ -726,22 +663,6 @@ static int handle_interface_command(struct command_context_s *cmd_ctx, return ERROR_JTAG_INVALID_INTERFACE; } -static int handle_interface_list_command(struct command_context_s *cmd_ctx, - char *cmd, char **args, int argc) -{ - if (strcmp(cmd, "interface_list") == 0 && argc > 0) - return ERROR_COMMAND_SYNTAX_ERROR; - - command_print(cmd_ctx, "The following JTAG interfaces are available:"); - for (unsigned i = 0; NULL != jtag_interfaces[i]; i++) - { - const char *name = jtag_interfaces[i]->name; - command_print(cmd_ctx, "%u: %s", i + 1, name); - } - - return ERROR_OK; -} - static int handle_scan_chain_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { jtag_tap_t *tap; @@ -1501,3 +1422,90 @@ static int handle_tms_sequence_command(struct command_context_s *cmd_ctx, char * return ERROR_OK; } + +int jtag_register_commands(struct command_context_s *cmd_ctx) +{ + register_jim(cmd_ctx, "jtag", jim_jtag_command, + "perform jtag tap actions"); + + register_command(cmd_ctx, NULL, "interface", + handle_interface_command, COMMAND_CONFIG, + "try to configure interface"); + register_command(cmd_ctx, NULL, "interface_list", + &handle_interface_list_command, COMMAND_ANY, + "list all built-in interfaces"); + + register_command(cmd_ctx, NULL, "jtag_khz", + handle_jtag_khz_command, COMMAND_ANY, + "set maximum jtag speed (if supported); " + "parameter is maximum khz, or 0 for adaptive clocking (RTCK)."); + register_command(cmd_ctx, NULL, "jtag_rclk", + handle_jtag_rclk_command, COMMAND_ANY, + "fallback_speed_khz - set JTAG speed to RCLK or use fallback speed"); + register_command(cmd_ctx, NULL, "reset_config", + handle_reset_config_command, COMMAND_ANY, + "reset_config " + "[none|trst_only|srst_only|trst_and_srst] " + "[srst_pulls_trst|trst_pulls_srst|combined|separate] " + "[srst_gates_jtag|srst_nogate] " + "[trst_push_pull|trst_open_drain] " + "[srst_push_pull|srst_open_drain]"); + + register_command(cmd_ctx, NULL, "jtag_nsrst_delay", + handle_jtag_nsrst_delay_command, COMMAND_ANY, + "jtag_nsrst_delay <ms> " + "- delay after deasserting srst in ms"); + register_command(cmd_ctx, NULL, "jtag_ntrst_delay", + handle_jtag_ntrst_delay_command, COMMAND_ANY, + "jtag_ntrst_delay <ms> " + "- delay after deasserting trst in ms"); + + register_command(cmd_ctx, NULL, "jtag_nsrst_assert_width", + handle_jtag_nsrst_assert_width_command, COMMAND_ANY, + "jtag_nsrst_assert_width <ms> " + "- delay after asserting srst in ms"); + register_command(cmd_ctx, NULL, "jtag_ntrst_assert_width", + handle_jtag_ntrst_assert_width_command, COMMAND_ANY, + "jtag_ntrst_assert_width <ms> " + "- delay after asserting trst in ms"); + + register_command(cmd_ctx, NULL, "scan_chain", + handle_scan_chain_command, COMMAND_EXEC, + "print current scan chain configuration"); + + register_command(cmd_ctx, NULL, "jtag_reset", + handle_jtag_reset_command, COMMAND_EXEC, + "toggle reset lines <trst> <srst>"); + register_command(cmd_ctx, NULL, "runtest", + handle_runtest_command, COMMAND_EXEC, + "move to Run-Test/Idle, and execute <num_cycles>"); + register_command(cmd_ctx, NULL, "irscan", + handle_irscan_command, COMMAND_EXEC, + "execute IR scan <device> <instr> [dev2] [instr2] ..."); + + register_jim(cmd_ctx, "drscan", Jim_Command_drscan, + "execute DR scan <device> " + "<num_bits> <value> <num_bits1> <value2> ..."); + + register_jim(cmd_ctx, "flush_count", Jim_Command_flush_count, + "returns number of times the JTAG queue has been flushed"); + + register_jim(cmd_ctx, "pathmove", Jim_Command_pathmove, + "<state1>,<state2>,<state3>... " + "- move JTAG to state1 then to state2, state3, etc."); + + register_command(cmd_ctx, NULL, "verify_ircapture", + handle_verify_ircapture_command, COMMAND_ANY, + "verify value captured during Capture-IR <enable | disable>"); + register_command(cmd_ctx, NULL, "verify_jtag", + handle_verify_jtag_command, COMMAND_ANY, + "verify value capture <enable | disable>"); + + register_command(cmd_ctx, NULL, "tms_sequence", + handle_tms_sequence_command, COMMAND_ANY, + "choose short(default) or long tms_sequence <short | long>"); + + return ERROR_OK; +} + + diff --git a/src/jtag/vsllink.c b/src/jtag/vsllink.c index 3c1a046..b008467 100644 --- a/src/jtag/vsllink.c +++ b/src/jtag/vsllink.c @@ -176,23 +176,6 @@ typedef struct static int pending_scan_results_length; static pending_scan_result_t pending_scan_results_buffer[MAX_PENDING_SCAN_RESULTS]; -/* External interface functions */ -static int vsllink_execute_queue(void); -static int vsllink_speed(int speed); -static int vsllink_khz(int khz, int *jtag_speed); -static int vsllink_speed_div(int jtag_speed, int *khz); -static int vsllink_register_commands(struct command_context_s *cmd_ctx); -static int vsllink_init(void); -static int vsllink_quit(void); - -/* CLI command handler functions */ -static int vsllink_handle_usb_vid_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int vsllink_handle_usb_pid_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int vsllink_handle_usb_bulkin_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int vsllink_handle_usb_bulkout_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int vsllink_handle_usb_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -static int vsllink_handle_mode_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); - /* Queue command functions */ static void vsllink_end_state(tap_state_t state); static void vsllink_state_move_dma(void); @@ -255,21 +238,6 @@ static int last_tms; static vsllink_jtag_t* vsllink_jtag_handle = NULL; -/***************************************************************************/ -/* External interface implementation */ - -jtag_interface_t vsllink_interface = -{ - .name = "vsllink", - .execute_queue = vsllink_execute_queue, - .speed = vsllink_speed, - .khz = vsllink_khz, - .speed_div = vsllink_speed_div, - .register_commands = vsllink_register_commands, - .init = vsllink_init, - .quit = vsllink_quit -}; - static void reset_command_pointer(void) { if (vsllink_mode == VSLLINK_MODE_NORMAL) @@ -1357,24 +1325,6 @@ static void vsllink_simple_command(uint8_t command) } } -static int vsllink_register_commands(struct command_context_s *cmd_ctx) -{ - register_command(cmd_ctx, NULL, "vsllink_usb_vid", vsllink_handle_usb_vid_command, - COMMAND_CONFIG, NULL); - register_command(cmd_ctx, NULL, "vsllink_usb_pid", vsllink_handle_usb_pid_command, - COMMAND_CONFIG, NULL); - register_command(cmd_ctx, NULL, "vsllink_usb_bulkin", vsllink_handle_usb_bulkin_command, - COMMAND_CONFIG, NULL); - register_command(cmd_ctx, NULL, "vsllink_usb_bulkout", vsllink_handle_usb_bulkout_command, - COMMAND_CONFIG, NULL); - register_command(cmd_ctx, NULL, "vsllink_usb_interface", vsllink_handle_usb_interface_command, - COMMAND_CONFIG, NULL); - register_command(cmd_ctx, NULL, "vsllink_mode", vsllink_handle_mode_command, - COMMAND_CONFIG, NULL); - - return ERROR_OK; -} - static int vsllink_handle_mode_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { if (argc != 1) { @@ -1932,3 +1882,38 @@ static void vsllink_debug_buffer(uint8_t *buffer, int length) } } #endif // _DEBUG_USB_COMMS_ || _DEBUG_JTAG_IO_ + +static int vsllink_register_commands(struct command_context_s *cmd_ctx) +{ + register_command(cmd_ctx, NULL, "vsllink_usb_vid", + vsllink_handle_usb_vid_command, COMMAND_CONFIG, + NULL); + register_command(cmd_ctx, NULL, "vsllink_usb_pid", + vsllink_handle_usb_pid_command, COMMAND_CONFIG, + NULL); + register_command(cmd_ctx, NULL, "vsllink_usb_bulkin", + vsllink_handle_usb_bulkin_command, COMMAND_CONFIG, + NULL); + register_command(cmd_ctx, NULL, "vsllink_usb_bulkout", + vsllink_handle_usb_bulkout_command, COMMAND_CONFIG, + NULL); + register_command(cmd_ctx, NULL, "vsllink_usb_interface", + vsllink_handle_usb_interface_command, COMMAND_CONFIG, + NULL); + register_command(cmd_ctx, NULL, "vsllink_mode", + vsllink_handle_mode_command, COMMAND_CONFIG, + NULL); + + return ERROR_OK; +} + +jtag_interface_t vsllink_interface = { + .name = "vsllink", + .register_commands = &vsllink_register_commands, + .init = &vsllink_init, + .quit = &vsllink_quit, + .khz = &vsllink_khz, + .speed = &vsllink_speed, + .speed_div = &vsllink_speed_div, + .execute_queue = &vsllink_execute_queue, + }; ----------------------------------------------------------------------- Summary of changes: src/helper/command.c | 98 +++++++++++----------- src/jtag/amt_jtagaccel.c | 52 +++++------- src/jtag/ft2232.c | 77 ++++++++--------- src/jtag/gw16012.c | 46 ++++------ src/jtag/parport.c | 85 ++++++++----------- src/jtag/tcl.c | 198 +++++++++++++++++++++++--------------------- src/jtag/vsllink.c | 85 ++++++++----------- src/server/gdb_server.c | 44 ++++++---- src/server/server.c | 20 +++-- src/server/tcl_server.c | 17 ++-- src/server/telnet_server.c | 35 ++++---- src/svf/svf.c | 18 ++-- src/target/arm7_9_common.c | 73 +++++++++-------- src/xsvf/xsvf.c | 17 ++-- 14 files changed, 415 insertions(+), 450 deletions(-) hooks/post-receive -- Main OpenOCD repository |