summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/flash/nor/core.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/flash/nor/core.c b/src/flash/nor/core.c
index 2c1d9dee..da73bf64 100644
--- a/src/flash/nor/core.c
+++ b/src/flash/nor/core.c
@@ -654,9 +654,13 @@ int flash_write_unlock(struct target *target, struct image *image,
if (run_address + run_size - 1 > c->base + c->size - 1)
{
- LOG_ERROR("The image is too big for the flash");
- retval = ERROR_FAIL;
- goto done;
+ /* If we have more than one flash chip back to back, then we limit
+ * the current write operation to the current chip.
+ */
+ LOG_DEBUG("Truncate flash run size to the current flash chip.");
+
+ run_size = c->base + c->size - run_address;
+ assert(run_size > 0);
}
/* If we're applying any sector automagic, then pad this