+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
/***************************************************************************
* Copyright (C) 2018 by Simon Qian *
* SimonQian@SimonQian.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, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
};
struct w600_flash_bank {
- int probed;
+ bool probed;
uint32_t id;
const struct w600_flash_param *param;
w600_info = malloc(sizeof(struct w600_flash_bank));
bank->driver_priv = w600_info;
- w600_info->probed = 0;
+ w600_info->probed = false;
w600_info->register_base = QFLASH_REGBASE;
w600_info->user_bank_size = bank->size;
return retval;
}
-static int w600_erase(struct flash_bank *bank, int first, int last)
+static int w600_erase(struct flash_bank *bank, unsigned int first,
+ unsigned int last)
{
int retval = ERROR_OK;
return ERROR_FAIL;
}
- for (int i = first; i <= last; i++) {
+ for (unsigned int i = first; i <= last; i++) {
retval = w600_start(bank, QFLASH_CMD_SE,
QFLASH_ADDR(bank->sectors[i].offset), 0);
if (retval != ERROR_OK)
}
if ((offset % W600_FLASH_PAGESIZE) != 0) {
- LOG_WARNING("offset 0x%" PRIx32 " breaks required %" PRIu32 "-byte alignment",
+ LOG_WARNING("offset 0x%" PRIx32 " breaks required %d-byte alignment",
offset, W600_FLASH_PAGESIZE);
return ERROR_FLASH_DST_BREAKS_ALIGNMENT;
}
if ((count % W600_FLASH_PAGESIZE) != 0) {
- LOG_WARNING("count 0x%" PRIx32 " breaks required %" PRIu32 "-byte alignment",
+ LOG_WARNING("count 0x%" PRIx32 " breaks required %d-byte alignment",
offset, W600_FLASH_PAGESIZE);
return ERROR_FLASH_DST_BREAKS_ALIGNMENT;
}
uint32_t flash_id;
size_t i;
- w600_info->probed = 0;
+ w600_info->probed = false;
/* read stm32 device id register */
int retval = w600_get_flash_id(bank, &flash_id);
flash_size = 1 << flash_size;
}
- LOG_INFO("flash size = %dkbytes", flash_size / 1024);
+ LOG_INFO("flash size = %" PRIu32 "kbytes", flash_size / 1024);
/* calculate numbers of pages */
size_t num_pages = flash_size / W600_FLASH_SECSIZE;
/* check that calculation result makes sense */
assert(num_pages > 0);
- if (bank->sectors) {
- free(bank->sectors);
- bank->sectors = NULL;
- }
+ free(bank->sectors);
+ bank->sectors = NULL;
bank->base = W600_FLASH_BASE;
bank->size = num_pages * W600_FLASH_SECSIZE;
bank->sectors[i].offset = i * W600_FLASH_SECSIZE;
bank->sectors[i].size = W600_FLASH_SECSIZE;
bank->sectors[i].is_erased = -1;
- /* offset 0 to W600_FLASH_PROTECT_SIZE shoule be protected */
+ /* offset 0 to W600_FLASH_PROTECT_SIZE should be protected */
bank->sectors[i].is_protected = (i < W600_FLASH_PROTECT_SIZE / W600_FLASH_SECSIZE);
}
- w600_info->probed = 1;
+ w600_info->probed = true;
return ERROR_OK;
}
return w600_probe(bank);
}
-static int get_w600_info(struct flash_bank *bank, char *buf, int buf_size)
+static int get_w600_info(struct flash_bank *bank, struct command_invocation *cmd)
{
uint32_t flash_id;
if (retval != ERROR_OK)
return retval;
- snprintf(buf, buf_size, "w600 : 0x%08" PRIx32 "", flash_id);
+ command_print_sameline(cmd, "w600 : 0x%08" PRIx32 "", flash_id);
return ERROR_OK;
}
-struct flash_driver w600_flash = {
+const struct flash_driver w600_flash = {
.name = "w600",
.flash_bank_command = w600_flash_bank_command,
.erase = w600_erase,