summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/helper/command.c17
-rw-r--r--src/helper/command.h3
-rw-r--r--src/target/arm7_9_common.c4
3 files changed, 22 insertions, 2 deletions
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;