nor/flash: Add keep_alive() during flash write handler
[fw/openocd] / src / flash / nor / at91sam4l.c
index 794ccbb01612b8b5dbd1975764a2fe610f5133f2..d4bfe5310368fec6f15ff62711ad1680042999ec 100644 (file)
@@ -203,7 +203,8 @@ static int sam4l_flash_command(struct target *target, uint8_t cmd, int page)
 FLASH_BANK_COMMAND_HANDLER(sam4l_flash_bank_command)
 {
        if (bank->base != SAM4L_FLASH) {
-               LOG_ERROR("Address 0x%08" PRIx32 " invalid bank address (try 0x%08" PRIx32
+               LOG_ERROR("Address " TARGET_ADDR_FMT
+                               " invalid bank address (try 0x%08" PRIx32
                                "[at91sam4l series] )",
                                bank->base, SAM4L_FLASH);
                return ERROR_FAIL;
@@ -600,6 +601,7 @@ static int sam4l_write(struct flash_bank *bank, const uint8_t *buffer,
 
        /* There's at least one aligned page to write out. */
        if (count >= chip->page_size) {
+               assert(chip->page_size > 0);
                int np = count / chip->page_size + ((count % chip->page_size) ? 1 : 0);
 
                for (int i = 0; i < np; i++) {
@@ -667,7 +669,8 @@ static const struct command_registration at91sam4l_exec_command_handlers[] = {
                .name = "smap_reset_deassert",
                .handler = sam4l_handle_reset_deassert,
                .mode = COMMAND_EXEC,
-               .help = "deasert internal reset held by SMAP"
+               .help = "deassert internal reset held by SMAP",
+               .usage = "",
        },
        COMMAND_REGISTRATION_DONE
 };
@@ -683,7 +686,7 @@ static const struct command_registration at91sam4l_command_handlers[] = {
        COMMAND_REGISTRATION_DONE
 };
 
-struct flash_driver at91sam4l_flash = {
+const struct flash_driver at91sam4l_flash = {
        .name = "at91sam4l",
        .commands = at91sam4l_command_handlers,
        .flash_bank_command = sam4l_flash_bank_command,