X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fflash%2Fnor%2Fatsamv.c;h=af48398e09e7535cfa0e7fb441349c355c5bf555;hb=c1f4d9e6e8f9cdab122db36299e039a73151ffe4;hp=9c07bdf152f415cbbbafb452e7fb292e28156bf7;hpb=7690a74b094347ec393c280414a182b7361d7b17;p=openocd.git diff --git a/src/flash/nor/atsamv.c b/src/flash/nor/atsamv.c index 9c07bdf152..af48398e09 100644 --- a/src/flash/nor/atsamv.c +++ b/src/flash/nor/atsamv.c @@ -25,7 +25,7 @@ * along with this program. If not, see . * ***************************************************************************/ -/* 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 */ @@ -94,10 +94,10 @@ #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,