flash/nor/nrf5: unify size of HWID
[openocd.git] / src / flash / nor / atsamv.c
index 9c07bdf152f415cbbbafb452e7fb292e28156bf7..af48398e09e7535cfa0e7fb441349c355c5bf555 100644 (file)
@@ -25,7 +25,7 @@
  *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 
-/* Some of the the lower level code was based on code supplied by
+/* Some of the lower level code was based on code supplied by
  * ATMEL under this copyright. */
 
 /* BEGIN ATMEL COPYRIGHT */
 #define SAMV_PAGE_SIZE                 512
 #define SAMV_FLASH_BASE         0x00400000
 
-extern struct flash_driver atsamv_flash;
+extern const struct flash_driver atsamv_flash;
 
 struct samv_flash_bank {
-       int      probed;
+       bool      probed;
        unsigned size_bytes;
        unsigned gpnvm[SAMV_NUM_GPNVM_BITS];
 };
@@ -328,7 +328,7 @@ static int samv_protect_check(struct flash_bank *bank)
        if (r != ERROR_OK)
                return r;
 
-       for (int x = 0; x < bank->num_sectors; x++)
+       for (unsigned int x = 0; x < bank->num_sectors; x++)
                bank->sectors[x].is_protected = (!!(v[x >> 5] & (1 << (x % 32))));
        return ERROR_OK;
 }
@@ -375,17 +375,16 @@ static int samv_probe(struct flash_bank *bank)
                default:
                        LOG_ERROR("unrecognized flash size code: %d", nvm_size_code);
                        return ERROR_FAIL;
-                       break;
        }
 
        struct samv_flash_bank *samv_info = bank->driver_priv;
        samv_info->size_bytes = bank->size;
-       samv_info->probed = 1;
+       samv_info->probed = true;
 
        bank->base = SAMV_FLASH_BASE;
        bank->num_sectors = bank->size / SAMV_SECTOR_SIZE;
        bank->sectors = calloc(bank->num_sectors, sizeof(struct flash_sector));
