#include "str9x.h"
#include "arm966e.h"
+#include "algorithm.h"
static uint32_t bank1start = 0x00080000;
{
struct str9x_flash_bank *str9x_info;
- if (argc < 6)
+ if (CMD_ARGC < 6)
{
LOG_WARNING("incomplete flash_bank str9x configuration");
return ERROR_FLASH_BANK_INVALID;
struct str9x_flash_bank *str9x_info;
struct target *target = NULL;
- if (argc < 5)
+ if (CMD_ARGC < 5)
{
return ERROR_COMMAND_SYNTAX_ERROR;
}
struct flash_bank *bank;
- int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
uint32_t bbsr, nbbsr, bbadr, nbbadr;
- COMMAND_PARSE_NUMBER(u32, args[1], bbsr);
- COMMAND_PARSE_NUMBER(u32, args[2], nbbsr);
- COMMAND_PARSE_NUMBER(u32, args[3], bbadr);
- COMMAND_PARSE_NUMBER(u32, args[4], nbbadr);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], bbsr);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], nbbsr);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], bbadr);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[4], nbbadr);
str9x_info = bank->driver_priv;
return ERROR_OK;
}
-static int str9x_register_commands(struct command_context *cmd_ctx)
-{
- command_t *str9x_cmd = register_command(cmd_ctx, NULL, "str9x",
- NULL, COMMAND_ANY, "str9x flash commands");
-
- register_command(cmd_ctx, str9x_cmd, "flash_config",
- str9x_handle_flash_config_command, COMMAND_EXEC,
- "configure str9 flash controller");
-
- return ERROR_OK;
-}
+static const struct command_registration str9x_config_command_handlers[] = {
+ {
+ .name = "disable_jtag",
+ .handler = &str9x_handle_flash_config_command,
+ .mode = COMMAND_EXEC,
+ .help = "configure str9x flash controller",
+ .usage = "<bank_id> <BBSR> <NBBSR> <BBADR> <NBBADR>",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration str9x_command_handlers[] = {
+ {
+ .name = "str9x",
+ .mode = COMMAND_ANY,
+ .help = "str9x flash command group",
+ .chain = str9x_config_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE
+};
struct flash_driver str9x_flash = {
.name = "str9x",
- .register_commands = &str9x_register_commands,
+ .commands = str9x_command_handlers,
.flash_bank_command = &str9x_flash_bank_command,
.erase = &str9x_erase,
.protect = &str9x_protect,