summaryrefslogtreecommitdiff
path: root/common/cmd_sf.c
diff options
context:
space:
mode:
authorGerlando Falauto <gerlando.falauto@keymile.com>2013-07-03 20:33:57 +0200
committerJagannadha Sutradharudu Teki <jaganna@xilinx.com>2013-08-07 01:05:07 +0530
commit3488850629d2d27febe1839ea0b0f92e915c35fa (patch)
treefe48ee52871c7a2c803cde39110ae10afd83fd3e /common/cmd_sf.c
parent5928b9a86514753b7b12ac528b3404114774aa9a (diff)
cmd_sf: let "sf update" erase last sector as a whole
make "sf update" work with unaligned `len' parameter, by deleting the whole last sector before writing, so to allow for: sf update ${load_addr_r} 0 ${filesize} Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com> Cc: Valentin Longchamp <valentin.longchamp@keymile.com> Cc: Holger Brunck <holger.brunck@keymile.com> Acked-by: Simon Glass <sjg@chromium.org> Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
Diffstat (limited to 'common/cmd_sf.c')
-rw-r--r--common/cmd_sf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/common/cmd_sf.c b/common/cmd_sf.c
index 34844ac4a0b..4af0f0af26b 100644
--- a/common/cmd_sf.c
+++ b/common/cmd_sf.c
@@ -160,7 +160,8 @@ static const char *spi_flash_update_block(struct spi_flash *flash, u32 offset,
*skipped += len;
return NULL;
}
- if (spi_flash_erase(flash, offset, len))
+ /* Erase the entire sector */
+ if (spi_flash_erase(flash, offset, flash->sector_size))
return "erase";
if (spi_flash_write(flash, offset, len, buf))
return "write";