-       for (int s = 0; s < (int)bank->num_sectors; s++) {
+       for (unsigned int s = 0; s < bank->num_sectors; s++) {
                bank->sectors[s].size = SAMV_SECTOR_SIZE;
                bank->sectors[s].offset = s * SAMV_SECTOR_SIZE;
                bank->sectors[s].is_erased = -1;
@@ -407,7 +406,8 @@ static int samv_auto_probe(struct flash_bank *bank)
        return samv_probe(bank);
 }
 
-static int samv_erase(struct flash_bank *bank, int first, int last)
+static int samv_erase(struct flash_bank *bank, unsigned int first,
+               unsigned int last)
 {
        const int page_count = 32; /* 32 pages equals 16 KB lock region */
 
@@ -421,31 +421,31 @@ static int samv_erase(struct flash_bank *bank, int first, int last)
                return r;
 
        /* easy case: we've been requested to erase the entire flash */
-       if ((first == 0) && ((last + 1) == (int)(bank->num_sectors)))
+       if ((first == 0) && ((last + 1) == bank->num_sectors))
                return samv_efc_perform_command(bank->target, SAMV_EFC_FCMD_EA, 0, NULL);
 
-       LOG_INFO("erasing lock regions %d-%d...", first, last);
+       LOG_INFO("erasing lock regions %u-%u...", first, last);
 
-       for (int i = first; i <= last; i++) {
+       for (unsigned int i = first; i <= last; i++) {
                uint32_t status;
                r = samv_erase_pages(bank->target, (i * page_count), page_count, &status);
-               LOG_INFO("erasing lock region %d", i);
+               LOG_INFO("erasing lock region %u", i);
                if (r != ERROR_OK)
-                       LOG_ERROR("error performing erase page @ lock region number %d",
-                                       (unsigned int)(i));
+                       LOG_ERROR("error performing erase page @ lock region number %u", i);
                if (status & (1 << 2)) {
-                       LOG_ERROR("lock region %d is locked", (unsigned int)(i));
+                       LOG_ERROR("lock region %u is locked", i);
                        return ERROR_FAIL;
                }
                if (status & (1 << 1)) {
-                       LOG_ERROR("flash command error @lock region %d", (unsigned int)(i));
+                       LOG_ERROR("flash command error @lock region %u", i);
                        return ERROR_FAIL;
                }
        }
        return ERROR_OK;
 }
 
-static int samv_protect(struct flash_bank *bank, int set, int first, int last)
+static int samv_protect(struct flash_bank *bank, int set, unsigned int first,
+               unsigned int last)
 {
        if (bank->target->state != TARGET_HALTED) {
                LOG_ERROR("Target not halted");
@@ -454,9 +454,9 @@ static int samv_protect(struct flash_bank *bank, int set, int first, int last)
 
        int r;
        if (set)
-               r = samv_flash_lock(bank->target, (unsigned)(first), (unsigned)(last));
+               r = samv_flash_lock(bank->target, first, last);
        else
-               r = samv_flash_unlock(bank->target, (unsigned)(first), (unsigned)(last));
+               r = samv_flash_unlock(bank->target, first, last);
 
        return r;
 }
@@ -615,7 +615,7 @@ static int samv_get_info(struct flash_bank *bank, char *buf, int buf_size)
                if (ERROR_OK != r)
                        return r;
        }
-       snprintf(buf, buf_size, "Cortex-M7 detected with %d kB flash",
+       snprintf(buf, buf_size, "Cortex-M7 detected with %" PRIu32 " kB flash",
                        bank->size / 1024);
        return ERROR_OK;
 }
@@ -645,7 +645,6 @@ COMMAND_HANDLER(samv_handle_gpnvm_command)
        switch (CMD_ARGC) {
                case 0:
                        goto showall;
-                       break;
                case 1:
                        who = -1;
                        break;
@@ -660,10 +659,9 @@ COMMAND_HANDLER(samv_handle_gpnvm_command)
                        break;
                default:
                        return ERROR_COMMAND_SYNTAX_ERROR;
-                       break;
        }
 
-       uint32_t v;
+       unsigned v;
        if (!strcmp("show", CMD_ARGV[0])) {
                if (who == -1) {
 showall:
@@ -672,22 +670,22 @@ showall:
                                r = samv_get_gpnvm(target, x, &v);
                                if (r != ERROR_OK)
                                        break;
-                               command_print(CMD_CTX, "samv-gpnvm%u: %u", x, v);
+                               command_print(CMD, "samv-gpnvm%u: %u", x, v);
                        }
                        return r;
                }
                if ((who >= 0) && (((unsigned)who) < SAMV_NUM_GPNVM_BITS)) {
                        r = samv_get_gpnvm(target, who, &v);
-                       command_print(CMD_CTX, "samv-gpnvm%u: %u", who, v);
+                       command_print(CMD, "samv-gpnvm%u: %u", who, v);
                        return r;
                } else {
-                       command_print(CMD_CTX, "invalid gpnvm: %u", who);
+                       command_print(CMD, "invalid gpnvm: %u", who);
                        return ERROR_COMMAND_SYNTAX_ERROR;
                }
        }
 
        if (who == -1) {
-               command_print(CMD_CTX, "missing gpnvm number");
+               command_print(CMD, "missing gpnvm number");
                return ERROR_COMMAND_SYNTAX_ERROR;
        }
 
@@ -696,7 +694,7 @@ showall:
        else if (!strcmp("clr", CMD_ARGV[0]) || !strcmp("clear", CMD_ARGV[0]))
                r = samv_clear_gpnvm(target, who);
        else {
-               command_print(CMD_CTX, "unknown command: %s", CMD_ARGV[0]);
+               command_print(CMD, "unknown command: %s", CMD_ARGV[0]);
                r = ERROR_COMMAND_SYNTAX_ERROR;
        }
        return r;
@@ -726,7 +724,7 @@ static const struct command_registration atsamv_command_handlers[] = {
        COMMAND_REGISTRATION_DONE
 };
 
-struct flash_driver atsamv_flash = {
+const struct flash_driver atsamv_flash = {
        .name = "atsamv",
        .commands = atsamv_command_handlers,
        .flash_bank_command = samv_flash_bank_command,

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)