diff options
author | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-04-23 05:42:42 +0000 |
---|---|---|
committer | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-04-23 05:42:42 +0000 |
commit | 6510be8b8b0ffbe6c3d577625f7485775c69a99a (patch) | |
tree | 29c469c17e20e823a92392ba8703c26a5d754714 | |
parent | 30dc76644da0dd9203dc9969a9be1d520fc5feb0 (diff) | |
download | openocd+libswd-6510be8b8b0ffbe6c3d577625f7485775c69a99a.tar.gz openocd+libswd-6510be8b8b0ffbe6c3d577625f7485775c69a99a.tar.bz2 openocd+libswd-6510be8b8b0ffbe6c3d577625f7485775c69a99a.tar.xz openocd+libswd-6510be8b8b0ffbe6c3d577625f7485775c69a99a.zip |
added fast option.
git-svn-id: svn://svn.berlios.de/openocd/trunk@604 b42882b7-edfa-0310-969c-e2dbd0fdcd60
-rw-r--r-- | doc/openocd.texi | 16 | ||||
-rw-r--r-- | src/helper/command.c | 17 | ||||
-rw-r--r-- | src/helper/command.h | 3 | ||||
-rw-r--r-- | src/target/arm7_9_common.c | 4 |
4 files changed, 38 insertions, 2 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi index 985a9d3a..4a8bb45b 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -741,6 +741,22 @@ Close the OpenOCD daemon, disconnecting all clients (GDB, Telnet). @cindex debug_level Display or adjust debug level to n<0-3> +@item @b{fast} [@var{enable/disable}] +@cindex fast +Default disabled. Set default behaviour of OpenOCD to be "fast and dangerous". For instance ARM7/9 DCC memory +downloads and fast memory access will work if the JTAG interface isn't too fast and +the core doesn't run at a too low frequency. Note that this option only changes the default +and that the indvidual options, like DCC memory downloads, can be enabled and disabled +individually. + +The target specific "dangerous" optimisation tweaking options may come and go +as more robust and user friendly ways are found to ensure maximum throughput +and robustness with a minimum of configuration. + +Typically the "fast enable" is specified first on the command line: + +openocd -c "fast enable" -c "interface dummy" -f target/str710.cfg + @item @b{log_output} <@var{file}> @cindex log_output Redirect logging to <file> (default: stderr) diff --git a/src/helper/command.c b/src/helper/command.c index 7a7cbcbb..31666e3a 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -38,10 +38,13 @@ #include <stdio.h> #include <unistd.h> +int fast_and_dangerous = 0; + void command_print_help_line(command_context_t* context, struct command_s *command, int indent); int handle_sleep_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); int handle_time_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 build_unique_lengths(command_context_t *context, command_t *commands) { @@ -559,6 +562,9 @@ command_context_t* command_init() register_command(context, NULL, "time", handle_time_command, COMMAND_ANY, "time <cmd + args> - execute <cmd + args> and print time it took"); + register_command(context, NULL, "fast", handle_fast_command, + COMMAND_ANY, "fast <enable/disable> - place at beginning of config files. Sets defaults to fast and dangerous."); + return context; } @@ -578,6 +584,17 @@ int handle_sleep_command(struct command_context_s *cmd_ctx, char *cmd, char **ar 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; +} + + int handle_time_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { duration_t duration; diff --git a/src/helper/command.h b/src/helper/command.h index 6e6af75e..3586017d 100644 --- a/src/helper/command.h +++ b/src/helper/command.h @@ -79,4 +79,7 @@ extern int command_run_file(command_context_t *context, FILE *file, enum command #define ERROR_COMMAND_CLOSE_CONNECTION (-600) #define ERROR_COMMAND_SYNTAX_ERROR (-601) + +extern int fast_and_dangerous; + #endif /* COMMAND_H */ diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c index 0c63d920..b64a885f 100644 --- a/src/target/arm7_9_common.c +++ b/src/target/arm7_9_common.c @@ -2624,8 +2624,8 @@ int arm7_9_init_arch_info(target_t *target, arm7_9_common_t *arm7_9) arm7_9->dcc_working_area = NULL; - arm7_9->fast_memory_access = 0; - arm7_9->dcc_downloads = 0; + arm7_9->fast_memory_access = fast_and_dangerous; + arm7_9->dcc_downloads = fast_and_dangerous; armv4_5->arch_info = arm7_9; armv4_5->read_core_reg = arm7_9_read_core_reg; |