Browse Source

flash: fix bug with multiple back-to-back flash chips

flash programming via flash write_image or gdb load would
produce a bogus error message that the flash chip was to
small.

The solution is to limit the current flash programming
run to the current chip.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
tags/v0.5.0-rc1
Øyvind Harboe 13 years ago
parent
commit
2b546fdc45
1 changed files with 7 additions and 3 deletions
  1. +7
    -3
      src/flash/nor/core.c

+ 7
- 3
src/flash/nor/core.c View File

@@ -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


Loading…
Cancel
Save