openocd: fix SPDX tag format for files .c
[fw/openocd] / src / flash / nor / tms470.c
index c1681f1971ddc65f7be89be9e4e3b0fc6708bf80..e01d2df0a50122fc4b42fe26b6b884e087e29135 100644 (file)
@@ -1,35 +1,34 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 /***************************************************************************
  *   Copyright (C) 2007,2008 by Christopher Kilgour                        *
  *   techie |_at_| whiterocker |_dot_| com                                 *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
-#include "tms470.h"
 #include "imp.h"
 
-
 /* ----------------------------------------------------------------------
-                      Internal Support, Helpers
-   ---------------------------------------------------------------------- */
+ *                      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[] = {
+};
+
+static const struct flash_sector tms470r1a256_sectors[] = {
        {0x00000000, 0x00002000, -1, -1},
        {0x00002000, 0x00002000, -1, -1},
        {0x00004000, 0x00002000, -1, -1},
@@ -47,9 +46,9 @@ static const struct flash_sector TMS470R1A256_SECTORS[] = {
 };
 
 #define TMS470R1A256_NUM_SECTORS \
-       ARRAY_SIZE(TMS470R1A256_SECTORS)
+       ARRAY_SIZE(tms470r1a256_sectors)
 
-static const struct flash_sector TMS470R1A288_BANK0_SECTORS[] = {
+static const struct flash_sector tms470r1a288_bank0_sectors[] = {
        {0x00000000, 0x00002000, -1, -1},
        {0x00002000, 0x00002000, -1, -1},
        {0x00004000, 0x00002000, -1, -1},
@@ -57,9 +56,9 @@ static const struct flash_sector TMS470R1A288_BANK0_SECTORS[] = {
 };
 
 #define TMS470R1A288_BANK0_NUM_SECTORS \
-       ARRAY_SIZE(TMS470R1A288_BANK0_SECTORS)
+       ARRAY_SIZE(tms470r1a288_bank0_sectors)
 
-static const struct flash_sector TMS470R1A288_BANK1_SECTORS[] = {
+static const struct flash_sector tms470r1a288_bank1_sectors[] = {
        {0x00040000, 0x00010000, -1, -1},
        {0x00050000, 0x00010000, -1, -1},
        {0x00060000, 0x00010000, -1, -1},
@@ -67,9 +66,9 @@ static const struct flash_sector TMS470R1A288_BANK1_SECTORS[] = {
 };
 
 #define TMS470R1A288_BANK1_NUM_SECTORS \
-       ARRAY_SIZE(TMS470R1A288_BANK1_SECTORS)
+       ARRAY_SIZE(tms470r1a288_bank1_sectors)
 
-static const struct flash_sector TMS470R1A384_BANK0_SECTORS[] = {
+static const struct flash_sector tms470r1a384_bank0_sectors[] = {
        {0x00000000, 0x00002000, -1, -1},
        {0x00002000, 0x00002000, -1, -1},
        {0x00004000, 0x00004000, -1, -1},
@@ -83,9 +82,9 @@ static const struct flash_sector TMS470R1A384_BANK0_SECTORS[] = {
 };
 
 #define TMS470R1A384_BANK0_NUM_SECTORS \
-       ARRAY_SIZE(TMS470R1A384_BANK0_SECTORS)
+       ARRAY_SIZE(tms470r1a384_bank0_sectors)
 
-static const struct flash_sector TMS470R1A384_BANK1_SECTORS[] = {
+static const struct flash_sector tms470r1a384_bank1_sectors[] = {
        {0x00020000, 0x00008000, -1, -1},
        {0x00028000, 0x00008000, -1, -1},
        {0x00030000, 0x00008000, -1, -1},
@@ -93,9 +92,9 @@ static const struct flash_sector TMS470R1A384_BANK1_SECTORS[] = {
 };
 
 #define TMS470R1A384_BANK1_NUM_SECTORS \
-       ARRAY_SIZE(TMS470R1A384_BANK1_SECTORS)
+       ARRAY_SIZE(tms470r1a384_bank1_sectors)
 
-static const struct flash_sector TMS470R1A384_BANK2_SECTORS[] = {
+static const struct flash_sector tms470r1a384_bank2_sectors[] = {
        {0x00040000, 0x00008000, -1, -1},
        {0x00048000, 0x00008000, -1, -1},
        {0x00050000, 0x00008000, -1, -1},
@@ -103,7 +102,7 @@ static const struct flash_sector TMS470R1A384_BANK2_SECTORS[] = {
 };
 
 #define TMS470R1A384_BANK2_NUM_SECTORS \
-       ARRAY_SIZE(TMS470R1A384_BANK2_SECTORS)
+       ARRAY_SIZE(tms470r1a384_bank2_sectors)
 
 /* ---------------------------------------------------------------------- */
 
@@ -116,20 +115,19 @@ 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 */
        if (tms470_info->device_ident_reg)
-         return ERROR_OK;
+               return ERROR_OK;
 
        /* read and parse the device identification register */
        target_read_u32(target, 0xFFFFFFF0, &device_ident_reg);
 
        LOG_INFO("device_ident_reg = 0x%08" PRIx32 "", device_ident_reg);
 
-       if ((device_ident_reg & 7) == 0)
-       {
+       if ((device_ident_reg & 7) == 0) {
                LOG_WARNING("Cannot identify target as a TMS470 family.");
                return ERROR_FLASH_OPERATION_FAILED;
        }
@@ -139,136 +137,122 @@ static int tms470_read_part_info(struct flash_bank *bank)
        rom_flash = (device_ident_reg >> 10) & 1;
        part_number = (device_ident_reg >> 3) & 0x7f;
 
+       free(bank->sectors);
+       bank->sectors = NULL;
+       bank->num_sectors = 0;
+
        /*
         * If the part number is known, determine if the flash bank is valid
         * based on the base address being within the known flash bank
         * ranges.  Then fixup/complete the remaining fields of the flash
         * bank structure.
         */
-       switch (part_number)
-       {
-       case 0x0a:
-               part_name = "TMS470R1A256";
-
-               if (bank->base >= 0x00040000)
-               {
-                       LOG_ERROR("No %s flash bank contains base address 0x%08" PRIx32 ".", part_name, bank->base);
-                       return ERROR_FLASH_OPERATION_FAILED;
-               }
-               tms470_info->ordinal = 0;
-               bank->base = 0x00000000;
-               bank->size = 256 * 1024;
-               bank->num_sectors = TMS470R1A256_NUM_SECTORS;
-               bank->sectors = malloc(sizeof(TMS470R1A256_SECTORS));
-               if (!bank->sectors)
-               {
-                       return ERROR_FLASH_OPERATION_FAILED;
-               }
-               (void)memcpy(bank->sectors, TMS470R1A256_SECTORS, sizeof(TMS470R1A256_SECTORS));
-               break;
-
-       case 0x2b:
-               part_name = "TMS470R1A288";
-
-               if (bank->base < 0x00008000)
-               {
-                       tms470_info->ordinal = 0;
-                       bank->base = 0x00000000;
-                       bank->size = 32 * 1024;
-                       bank->num_sectors = TMS470R1A288_BANK0_NUM_SECTORS;
-                       bank->sectors = malloc(sizeof(TMS470R1A288_BANK0_SECTORS));
-                       if (!bank->sectors)
-                       {
-                               return ERROR_FLASH_OPERATION_FAILED;
-                       }
-                       (void)memcpy(bank->sectors, TMS470R1A288_BANK0_SECTORS, sizeof(TMS470R1A288_BANK0_SECTORS));
-               }
-               else if ((bank->base >= 0x00040000) && (bank->base < 0x00080000))
-               {
-                       tms470_info->ordinal = 1;
-                       bank->base = 0x00040000;
-                       bank->size = 256 * 1024;
-                       bank->num_sectors = TMS470R1A288_BANK1_NUM_SECTORS;
-                       bank->sectors = malloc(sizeof(TMS470R1A288_BANK1_SECTORS));
-                       if (!bank->sectors)
-                       {
+       switch (part_number) {
+               case 0x0a:
+                       part_name = "TMS470R1A256";
+
+                       if (bank->base >= 0x00040000) {
+                               LOG_ERROR("No %s flash bank contains base address "
+                                               TARGET_ADDR_FMT ".",
+                                               part_name,
+                                               bank->base);
                                return ERROR_FLASH_OPERATION_FAILED;
                        }
-                       (void)memcpy(bank->sectors, TMS470R1A288_BANK1_SECTORS, sizeof(TMS470R1A288_BANK1_SECTORS));
-               }
-               else
-               {
-                       LOG_ERROR("No %s flash bank contains base address 0x%08" PRIx32 ".", part_name, bank->base);
-                       return ERROR_FLASH_OPERATION_FAILED;
-               }
-               break;
-
-       case 0x2d:
-               part_name = "TMS470R1A384";
-
-               if (bank->base < 0x00020000)
-               {
                        tms470_info->ordinal = 0;
                        bank->base = 0x00000000;
-                       bank->size = 128 * 1024;
-                       bank->num_sectors = TMS470R1A384_BANK0_NUM_SECTORS;
-                       bank->sectors = malloc(sizeof(TMS470R1A384_BANK0_SECTORS));
+                       bank->size = 256 * 1024;
+                       bank->num_sectors = TMS470R1A256_NUM_SECTORS;
+                       bank->sectors = malloc(sizeof(tms470r1a256_sectors));
                        if (!bank->sectors)
-                       {
                                return ERROR_FLASH_OPERATION_FAILED;
-                       }
-                       (void)memcpy(bank->sectors, TMS470R1A384_BANK0_SECTORS, sizeof(TMS470R1A384_BANK0_SECTORS));
-               }
-               else if ((bank->base >= 0x00020000) && (bank->base < 0x00040000))
-               {
-                       tms470_info->ordinal = 1;
-                       bank->base = 0x00020000;
-                       bank->size = 128 * 1024;
-                       bank->num_sectors = TMS470R1A384_BANK1_NUM_SECTORS;
-                       bank->sectors = malloc(sizeof(TMS470R1A384_BANK1_SECTORS));
-                       if (!bank->sectors)
-                       {
+                       (void)memcpy(bank->sectors, tms470r1a256_sectors, sizeof(tms470r1a256_sectors));
+                       break;
+
+               case 0x2b:
+                       part_name = "TMS470R1A288";
+
+                       if (bank->base < 0x00008000) {
+                               tms470_info->ordinal = 0;
+                               bank->base = 0x00000000;
+                               bank->size = 32 * 1024;
+                               bank->num_sectors = TMS470R1A288_BANK0_NUM_SECTORS;
+                               bank->sectors = malloc(sizeof(tms470r1a288_bank0_sectors));
+                               if (!bank->sectors)
+                                       return ERROR_FLASH_OPERATION_FAILED;
+                               (void)memcpy(bank->sectors, tms470r1a288_bank0_sectors,
+                                               sizeof(tms470r1a288_bank0_sectors));
+                       } else if ((bank->base >= 0x00040000) && (bank->base < 0x00080000)) {
+                               tms470_info->ordinal = 1;
+                               bank->base = 0x00040000;
+                               bank->size = 256 * 1024;
+                               bank->num_sectors = TMS470R1A288_BANK1_NUM_SECTORS;
+                               bank->sectors = malloc(sizeof(tms470r1a288_bank1_sectors));
+                               if (!bank->sectors)
+                                       return ERROR_FLASH_OPERATION_FAILED;
+                               (void)memcpy(bank->sectors, tms470r1a288_bank1_sectors,
+                                               sizeof(tms470r1a288_bank1_sectors));
+                       } else {
+                               LOG_ERROR("No %s flash bank contains base address " TARGET_ADDR_FMT ".",
+                                               part_name, bank->base);
                                return ERROR_FLASH_OPERATION_FAILED;
                        }
-                       (void)memcpy(bank->sectors, TMS470R1A384_BANK1_SECTORS, sizeof(TMS470R1A384_BANK1_SECTORS));
-               }
-               else if ((bank->base >= 0x00040000) && (bank->base < 0x00060000))
-               {
-                       tms470_info->ordinal = 2;
-                       bank->base = 0x00040000;
-                       bank->size = 128 * 1024;
-                       bank->num_sectors = TMS470R1A384_BANK2_NUM_SECTORS;
-                       bank->sectors = malloc(sizeof(TMS470R1A384_BANK2_SECTORS));
-                       if (!bank->sectors)
-                       {
+                       break;
+
+               case 0x2d:
+                       part_name = "TMS470R1A384";
+
+                       if (bank->base < 0x00020000) {
+                               tms470_info->ordinal = 0;
+                               bank->base = 0x00000000;
+                               bank->size = 128 * 1024;
+                               bank->num_sectors = TMS470R1A384_BANK0_NUM_SECTORS;
+                               bank->sectors = malloc(sizeof(tms470r1a384_bank0_sectors));
+                               if (!bank->sectors)
+                                       return ERROR_FLASH_OPERATION_FAILED;
+                               (void)memcpy(bank->sectors, tms470r1a384_bank0_sectors,
+                                               sizeof(tms470r1a384_bank0_sectors));
+                       } else if ((bank->base >= 0x00020000) && (bank->base < 0x00040000)) {
+                               tms470_info->ordinal = 1;
+                               bank->base = 0x00020000;
+                               bank->size = 128 * 1024;
+                               bank->num_sectors = TMS470R1A384_BANK1_NUM_SECTORS;
+                               bank->sectors = malloc(sizeof(tms470r1a384_bank1_sectors));
+                               if (!bank->sectors)
+                                       return ERROR_FLASH_OPERATION_FAILED;
+                               (void)memcpy(bank->sectors, tms470r1a384_bank1_sectors,
+                                               sizeof(tms470r1a384_bank1_sectors));
+                       } else if ((bank->base >= 0x00040000) && (bank->base < 0x00060000)) {
+                               tms470_info->ordinal = 2;
+                               bank->base = 0x00040000;
+                               bank->size = 128 * 1024;
+                               bank->num_sectors = TMS470R1A384_BANK2_NUM_SECTORS;
+                               bank->sectors = malloc(sizeof(tms470r1a384_bank2_sectors));
+                               if (!bank->sectors)
+                                       return ERROR_FLASH_OPERATION_FAILED;
+                               (void)memcpy(bank->sectors, tms470r1a384_bank2_sectors,
+                                               sizeof(tms470r1a384_bank2_sectors));
+                       } else {
+                               LOG_ERROR("No %s flash bank contains base address " TARGET_ADDR_FMT ".",
+                                               part_name, bank->base);
                                return ERROR_FLASH_OPERATION_FAILED;
                        }
-                       (void)memcpy(bank->sectors, TMS470R1A384_BANK2_SECTORS, sizeof(TMS470R1A384_BANK2_SECTORS));
-               }
-               else
-               {
-                       LOG_ERROR("No %s flash bank contains base address 0x%08" PRIx32 ".", part_name, bank->base);
-                       return ERROR_FLASH_OPERATION_FAILED;
-               }
-               break;
+                       break;
 
-       default:
-               LOG_WARNING("Could not identify part 0x%02x as a member of the TMS470 family.", (unsigned)part_number);
-               return ERROR_FLASH_OPERATION_FAILED;
+               default:
+                       LOG_WARNING("Could not identify part 0x%02x as a member of the TMS470 family.",
+                                       (unsigned)part_number);
+                       return ERROR_FLASH_OPERATION_FAILED;
        }
 
        /* turn off memory selects */
        target_write_u32(target, 0xFFFFFFE4, 0x00000000);
        target_write_u32(target, 0xFFFFFFE0, 0x00000000);
 
-       bank->chip_width = 32;
-       bank->bus_width = 32;
-
        LOG_INFO("Identified %s, ver=%d, core=%s, nvmem=%s.",
-                part_name,
-                (int)(silicon_version),
-                (technology_family ? "1.8v" : "3.3v"),
-                (rom_flash ? "rom" : "flash"));
+               part_name,
+               (int)(silicon_version),
+               (technology_family ? "1.8v" : "3.3v"),
+               (rom_flash ? "rom" : "flash"));
 
        tms470_info->device_ident_reg = device_ident_reg;
        tms470_info->silicon_version = silicon_version;
@@ -287,134 +271,115 @@ static int tms470_read_part_info(struct flash_bank *bank)
 
 /* ---------------------------------------------------------------------- */
 
-static uint32_t keysSet = 0;
-static uint32_t flashKeys[4];
+static uint32_t keys_set;
+static uint32_t flash_keys[4];
 
 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;
-       }
-       else if (CMD_ARGC == 4)
-       {
+               return ERROR_COMMAND_SYNTAX_ERROR;
+       else if (CMD_ARGC == 4) {
                int i;
 
-               for (i = 0; i < 4; i++)
-               {
-                       int start = (0 == strncmp(CMD_ARGV[i], "0x", 2)) ? 2 : 0;
+               for (i = 0; i < 4; i++) {
+                       int start = (strncmp(CMD_ARGV[i], "0x", 2) == 0) ? 2 : 0;
 
-                       if (1 != sscanf(&CMD_ARGV[i][start], "%" SCNx32 "", &flashKeys[i]))
-                       {
-                               command_print(CMD_CTX, "could not process flash key %s", CMD_ARGV[i]);
+                       if (sscanf(&CMD_ARGV[i][start], "%" SCNx32 "", &flash_keys[i]) != 1) {
+                               command_print(CMD, "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;
                        }
                }
 
-               keysSet = 1;
-       }
-       else if (CMD_ARGC != 0)
-       {
-               command_print(CMD_CTX, "tms470 flash_keyset <key0> <key1> <key2> <key3>");
-               return ERROR_INVALID_ARGUMENTS;
+               keys_set = 1;
+       } else if (CMD_ARGC != 0) {
+               command_print(CMD, "tms470 flash_keyset <key0> <key1> <key2> <key3>");
+               return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       if (keysSet)
-       {
-               command_print(CMD_CTX, "using flash keys 0x%08" PRIx32 ", 0x%08" PRIx32 ", 0x%08" PRIx32 ", 0x%08" PRIx32 "",
-                             flashKeys[0], flashKeys[1], flashKeys[2], flashKeys[3]);
-       }
-       else
-       {
-               command_print(CMD_CTX, "flash keys not set");
-       }
+       if (keys_set) {
+               command_print(CMD,
+                       "using flash keys 0x%08" PRIx32 ", 0x%08" PRIx32 ", 0x%08" PRIx32 ", 0x%08" PRIx32 "",
+                       flash_keys[0],
+                       flash_keys[1],
+                       flash_keys[2],
+                       flash_keys[3]);
+       } else
+               command_print(CMD, "flash keys not set");
 
        return ERROR_OK;
 }
 
-static const uint32_t FLASH_KEYS_ALL_ONES[] = { 0xFFFFFFFF, 0xFFFFFFFF,
-       0xFFFFFFFF, 0xFFFFFFFF,
-};
+static const uint32_t flash_keys_all_ones[] = { 0xFFFFFFFF, 0xFFFFFFFF,
+               0xFFFFFFFF, 0xFFFFFFFF,};
 
-static const uint32_t FLASH_KEYS_ALL_ZEROS[] = { 0x00000000, 0x00000000,
-       0x00000000, 0x00000000,
-};
+static const uint32_t flash_keys_all_zeros[] = { 0x00000000, 0x00000000,
+               0x00000000, 0x00000000,};
 
-static const uint32_t FLASH_KEYS_MIX1[] = { 0xf0fff0ff, 0xf0fff0ff,
-       0xf0fff0ff, 0xf0fff0ff
-};
+static const uint32_t flash_keys_mix1[] = { 0xf0fff0ff, 0xf0fff0ff,
+               0xf0fff0ff, 0xf0fff0ff};
 
-static const uint32_t FLASH_KEYS_MIX2[] = { 0x0000ffff, 0x0000ffff,
-       0x0000ffff, 0x0000ffff
-};
+static const uint32_t flash_keys_mix2[] = { 0x0000ffff, 0x0000ffff,
+               0x0000ffff, 0x0000ffff};
 
 /* ---------------------------------------------------------------------- */
 
-static int oscMHz = 12;
+static int osc_mhz = 12;
 
 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)
-       {
-               sscanf(CMD_ARGV[0], "%d", &oscMHz);
-       }
+               sscanf(CMD_ARGV[0], "%d", &osc_mhz);
 
-       if (oscMHz <= 0)
-       {
+       if (osc_mhz <= 0) {
                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;
+               command_print(CMD, "osc_megahertz must be positive and non-zero!");
+               osc_mhz = 12;
+               return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
-       command_print(CMD_CTX, "osc_megahertz=%d", oscMHz);
+       command_print(CMD, "osc_megahertz=%d", osc_mhz);
 
        return ERROR_OK;
 }
 
 /* ---------------------------------------------------------------------- */
 
-static int plldis = 0;
+static int plldis;
 
 COMMAND_HANDLER(tms470_handle_plldis_command)
 {
        if (CMD_ARGC > 1)
-       {
-               command_print(CMD_CTX, "tms470 plldis <0 | 1>");
-               return ERROR_INVALID_ARGUMENTS;
-       }
-       else if (CMD_ARGC == 1)
-       {
+               return ERROR_COMMAND_SYNTAX_ERROR;
+       else if (CMD_ARGC == 1) {
                sscanf(CMD_ARGV[0], "%d", &plldis);
                plldis = plldis ? 1 : 0;
        }
 
-       command_print(CMD_CTX, "plldis=%d", plldis);
+       command_print(CMD, "plldis=%d", plldis);
 
        return ERROR_OK;
 }
 
 /* ---------------------------------------------------------------------- */
 
-static int tms470_check_flash_unlocked(struct target * target)
+static int tms470_check_flash_unlocked(struct target *target)
 {
        uint32_t fmbbusy;
 
        target_read_u32(target, 0xFFE89C08, &fmbbusy);
-       LOG_INFO("tms470 fmbbusy = 0x%08" PRIx32 " -> %s", fmbbusy, fmbbusy & 0x8000 ? "unlocked" : "LOCKED");
+       LOG_INFO("tms470 fmbbusy = 0x%08" PRIx32 " -> %s",
+               fmbbusy,
+               fmbbusy & 0x8000 ? "unlocked" : "LOCKED");
        return fmbbusy & 0x8000 ? ERROR_OK : ERROR_FLASH_OPERATION_FAILED;
 }
 
 /* ---------------------------------------------------------------------- */
 
-static int tms470_try_flash_keys(struct target * target, const uint32_t * key_set)
+static int tms470_try_flash_keys(struct target *target, const uint32_t *key_set)
 {
        uint32_t glbctrl, fmmstat;
        int retval = ERROR_FLASH_OPERATION_FAILED;
@@ -425,20 +390,17 @@ static int tms470_try_flash_keys(struct target * target, const uint32_t * key_se
 
        /* only perform the key match when 3VSTAT is clear */
        target_read_u32(target, 0xFFE8BC0C, &fmmstat);
-       if (!(fmmstat & 0x08))
-       {
+       if (!(fmmstat & 0x08)) {
                unsigned i;
                uint32_t fmbptr, fmbac2, orig_fmregopt;
 
                target_write_u32(target, 0xFFE8BC04, fmmstat & ~0x07);
 
                /* wait for pump ready */
-               do
-               {
+               do {
                        target_read_u32(target, 0xFFE8A814, &fmbptr);
                        alive_sleep(1);
-               }
-               while (!(fmbptr & 0x0200));
+               } while (!(fmbptr & 0x0200));
 
                /* force max wait states */
                target_read_u32(target, 0xFFE88004, &fmbac2);
@@ -448,8 +410,7 @@ static int tms470_try_flash_keys(struct target * target, const uint32_t * key_se
                target_read_u32(target, 0xFFE89C00, &orig_fmregopt);
                target_write_u32(target, 0xFFE89C00, 0x00);
 
-               for (i = 0; i < 4; i++)
-               {
+               for (i = 0; i < 4; i++) {
                        uint32_t tmp;
 
                        /* There is no point displaying the value of tmp, it is
@@ -462,15 +423,13 @@ static int tms470_try_flash_keys(struct target * target, const uint32_t * key_se
                        target_write_u32(target, 0xFFE89C0C, key_set[i]);
                }
 
-               if (ERROR_OK == tms470_check_flash_unlocked(target))
-               {
+               if (tms470_check_flash_unlocked(target) == ERROR_OK) {
                        /*
                         * There seems to be a side-effect of reading the FMPKEY
                         * register in that it re-enables the protection.  So we
                         * re-enable it.
                         */
-                       for (i = 0; i < 4; i++)
-                       {
+                       for (i = 0; i < 4; i++) {
                                uint32_t tmp;
 
                                target_read_u32(target, 0x00001FF0 + 4 * i, &tmp);
@@ -498,28 +457,23 @@ static int tms470_unlock_flash(struct flash_bank *bank)
        const uint32_t *p_key_sets[5];
        unsigned i, key_set_count;
 
-       if (keysSet)
-       {
+       if (keys_set) {
                key_set_count = 5;
-               p_key_sets[0] = flashKeys;
-               p_key_sets[1] = FLASH_KEYS_ALL_ONES;
-               p_key_sets[2] = FLASH_KEYS_ALL_ZEROS;
-               p_key_sets[3] = FLASH_KEYS_MIX1;
-               p_key_sets[4] = FLASH_KEYS_MIX2;
-       }
-       else
-       {
+               p_key_sets[0] = flash_keys;
+               p_key_sets[1] = flash_keys_all_ones;
+               p_key_sets[2] = flash_keys_all_zeros;
+               p_key_sets[3] = flash_keys_mix1;
+               p_key_sets[4] = flash_keys_mix2;
+       } else {
                key_set_count = 4;
-               p_key_sets[0] = FLASH_KEYS_ALL_ONES;
-               p_key_sets[1] = FLASH_KEYS_ALL_ZEROS;
-               p_key_sets[2] = FLASH_KEYS_MIX1;
-               p_key_sets[3] = FLASH_KEYS_MIX2;
+               p_key_sets[0] = flash_keys_all_ones;
+               p_key_sets[1] = flash_keys_all_zeros;
+               p_key_sets[2] = flash_keys_mix1;
+               p_key_sets[3] = flash_keys_mix2;
        }
 
-       for (i = 0; i < key_set_count; i++)
-       {
-               if (tms470_try_flash_keys(target, p_key_sets[i]) == ERROR_OK)
-               {
+       for (i = 0; i < key_set_count; i++) {
+               if (tms470_try_flash_keys(target, p_key_sets[i]) == ERROR_OK) {
                        LOG_INFO("tms470 flash is unlocked");
                        return ERROR_OK;
                }
@@ -578,14 +532,11 @@ static int tms470_flash_initialize_internal_state_machine(struct flash_bank *ban
         * configure VHV
         */
        target_read_u32(target, 0xFFE8A080, &fmmaxep);
-       if (fmmaxep == 0xf000)
-       {
+       if (fmmaxep == 0xf000) {
                fmmaxep = 0xf000 + 4095;
                target_write_u32(target, 0xFFE8A80C, 0x9964);
                LOG_DEBUG("set fmptr3 = 0x9964");
-       }
-       else
-       {
+       } else {
                fmmaxep = 0xa000 + 4095;
                target_write_u32(target, 0xFFE8A80C, 0x9b64);
                LOG_DEBUG("set fmptr3 = 0x9b64");
@@ -608,7 +559,7 @@ static int tms470_flash_initialize_internal_state_machine(struct flash_bank *ban
         * the plldis global.
         */
        target_read_u32(target, 0xFFFFFFDC, &glbctrl);
-       sysclk = (plldis ? 1 : (glbctrl & 0x08) ? 4 : 8) * oscMHz / (1 + (glbctrl & 7));
+       sysclk = (plldis ? 1 : (glbctrl & 0x08) ? 4 : 8) * osc_mhz / (1 + (glbctrl & 7));
        delay = (sysclk > 10) ? (sysclk + 1) / 2 : 5;
        target_write_u32(target, 0xFFE8A018, (delay << 4) | (delay << 8));
        LOG_DEBUG("set fmpsetup = 0x%04" PRIx32 "", (delay << 4) | (delay << 8));
@@ -676,44 +627,37 @@ static int tms470_flash_status(struct flash_bank *bank)
        target_read_u32(target, 0xFFE8BC0C, &fmmstat);
        LOG_DEBUG("set fmmstat = 0x%04" PRIx32 "", fmmstat);
 
-       if (fmmstat & 0x0080)
-       {
+       if (fmmstat & 0x0080) {
                LOG_WARNING("tms470 flash command: erase still active after busy clear.");
                result = ERROR_FLASH_OPERATION_FAILED;
        }
 
-       if (fmmstat & 0x0040)
-       {
+       if (fmmstat & 0x0040) {
                LOG_WARNING("tms470 flash command: program still active after busy clear.");
                result = ERROR_FLASH_OPERATION_FAILED;
        }
 
-       if (fmmstat & 0x0020)
-       {
+       if (fmmstat & 0x0020) {
                LOG_WARNING("tms470 flash command: invalid data command.");
                result = ERROR_FLASH_OPERATION_FAILED;
        }
 
-       if (fmmstat & 0x0010)
-       {
+       if (fmmstat & 0x0010) {
                LOG_WARNING("tms470 flash command: program, erase or validate sector failed.");
                result = ERROR_FLASH_OPERATION_FAILED;
        }
 
-       if (fmmstat & 0x0008)
-       {
+       if (fmmstat & 0x0008) {
                LOG_WARNING("tms470 flash command: voltage instability detected.");
                result = ERROR_FLASH_OPERATION_FAILED;
        }
 
-       if (fmmstat & 0x0006)
-       {
+       if (fmmstat & 0x0006) {
                LOG_WARNING("tms470 flash command: command suspend detected.");
                result = ERROR_FLASH_OPERATION_FAILED;
        }
 
-       if (fmmstat & 0x0001)
-       {
+       if (fmmstat & 0x0001) {
                LOG_WARNING("tms470 flash command: sector was locked.");
                result = ERROR_FLASH_OPERATION_FAILED;
        }
@@ -727,7 +671,7 @@ static int tms470_erase_sector(struct flash_bank *bank, int sector)
 {
        uint32_t glbctrl, orig_fmregopt, fmbsea, fmbseb, fmmstat;
        struct target *target = bank->target;
-       uint32_t flashAddr = bank->base + bank->sectors[sector].offset;
+       uint32_t flash_addr = bank->base + bank->sectors[sector].offset;
        int result = ERROR_OK;
 
        /*
@@ -749,14 +693,12 @@ static int tms470_erase_sector(struct flash_bank *bank, int sector)
         * Select one or more bits in FMBSEA or FMBSEB to disable Level 1
         * protection for the particular sector to be erased/written.
         */
-       if (sector < 16)
-       {
+       assert(sector >= 0);
+       if (sector < 16) {
                target_read_u32(target, 0xFFE88008, &fmbsea);
                target_write_u32(target, 0xFFE88008, fmbsea | (1 << sector));
                LOG_DEBUG("set fmbsea = 0x%04" PRIx32 "", fmbsea | (1 << sector));
-       }
-       else
-       {
+       } else {
                target_read_u32(target, 0xFFE8800C, &fmbseb);
                target_write_u32(target, 0xFFE8800C, fmbseb | (1 << (sector - 16)));
                LOG_DEBUG("set fmbseb = 0x%04" PRIx32 "", fmbseb | (1 << (sector - 16)));
@@ -764,39 +706,32 @@ static int tms470_erase_sector(struct flash_bank *bank, int sector)
        bank->sectors[sector].is_protected = 0;
 
        /*
-        * clear status regiser, sent erase command, kickoff erase
+        * clear status register, sent erase command, kickoff erase
         */
-       target_write_u16(target, flashAddr, 0x0040);
-       LOG_DEBUG("write *(uint16_t *)0x%08" PRIx32 "=0x0040", flashAddr);
-       target_write_u16(target, flashAddr, 0x0020);
-       LOG_DEBUG("write *(uint16_t *)0x%08" PRIx32 "=0x0020", flashAddr);
-       target_write_u16(target, flashAddr, 0xffff);
-       LOG_DEBUG("write *(uint16_t *)0x%08" PRIx32 "=0xffff", flashAddr);
+       target_write_u16(target, flash_addr, 0x0040);
+       LOG_DEBUG("write *(uint16_t *)0x%08" PRIx32 "=0x0040", flash_addr);
+       target_write_u16(target, flash_addr, 0x0020);
+       LOG_DEBUG("write *(uint16_t *)0x%08" PRIx32 "=0x0020", flash_addr);
+       target_write_u16(target, flash_addr, 0xffff);
+       LOG_DEBUG("write *(uint16_t *)0x%08" PRIx32 "=0xffff", flash_addr);
 
        /*
         * Monitor FMMSTAT, busy until clear, then check and other flags for
         * ultimate result of the operation.
         */
-       do
-       {
+       do {
                target_read_u32(target, 0xFFE8BC0C, &fmmstat);
                if (fmmstat & 0x0100)
-               {
                        alive_sleep(1);
-               }
-       }
-       while (fmmstat & 0x0100);
+       } while (fmmstat & 0x0100);
 
        result = tms470_flash_status(bank);
 
-       if (sector < 16)
-       {
+       if (sector < 16) {
                target_write_u32(target, 0xFFE88008, fmbsea);
                LOG_DEBUG("set fmbsea = 0x%04" PRIx32 "", fmbsea);
                bank->sectors[sector].is_protected = fmbsea & (1 << sector) ? 0 : 1;
-       }
-       else
-       {
+       } else {
                target_write_u32(target, 0xFFE8800C, fmbseb);
                LOG_DEBUG("set fmbseb = 0x%04" PRIx32 "", fmbseb);
                bank->sectors[sector].is_protected = fmbseb & (1 << (sector - 16)) ? 0 : 1;
@@ -806,33 +741,31 @@ static int tms470_erase_sector(struct flash_bank *bank, int sector)
        target_write_u32(target, 0xFFFFFFDC, glbctrl);
        LOG_DEBUG("set glbctrl = 0x%08" PRIx32 "", glbctrl);
 
-       if (result == ERROR_OK)
-       {
-               bank->sectors[sector].is_erased = 1;
-       }
-
        return result;
 }
 
-/* ----------------------------------------------------------------------
-              Implementation of Flash Driver Interfaces
  ---------------------------------------------------------------------- */
+/*----------------------------------------------------------------------
             Implementation of Flash Driver Interfaces
*---------------------------------------------------------------------- */
 
 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 +777,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
@@ -851,46 +785,39 @@ static const struct command_registration tms470_command_handlers[] = {
 
 /* ---------------------------------------------------------------------- */
 
-static int tms470_erase(struct flash_bank *bank, int first, int last)
+static int tms470_erase(struct flash_bank *bank, unsigned int first,
+               unsigned int last)
 {
        struct tms470_flash_bank *tms470_info = bank->driver_priv;
-       int sector, result = ERROR_OK;
+       int result = ERROR_OK;
 
-       if (bank->target->state != TARGET_HALTED)
-       {
+       if (bank->target->state != TARGET_HALTED) {
                LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
 
        tms470_read_part_info(bank);
 
-       if ((first < 0) || (first >= bank->num_sectors) || (last < 0) || (last >= bank->num_sectors) || (first > last))
-       {
-               LOG_ERROR("Sector range %d to %d invalid.", first, last);
+       if ((first >= bank->num_sectors) || (last >= bank->num_sectors) ||
+                       (first > last)) {
+               LOG_ERROR("Sector range %u to %u invalid.", first, last);
                return ERROR_FLASH_SECTOR_INVALID;
        }
 
        result = tms470_unlock_flash(bank);
        if (result != ERROR_OK)
-       {
                return result;
-       }
 
-       for (sector = first; sector <= last; sector++)
-       {
-               LOG_INFO("Erasing tms470 bank %d sector %d...", tms470_info->ordinal, sector);
+       for (unsigned int sector = first; sector <= last; sector++) {
+               LOG_INFO("Erasing tms470 bank %u sector %u...", tms470_info->ordinal, sector);
 
                result = tms470_erase_sector(bank, sector);
 
-               if (result != ERROR_OK)
-               {
+               if (result != ERROR_OK) {
                        LOG_ERROR("tms470 could not erase flash sector.");
                        break;
-               }
-               else
-               {
+               } else
                        LOG_INFO("sector erased successfully.");
-               }
        }
 
        return result;
@@ -898,24 +825,23 @@ static int tms470_erase(struct flash_bank *bank, int first, int last)
 
 /* ---------------------------------------------------------------------- */
 
-static int tms470_protect(struct flash_bank *bank, int set, int first, int last)
+static int tms470_protect(struct flash_bank *bank, int set, unsigned int first,
+               unsigned int last)
 {
        struct tms470_flash_bank *tms470_info = bank->driver_priv;
        struct target *target = bank->target;
        uint32_t fmmac2, fmbsea, fmbseb;
-       int sector;
 
-       if (target->state != TARGET_HALTED)
-       {
+       if (target->state != TARGET_HALTED) {
                LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
 
        tms470_read_part_info(bank);
 
-       if ((first < 0) || (first >= bank->num_sectors) || (last < 0) || (last >= bank->num_sectors) || (first > last))
-       {
-               LOG_ERROR("Sector range %d to %d invalid.", first, last);
+       if ((first >= bank->num_sectors) || (last >= bank->num_sectors) ||
+                       (first > last)) {
+               LOG_ERROR("Sector range %u to %u invalid.", first, last);
                return ERROR_FLASH_SECTOR_INVALID;
        }
 
@@ -923,20 +849,17 @@ static int tms470_protect(struct flash_bank *bank, int set, int first, int last)
        target_read_u32(target, 0xFFE8BC04, &fmmac2);
        target_write_u32(target, 0xFFE8BC04, (fmmac2 & ~7) | tms470_info->ordinal);
 
-       /* get the original sector proection flags for this bank */
+       /* get the original sector protection flags for this bank */
        target_read_u32(target, 0xFFE88008, &fmbsea);
        target_read_u32(target, 0xFFE8800C, &fmbseb);
 
-       for (sector = 0; sector < bank->num_sectors; sector++)
-       {
-               if (sector < 16)
-               {
+       for (unsigned int sector = 0; sector < bank->num_sectors; sector++) {
+               if (sector < 16) {
                        fmbsea = set ? fmbsea & ~(1 << sector) : fmbsea | (1 << sector);
                        bank->sectors[sector].is_protected = set ? 1 : 0;
-               }
-               else
-               {
-                       fmbseb = set ? fmbseb & ~(1 << (sector - 16)) : fmbseb | (1 << (sector - 16));
+               } else {
+                       fmbseb = set ? fmbseb &
+                               ~(1 << (sector - 16)) : fmbseb | (1 << (sector - 16));
                        bank->sectors[sector].is_protected = set ? 1 : 0;
                }
        }
@@ -950,22 +873,22 @@ static int tms470_protect(struct flash_bank *bank, int set, int first, int last)
 
 /* ---------------------------------------------------------------------- */
 
-static int tms470_write(struct flash_bank *bank, uint8_t * buffer, uint32_t offset, uint32_t count)
+static int tms470_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count)
 {
        struct target *target = bank->target;
        uint32_t glbctrl, fmbac2, orig_fmregopt, fmbsea, fmbseb, fmmaxpp, fmmstat;
        int result = ERROR_OK;
        uint32_t i;
 
-       if (target->state != TARGET_HALTED)
-       {
+       if (target->state != TARGET_HALTED) {
                LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
 
        tms470_read_part_info(bank);
 
-       LOG_INFO("Writing %" PRId32 " bytes starting at 0x%08" PRIx32 "", count, bank->base + offset);
+       LOG_INFO("Writing %" PRIu32 " bytes starting at " TARGET_ADDR_FMT,
+                       count, bank->base + offset);
 
        /* set GLBCTRL.4  */
        target_read_u32(target, 0xFFFFFFDC, &glbctrl);
@@ -992,13 +915,11 @@ static int tms470_write(struct flash_bank *bank, uint8_t * buffer, uint32_t offs
        /* read MAXPP */
        target_read_u32(target, 0xFFE8A07C, &fmmaxpp);
 
-       for (i = 0; i < count; i += 2)
-       {
+       for (i = 0; i < count; i += 2) {
                uint32_t addr = bank->base + offset + i;
                uint16_t word = (((uint16_t) buffer[i]) << 8) | (uint16_t) buffer[i + 1];
 
-               if (word != 0xffff)
-               {
+               if (word != 0xffff) {
                        LOG_INFO("writing 0x%04x at 0x%08" PRIx32 "", word, addr);
 
                        /* clear status register */
@@ -1012,28 +933,23 @@ static int tms470_write(struct flash_bank *bank, uint8_t * buffer, uint32_t offs
                         * Monitor FMMSTAT, busy until clear, then check and other flags
                         * for ultimate result of the operation.
                         */
-                       do
-                       {
+                       do {
                                target_read_u32(target, 0xFFE8BC0C, &fmmstat);
                                if (fmmstat & 0x0100)
-                               {
                                        alive_sleep(1);
-                               }
-                       }
-                       while (fmmstat & 0x0100);
+                       } while (fmmstat & 0x0100);
 
-                       if (fmmstat & 0x3ff)
-                       {
+                       if (fmmstat & 0x3ff) {
                                LOG_ERROR("fmstat = 0x%04" PRIx32 "", fmmstat);
-                               LOG_ERROR("Could not program word 0x%04x at address 0x%08" PRIx32 ".", word, addr);
+                               LOG_ERROR(
+                                       "Could not program word 0x%04x at address 0x%08" PRIx32 ".",
+                                       word,
+                                       addr);
                                result = ERROR_FLASH_OPERATION_FAILED;
                                break;
                        }
-               }
-               else
-               {
+               } else
                        LOG_INFO("skipping 0xffff at 0x%08" PRIx32 "", addr);
-               }
        }
 
        /* restore */
@@ -1050,8 +966,7 @@ static int tms470_write(struct flash_bank *bank, uint8_t * buffer, uint32_t offs
 
 static int tms470_probe(struct flash_bank *bank)
 {
-       if (bank->target->state != TARGET_HALTED)
-       {
+       if (bank->target->state != TARGET_HALTED) {
                LOG_WARNING("Cannot communicate... target not halted.");
                return ERROR_TARGET_NOT_HALTED;
        }
@@ -1074,20 +989,17 @@ static int tms470_erase_check(struct flash_bank *bank)
 {
        struct target *target = bank->target;
        struct tms470_flash_bank *tms470_info = bank->driver_priv;
-       int sector, result = ERROR_OK;
+       int result = ERROR_OK;
        uint32_t fmmac2, fmbac2, glbctrl, orig_fmregopt;
        static uint8_t buffer[64 * 1024];
 
-       if (target->state != TARGET_HALTED)
-       {
+       if (target->state != TARGET_HALTED) {
                LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
 
        if (!tms470_info->device_ident_reg)
-       {
                tms470_read_part_info(bank);
-       }
 
        /* set GLBCTRL.4  */
        target_read_u32(target, 0xFFFFFFDC, &glbctrl);
@@ -1116,38 +1028,25 @@ static int tms470_erase_check(struct flash_bank *bank)
         * word at a time.  Here we read an entire sector and inspect it in
         * an attempt to reduce the JTAG overhead.
         */
-       for (sector = 0; sector < bank->num_sectors; sector++)
-       {
-               if (bank->sectors[sector].is_erased != 1)
-               {
-                       uint32_t i, addr = bank->base + bank->sectors[sector].offset;
+       for (unsigned int sector = 0; sector < bank->num_sectors; sector++) {
+               uint32_t i, addr = bank->base + bank->sectors[sector].offset;
 
-                       LOG_INFO("checking flash bank %d sector %d", tms470_info->ordinal, sector);
+               LOG_INFO("checking flash bank %u sector %u", tms470_info->ordinal, sector);
 
-                       target_read_buffer(target, addr, bank->sectors[sector].size, buffer);
+               target_read_buffer(target, addr, bank->sectors[sector].size, buffer);
 
-                       bank->sectors[sector].is_erased = 1;
-                       for (i = 0; i < bank->sectors[sector].size; i++)
-                       {
-                               if (buffer[i] != 0xff)
-                               {
-                                       LOG_WARNING("tms470 bank %d, sector %d, not erased.", tms470_info->ordinal, sector);
-                                       LOG_WARNING("at location 0x%08" PRIx32 ": flash data is 0x%02x.", addr + i, buffer[i]);
-
-                                       bank->sectors[sector].is_erased = 0;
-                                       break;
-                               }
+               bank->sectors[sector].is_erased = 1;
+               for (i = 0; i < bank->sectors[sector].size; i++) {
+                       if (buffer[i] != 0xff) {
+                               bank->sectors[sector].is_erased = 0;
+                               break;
                        }
                }
-               if (bank->sectors[sector].is_erased != 1)
-               {
+               if (bank->sectors[sector].is_erased != 1) {
                        result = ERROR_FLASH_SECTOR_NOT_ERASED;
                        break;
-               }
-               else
-               {
+               } else
                        LOG_INFO("sector erased");
-               }
        }
 
        /* reset TEZ, wait states, read mode, GLBCTRL.4 */
@@ -1165,19 +1064,16 @@ static int tms470_protect_check(struct flash_bank *bank)
 {
        struct target *target = bank->target;
        struct tms470_flash_bank *tms470_info = bank->driver_priv;
-       int sector, result = ERROR_OK;
+       int result = ERROR_OK;
        uint32_t fmmac2, fmbsea, fmbseb;
 
-       if (target->state != TARGET_HALTED)
-       {
+       if (target->state != TARGET_HALTED) {
                LOG_ERROR("Target not halted");
                return ERROR_TARGET_NOT_HALTED;
        }
 
        if (!tms470_info->device_ident_reg)
-       {
                tms470_read_part_info(bank);
-       }
 
        /* enable the appropriate bank */
        target_read_u32(target, 0xFFE8BC04, &fmmac2);
@@ -1186,22 +1082,21 @@ static int tms470_protect_check(struct flash_bank *bank)
        target_read_u32(target, 0xFFE88008, &fmbsea);
        target_read_u32(target, 0xFFE8800C, &fmbseb);
 
-       for (sector = 0; sector < bank->num_sectors; sector++)
-       {
+       for (unsigned int sector = 0; sector < bank->num_sectors; sector++) {
                int protected;
 
-               if (sector < 16)
-               {
+               if (sector < 16) {
                        protected = fmbsea & (1 << sector) ? 0 : 1;
                        bank->sectors[sector].is_protected = protected;
-               }
-               else
-               {
+               } else {
                        protected = fmbseb & (1 << (sector - 16)) ? 0 : 1;
                        bank->sectors[sector].is_protected = protected;
                }
 
-               LOG_DEBUG("bank %d sector %d is %s", tms470_info->ordinal, sector, protected ? "protected" : "not protected");
+               LOG_DEBUG("bank %u sector %u is %s",
+                       tms470_info->ordinal,
+                       sector,
+                       protected ? "protected" : "not protected");
        }
 
        return result;
@@ -1209,29 +1104,21 @@ 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, struct command_invocation *cmd)
 {
-       int used = 0;
        struct tms470_flash_bank *tms470_info = bank->driver_priv;
 
        if (!tms470_info->device_ident_reg)
-       {
                tms470_read_part_info(bank);
-       }
 
-       if (!tms470_info->device_ident_reg)
-       {
-               (void)snprintf(buf, buf_size, "Cannot identify target as a TMS470\n");
+       if (!tms470_info->device_ident_reg) {
+               command_print_sameline(cmd, "Cannot identify target as a TMS470\n");
                return ERROR_FLASH_OPERATION_FAILED;
        }
 
-       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;
+       command_print_sameline(cmd, "\ntms470 information: Chip is %s\n", tms470_info->part_name);
+       command_print_sameline(cmd, "Flash protection level 2 is %s\n",
+               tms470_check_flash_unlocked(bank->target) == ERROR_OK ? "disabled" : "enabled");
 
        return ERROR_OK;
 }
@@ -1248,16 +1135,14 @@ FLASH_BANK_COMMAND_HANDLER(tms470_flash_bank_command)
        bank->driver_priv = malloc(sizeof(struct tms470_flash_bank));
 
        if (!bank->driver_priv)
-       {
                return ERROR_FLASH_OPERATION_FAILED;
-       }
 
        (void)memset(bank->driver_priv, 0, sizeof(struct tms470_flash_bank));
 
        return ERROR_OK;
 }
 
-struct flash_driver tms470_flash = {
+const struct flash_driver tms470_flash = {
        .name = "tms470",
        .commands = tms470_command_handlers,
        .flash_bank_command = tms470_flash_bank_command,
@@ -1269,5 +1154,6 @@ struct flash_driver tms470_flash = {
        .auto_probe = tms470_auto_probe,
        .erase_check = tms470_erase_check,
        .protect_check = tms470_protect_check,
-       .info = tms470_info,
+       .info = get_tms470_info,
+       .free_driver_priv = default_flash_free_driver_priv,
 };