static int max32xxx_mass_erase(struct flash_bank *bank);
struct max32xxx_flash_bank {
- int probed;
+ bool probed;
int max326xx;
unsigned int flash_size;
unsigned int flc_base;
unsigned int burst_size_bits;
};
-/* see contib/loaders/flash/max32xxx/max32xxx.s for src */
+/* see contrib/loaders/flash/max32xxx/max32xxx.s for src */
static const uint8_t write_code[] = {
#include "../../contrib/loaders/flash/max32xxx/max32xxx.inc"
};
int printed;
struct max32xxx_flash_bank *info = bank->driver_priv;
- if (info->probed == 0)
+ if (!info->probed)
return ERROR_FLASH_BANK_NOT_PROBED;
printed = snprintf(buf, buf_size, "\nMaxim Integrated max32xxx flash driver\n");
{
struct max32xxx_flash_bank *info = bank->driver_priv;
struct target *target = bank->target;
- int i;
uint32_t temp_reg;
- if (info->probed == 0)
+ if (!info->probed)
return ERROR_FLASH_BANK_NOT_PROBED;
if (!info->max326xx) {
- for (i = 0; i < bank->num_sectors; i++)
+ for (unsigned i = 0; i < bank->num_sectors; i++)
bank->sectors[i].is_protected = -1;
return ERROR_FLASH_OPER_UNSUPPORTED;
}
/* Check the protection */
- for (i = 0; i < bank->num_sectors; i++) {
+ for (unsigned i = 0; i < bank->num_sectors; i++) {
if (i%32 == 0)
target_read_u32(target, info->flc_base + FLSH_PROT + ((i/32)*4), &temp_reg);
return ERROR_OK;
}
-static int max32xxx_erase(struct flash_bank *bank, int first, int last)
+static int max32xxx_erase(struct flash_bank *bank, unsigned int first,
+ unsigned int last)
{
- int banknr;
uint32_t flsh_cn, flsh_int;
struct max32xxx_flash_bank *info = bank->driver_priv;
struct target *target = bank->target;
return ERROR_TARGET_NOT_HALTED;
}
- if (info->probed == 0)
+ if (!info->probed)
return ERROR_FLASH_BANK_NOT_PROBED;
- if ((first < 0) || (last < first) || (last >= bank->num_sectors))
+ if ((last < first) || (last >= bank->num_sectors))
return ERROR_FLASH_SECTOR_INVALID;
if ((first == 0) && (last == (bank->num_sectors - 1)))
return retval;
int erased = 0;
- for (banknr = first; banknr <= last; banknr++) {
+ for (unsigned int banknr = first; banknr <= last; banknr++) {
/* Check the protection */
if (bank->sectors[banknr].is_protected == 1) {
- LOG_WARNING("Flash sector %d is protected", banknr);
+ LOG_WARNING("Flash sector %u is protected", banknr);
continue;
} else
erased = 1;
}
if (!erased) {
- LOG_ERROR("All pages protected %d to %d", first, last);
+ LOG_ERROR("All pages protected %u to %u", first, last);
max32xxx_flash_op_post(bank);
return ERROR_FAIL;
}
return ERROR_OK;
}
-static int max32xxx_protect(struct flash_bank *bank, int set, int first, int last)
+static int max32xxx_protect(struct flash_bank *bank, int set,
+ unsigned int first, unsigned int last)
{
struct max32xxx_flash_bank *info = bank->driver_priv;
struct target *target = bank->target;
- int page;
uint32_t temp_reg;
if (bank->target->state != TARGET_HALTED) {
return ERROR_TARGET_NOT_HALTED;
}
- if (info->probed == 0)
+ if (!info->probed)
return ERROR_FLASH_BANK_NOT_PROBED;
if (!info->max326xx)
return ERROR_FLASH_OPER_UNSUPPORTED;
- if ((first < 0) || (last < first) || (last >= bank->num_sectors))
+ if ((last < first) || (last >= bank->num_sectors))
return ERROR_FLASH_SECTOR_INVALID;
/* Setup the protection on the pages given */
- for (page = first; page <= last; page++) {
+ for (unsigned int page = first; page <= last; page++) {
if (set) {
/* Set the write/erase bit for this page */
target_read_u32(target, info->flc_base + FLSH_PROT + (page/32), &temp_reg);
LOG_DEBUG("bank=%p buffer=%p offset=%08" PRIx32 " count=%08" PRIx32 "",
bank, buffer, offset, count);
- if (info->probed == 0)
+ if (!info->probed)
return ERROR_FLASH_BANK_NOT_PROBED;
if (offset & 0x3) {
uint32_t arm_id[2];
uint16_t arm_pid;
- if (bank->sectors) {
- free(bank->sectors);
- bank->sectors = NULL;
- }
+ free(bank->sectors);
/* provide this for the benefit of the NOR flash framework */
bank->size = info->flash_size;
bank->num_sectors = info->flash_size / info->sector_size;
bank->sectors = calloc(bank->num_sectors, sizeof(struct flash_sector));
- for (int i = 0; i < bank->num_sectors; i++) {
+ for (unsigned int i = 0; i < bank->num_sectors; i++) {
bank->sectors[i].offset = i * info->sector_size;
bank->sectors[i].size = info->sector_size;
bank->sectors[i].is_erased = -1;
if (max32xxx_protect_check(bank) == ERROR_FLASH_OPER_UNSUPPORTED)
LOG_WARNING("Flash protection not supported on this device");
- info->probed = 1;
+ info->probed = true;
return ERROR_OK;
}
return ERROR_TARGET_NOT_HALTED;
}
- if (info->probed == 0)
+ if (!info->probed)
return ERROR_FLASH_BANK_NOT_PROBED;
int not_protected = 0;
- for (int i = 0; i < bank->num_sectors; i++) {
+ for (unsigned int i = 0; i < bank->num_sectors; i++) {
if (bank->sectors[i].is_protected == 1)
- LOG_WARNING("Flash sector %d is protected", i);
+ LOG_WARNING("Flash sector %u is protected", i);
else
not_protected = 1;
}
COMMAND_HANDLER(max32xxx_handle_mass_erase_command)
{
- int i;
struct flash_bank *bank;
int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (max32xxx_mass_erase(bank) == ERROR_OK) {
/* set all sectors as erased */
- for (i = 0; i < bank->num_sectors; i++)
+ for (unsigned i = 0; i < bank->num_sectors; i++)
bank->sectors[i].is_erased = 1;
command_print(CMD, "max32xxx mass erase complete");
struct flash_bank *bank;
int retval;
struct max32xxx_flash_bank *info;
- int i;
if (CMD_ARGC < 1) {
command_print(CMD, "max32xxx protection_check <bank>");
}
LOG_WARNING("s:<sector number> a:<address> p:<protection bit>");
- for (i = 0; i < bank->num_sectors; i += 4) {
+ for (unsigned i = 0; i < bank->num_sectors; i += 4) {
LOG_WARNING("s:%03d a:0x%06x p:%d | s:%03d a:0x%06x p:%d | s:%03d a:0x%06x p:%d | s:%03d a:0x%06x p:%d",
(i+0), (i+0)*info->sector_size, bank->sectors[(i+0)].is_protected,
(i+1), (i+1)*info->sector_size, bank->sectors[(i+1)].is_protected,