cmd: add missing usage var
[fw/openocd] / src / flash / nor / tms470.c
index edb43afa2f5c1782867a276fda0417e1181bc8ab..393ca76e5a9b7688cff878c75ba8618b8dd830bb 100644 (file)
@@ -21,7 +21,6 @@
 #include "config.h"
 #endif
 
-#include "tms470.h"
 #include "imp.h"
 
 
                       Internal Support, Helpers
    ---------------------------------------------------------------------- */
 
+struct tms470_flash_bank
+{
+       unsigned ordinal;
+
+       /* device identification register */
+       uint32_t device_ident_reg;
+       uint32_t silicon_version;
+       uint32_t technology_family;
+       uint32_t rom_flash;
+       uint32_t part_number;
+       const char * part_name;
+
+};
+
 static const struct flash_sector TMS470R1A256_SECTORS[] = {
        {0x00000000, 0x00002000, -1, -1},
        {0x00002000, 0x00002000, -1, -1},
@@ -116,7 +129,7 @@ static int tms470_read_part_info(struct flash_bank *bank)
        uint32_t technology_family;
        uint32_t rom_flash;
        uint32_t part_number;
-       char *part_name;
+       const char *part_name;
 
        /* we shall not rely on the caller in this test, this function allocates memory,
           thus and executing the code more than once may cause memory leak */
@@ -139,6 +152,12 @@ static int tms470_read_part_info(struct flash_bank *bank)
        rom_flash = (device_ident_reg >> 10) & 1;
        part_number = (device_ident_reg >> 3) & 0x7f;
 
+       if (bank->sectors)
+       {
+               free(bank->sectors);
+               bank->sectors = NULL;
+       }
+
        /*
         * If the part number is known, determine if the flash bank is valid
         * based on the base address being within the known flash bank
@@ -294,8 +313,7 @@ COMMAND_HANDLER(tms470_handle_flash_keyset_command)
 {
        if (CMD_ARGC > 4)
        {
-               command_print(CMD_CTX, "tms470 flash_keyset <key0> <key1> <key2> <key3>");
-               return ERROR_INVALID_ARGUMENTS;
+               return ERROR_COMMAND_SYNTAX_ERROR;
        }
        else if (CMD_ARGC == 4)
        {
@@ -309,7 +327,7 @@ COMMAND_HANDLER(tms470_handle_flash_keyset_command)
                        {
                                command_print(CMD_CTX, "could not process flash key %s", CMD_ARGV[i]);
                                LOG_ERROR("could not process flash key %s", CMD_ARGV[i]);
-                               return ERROR_INVALID_ARGUMENTS;
+                               return ERROR_COMMAND_SYNTAX_ERROR;
                        }
                }
 
@@ -318,7 +336,7 @@ COMMAND_HANDLER(tms470_handle_flash_keyset_command)
        else if (CMD_ARGC != 0)
        {
                command_print(CMD_CTX, "tms470 flash_keyset <key0> <key1> <key2> <key3>");
-               return ERROR_INVALID_ARGUMENTS;
+               return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
        if (keysSet)
@@ -358,8 +376,7 @@ COMMAND_HANDLER(tms470_handle_osc_megahertz_command)
 {
        if (CMD_ARGC > 1)
        {
-               command_print(CMD_CTX, "tms470 osc_megahertz <MHz>");
-               return ERROR_INVALID_ARGUMENTS;
+               return ERROR_COMMAND_SYNTAX_ERROR;
        }
        else if (CMD_ARGC == 1)
        {
@@ -371,7 +388,7 @@ COMMAND_HANDLER(tms470_handle_osc_megahertz_command)
                LOG_ERROR("osc_megahertz must be positive and non-zero!");
                command_print(CMD_CTX, "osc_megahertz must be positive and non-zero!");
                oscMHz = 12;
-               return ERROR_INVALID_ARGUMENTS;
+               return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
        command_print(CMD_CTX, "osc_megahertz=%d", oscMHz);
@@ -387,8 +404,7 @@ COMMAND_HANDLER(tms470_handle_plldis_command)
 {
        if (CMD_ARGC > 1)
        {
-               command_print(CMD_CTX, "tms470 plldis <0 | 1>");
-               return ERROR_INVALID_ARGUMENTS;
+               return ERROR_COMMAND_SYNTAX_ERROR;
        }
        else if (CMD_ARGC == 1)
        {
@@ -821,18 +837,21 @@ static int tms470_erase_sector(struct flash_bank *bank, int sector)
 static const struct command_registration tms470_any_command_handlers[] = {
        {
                .name = "flash_keyset",
+               .usage = "<key0> <key1> <key2> <key3>",
                .handler = tms470_handle_flash_keyset_command,
                .mode = COMMAND_ANY,
                .help = "tms470 flash_keyset <key0> <key1> <key2> <key3>",
        },
        {
                .name = "osc_megahertz",
+               .usage = "<MHz>",
                .handler = tms470_handle_osc_megahertz_command,
                .mode = COMMAND_ANY,
                .help = "tms470 osc_megahertz <MHz>",
        },
        {
                .name = "plldis",
+               .usage = "<0 | 1>",
                .handler = tms470_handle_plldis_command,
                .mode = COMMAND_ANY,
                .help = "tms470 plldis <0/1>",
@@ -844,6 +863,7 @@ static const struct command_registration tms470_command_handlers[] = {
                .name = "tms470",
                .mode = COMMAND_ANY,
                .help = "TI tms470 flash command group",
+               .usage = "",
                .chain = tms470_any_command_handlers,
        },
        COMMAND_REGISTRATION_DONE
@@ -1209,7 +1229,7 @@ static int tms470_protect_check(struct flash_bank *bank)
 
 /* ---------------------------------------------------------------------- */
 
-static int tms470_info(struct flash_bank *bank, char *buf, int buf_size)
+static int get_tms470_info(struct flash_bank *bank, char *buf, int buf_size)
 {
        int used = 0;
        struct tms470_flash_bank *tms470_info = bank->driver_priv;
@@ -1225,13 +1245,11 @@ static int tms470_info(struct flash_bank *bank, char *buf, int buf_size)
                return ERROR_FLASH_OPERATION_FAILED;
        }
 
-       used += snprintf(buf, buf_size, "\ntms470 information: Chip is %s\n", tms470_info->part_name);
+       used = snprintf(buf, buf_size, "\ntms470 information: Chip is %s\n", tms470_info->part_name);
        buf += used;
        buf_size -= used;
 
-       used += snprintf(buf, buf_size, "Flash protection level 2 is %s\n", tms470_check_flash_unlocked(bank->target) == ERROR_OK ? "disabled" : "enabled");
-       buf += used;
-       buf_size -= used;
+       snprintf(buf, buf_size, "Flash protection level 2 is %s\n", tms470_check_flash_unlocked(bank->target) == ERROR_OK ? "disabled" : "enabled");
 
        return ERROR_OK;
 }
@@ -1264,9 +1282,10 @@ struct flash_driver tms470_flash = {
        .erase = tms470_erase,
        .protect = tms470_protect,
        .write = tms470_write,
+       .read = default_flash_read,
        .probe = tms470_probe,
        .auto_probe = tms470_auto_probe,
        .erase_check = tms470_erase_check,
        .protect_check = tms470_protect_check,
-       .info = tms470_info,
+       .info = get_tms470_info,
 };