summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/flash/flash.c119
1 files changed, 62 insertions, 57 deletions
diff --git a/src/flash/flash.c b/src/flash/flash.c
index 22c6069e..451abdc6 100644
--- a/src/flash/flash.c
+++ b/src/flash/flash.c
@@ -31,18 +31,6 @@
#include "image.h"
#include "time_support.h"
-/* command handlers */
-static int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-static int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
static int flash_write_unlock(target_t *target, image_t *image, uint32_t *written, int erase, bool unlock);
/* flash drivers
@@ -132,14 +120,6 @@ int flash_driver_protect(struct flash_bank_s *bank, int set, int first, int last
return retval;
}
-int flash_register_commands(struct command_context_s *cmd_ctx)
-{
- flash_cmd = register_command(cmd_ctx, NULL, "flash", NULL, COMMAND_ANY, NULL);
-
- register_command(cmd_ctx, flash_cmd, "bank", handle_flash_bank_command, COMMAND_CONFIG, "flash bank <driver> <base> <size> <chip_width> <bus_width> <target> [driver_options ...]");
- return ERROR_OK;
-}
-
static int jim_flash_banks(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
flash_bank_t *p;
@@ -173,43 +153,6 @@ static int jim_flash_banks(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
return JIM_OK;
}
-int flash_init_drivers(struct command_context_s *cmd_ctx)
-{
- register_jim(cmd_ctx, "ocd_flash_banks", jim_flash_banks, "return information about the flash banks");
-
- if (!flash_banks)
- return ERROR_OK;
-
- register_command(cmd_ctx, flash_cmd, "info", handle_flash_info_command, COMMAND_EXEC,
- "print info about flash bank <num>");
- register_command(cmd_ctx, flash_cmd, "probe", handle_flash_probe_command, COMMAND_EXEC,
- "identify flash bank <num>");
- register_command(cmd_ctx, flash_cmd, "erase_check", handle_flash_erase_check_command, COMMAND_EXEC,
- "check erase state of sectors in flash bank <num>");
- register_command(cmd_ctx, flash_cmd, "protect_check", handle_flash_protect_check_command, COMMAND_EXEC,
- "check protection state of sectors in flash bank <num>");
- register_command(cmd_ctx, flash_cmd, "erase_sector", handle_flash_erase_command, COMMAND_EXEC,
- "erase sectors at <bank> <first> <last>");
- register_command(cmd_ctx, flash_cmd, "erase_address", handle_flash_erase_address_command, COMMAND_EXEC,
- "erase address range <address> <length>");
-
- register_command(cmd_ctx, flash_cmd, "fillw", handle_flash_fill_command, COMMAND_EXEC,
- "fill with pattern (no autoerase) <address> <word_pattern> <count>");
- register_command(cmd_ctx, flash_cmd, "fillh", handle_flash_fill_command, COMMAND_EXEC,
- "fill with pattern <address> <halfword_pattern> <count>");
- register_command(cmd_ctx, flash_cmd, "fillb", handle_flash_fill_command, COMMAND_EXEC,
- "fill with pattern <address> <byte_pattern> <count>");
-
- register_command(cmd_ctx, flash_cmd, "write_bank", handle_flash_write_bank_command, COMMAND_EXEC,
- "write binary data to <bank> <file> <offset>");
- register_command(cmd_ctx, flash_cmd, "write_image", handle_flash_write_image_command, COMMAND_EXEC,
- "write_image [erase] [unlock] <file> [offset] [type]");
- register_command(cmd_ctx, flash_cmd, "protect", handle_flash_protect_command, COMMAND_EXEC,
- "set protection of sectors at <bank> <first> <last> <on | off>");
-
- return ERROR_OK;
-}
-
flash_bank_t *get_flash_bank_by_num_noprobe(int num)
{
flash_bank_t *p;
@@ -1274,3 +1217,65 @@ int default_flash_blank_check(struct flash_bank_s *bank)
return ERROR_OK;
}
+
+int flash_init_drivers(struct command_context_s *cmd_ctx)
+{
+ register_jim(cmd_ctx, "ocd_flash_banks",
+ jim_flash_banks, "return information about the flash banks");
+
+ if (!flash_banks)
+ return ERROR_OK;
+
+ register_command(cmd_ctx, flash_cmd, "info",
+ handle_flash_info_command, COMMAND_EXEC,
+ "print info about flash bank <num>");
+ register_command(cmd_ctx, flash_cmd, "probe",
+ handle_flash_probe_command, COMMAND_EXEC,
+ "identify flash bank <num>");
+ register_command(cmd_ctx, flash_cmd, "erase_check",
+ handle_flash_erase_check_command, COMMAND_EXEC,
+ "check erase state of sectors in flash bank <num>");
+ register_command(cmd_ctx, flash_cmd, "protect_check",
+ handle_flash_protect_check_command, COMMAND_EXEC,
+ "check protection state of sectors in flash bank <num>");
+ register_command(cmd_ctx, flash_cmd, "erase_sector",
+ handle_flash_erase_command, COMMAND_EXEC,
+ "erase sectors at <bank> <first> <last>");
+ register_command(cmd_ctx, flash_cmd, "erase_address",
+ handle_flash_erase_address_command, COMMAND_EXEC,
+ "erase address range <address> <length>");
+
+ register_command(cmd_ctx, flash_cmd, "fillw",
+ handle_flash_fill_command, COMMAND_EXEC,
+ "fill with pattern (no autoerase) <address> <word_pattern> <count>");
+ register_command(cmd_ctx, flash_cmd, "fillh",
+ handle_flash_fill_command, COMMAND_EXEC,
+ "fill with pattern <address> <halfword_pattern> <count>");
+ register_command(cmd_ctx, flash_cmd, "fillb",
+ handle_flash_fill_command, COMMAND_EXEC,
+ "fill with pattern <address> <byte_pattern> <count>");
+
+ register_command(cmd_ctx, flash_cmd, "write_bank",
+ handle_flash_write_bank_command, COMMAND_EXEC,
+ "write binary data to <bank> <file> <offset>");
+ register_command(cmd_ctx, flash_cmd, "write_image",
+ handle_flash_write_image_command, COMMAND_EXEC,
+ "write_image [erase] [unlock] <file> [offset] [type]");
+ register_command(cmd_ctx, flash_cmd, "protect",
+ handle_flash_protect_command, COMMAND_EXEC,
+ "set protection of sectors at <bank> <first> <last> <on | off>");
+
+ return ERROR_OK;
+}
+
+int flash_register_commands(struct command_context_s *cmd_ctx)
+{
+ flash_cmd = register_command(cmd_ctx, NULL, "flash",
+ NULL, COMMAND_ANY, NULL);
+
+ register_command(cmd_ctx, flash_cmd, "bank",
+ handle_flash_bank_command, COMMAND_CONFIG,
+ "flash bank <driver> <base> <size> "
+ "<chip_width> <bus_width> <target> [driver_options ...]");
+ return ERROR_OK;
+}