[U-Boot] [PATCH v6 14/76] sf: Use erasesize instead of sector_size
Jagan Teki
jteki at openedev.com
Sun Feb 14 21:48:13 CET 2016
For computing proper sector_size the below patch
assigned erase_size which is a proper sector
computation size, so this patch directly used
erasesize instead of assignment.
"sf: Fix to compute proper sector_size"
(sha1: c650ca7b4c160193791dc7a52381c71c6a29e871)
Cc: Simon Glass <sjg at chromium.org>
Cc: Bin Meng <bmeng.cn at gmail.com>
Cc: Mugunthan V N <mugunthanvnm at ti.com>
Cc: Michal Simek <michal.simek at xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur at xilinx.com>
Signed-off-by: Jagan Teki <jteki at openedev.com>
---
cmd/sf.c | 20 ++++++++++----------
drivers/dfu/dfu_sf.c | 8 ++++----
drivers/mtd/spi/sf_mtd.c | 2 +-
drivers/mtd/spi/spi_flash.c | 3 ---
4 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/cmd/sf.c b/cmd/sf.c
index e4d1274..c20c901 100644
--- a/cmd/sf.c
+++ b/cmd/sf.c
@@ -53,8 +53,8 @@ static int sf_parse_len_arg(char *arg, ulong *len)
if (ep == arg || *ep != '\0')
return -1;
- if (round_up_len && flash->sector_size > 0)
- *len = ROUND(len_arg, flash->sector_size);
+ if (round_up_len && flash->erasesize > 0)
+ *len = ROUND(len_arg, flash->erasesize);
else
*len = len_arg;
@@ -171,10 +171,10 @@ static const char *spi_flash_update_block(struct spi_flash *flash, u32 offset,
{
char *ptr = (char *)buf;
- debug("offset=%#x, sector_size=%#x, len=%#zx\n",
- offset, flash->sector_size, len);
+ debug("offset=%#x, erasesize=%#x, len=%#zx\n",
+ offset, flash->erasesize, len);
/* Read the entire sector so to allow for rewriting */
- if (spi_flash_read(flash, offset, flash->sector_size, cmp_buf))
+ if (spi_flash_read(flash, offset, flash->erasesize, cmp_buf))
return "read";
/* Compare only what is meaningful (len) */
if (memcmp(cmp_buf, buf, len) == 0) {
@@ -184,15 +184,15 @@ static const char *spi_flash_update_block(struct spi_flash *flash, u32 offset,
return NULL;
}
/* Erase the entire sector */
- if (spi_flash_erase(flash, offset, flash->sector_size))
+ if (spi_flash_erase(flash, offset, flash->erasesize))
return "erase";
/* If it's a partial sector, copy the data into the temp-buffer */
- if (len != flash->sector_size) {
+ if (len != flash->erasesize) {
memcpy(cmp_buf, buf, len);
ptr = cmp_buf;
}
/* Write one complete sector */
- if (spi_flash_write(flash, offset, flash->sector_size, ptr))
+ if (spi_flash_write(flash, offset, flash->erasesize, ptr))
return "write";
return NULL;
@@ -223,12 +223,12 @@ static int spi_flash_update(struct spi_flash *flash, u32 offset,
if (end - buf >= 200)
scale = (end - buf) / 100;
- cmp_buf = memalign(ARCH_DMA_MINALIGN, flash->sector_size);
+ cmp_buf = memalign(ARCH_DMA_MINALIGN, flash->erasesize);
if (cmp_buf) {
ulong last_update = get_timer(0);
for (; buf < end && !err_oper; buf += todo, offset += todo) {
- todo = min_t(size_t, end - buf, flash->sector_size);
+ todo = min_t(size_t, end - buf, flash->erasesize);
if (get_timer(last_update) > 100) {
printf(" \rUpdating, %zu%% %lu B/s",
100 - (end - buf) / scale,
diff --git a/drivers/dfu/dfu_sf.c b/drivers/dfu/dfu_sf.c
index 9702eee..13e7f92 100644
--- a/drivers/dfu/dfu_sf.c
+++ b/drivers/dfu/dfu_sf.c
@@ -25,8 +25,8 @@ static int dfu_read_medium_sf(struct dfu_entity *dfu, u64 offset, void *buf,
static u64 find_sector(struct dfu_entity *dfu, u64 start, u64 offset)
{
- return (lldiv((start + offset), dfu->data.sf.dev->sector_size)) *
- dfu->data.sf.dev->sector_size;
+ return (lldiv((start + offset), dfu->data.sf.dev->erasesize)) *
+ dfu->data.sf.dev->erasesize;
}
static int dfu_write_medium_sf(struct dfu_entity *dfu,
@@ -36,7 +36,7 @@ static int dfu_write_medium_sf(struct dfu_entity *dfu,
ret = spi_flash_erase(dfu->data.sf.dev,
find_sector(dfu, dfu->data.sf.start, offset),
- dfu->data.sf.dev->sector_size);
+ dfu->data.sf.dev->erasesize);
if (ret)
return ret;
@@ -123,7 +123,7 @@ int dfu_fill_entity_sf(struct dfu_entity *dfu, char *devstr, char *s)
return -ENODEV;
dfu->dev_type = DFU_DEV_SF;
- dfu->max_buf_size = dfu->data.sf.dev->sector_size;
+ dfu->max_buf_size = dfu->data.sf.dev->erasesize;
st = strsep(&s, " ");
if (!strcmp(st, "raw")) {
diff --git a/drivers/mtd/spi/sf_mtd.c b/drivers/mtd/spi/sf_mtd.c
index 0b9cb62..9a8302d 100644
--- a/drivers/mtd/spi/sf_mtd.c
+++ b/drivers/mtd/spi/sf_mtd.c
@@ -93,7 +93,7 @@ int spi_flash_mtd_register(struct spi_flash *flash)
/* Only uniform flash devices for now */
sf_mtd_info.numeraseregions = 0;
- sf_mtd_info.erasesize = flash->sector_size;
+ sf_mtd_info.erasesize = flash->erasesize;
return add_mtd_device(&sf_mtd_info);
}
diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c
index 17eb0e9..891e1ec 100644
--- a/drivers/mtd/spi/spi_flash.c
+++ b/drivers/mtd/spi/spi_flash.c
@@ -1091,9 +1091,6 @@ int spi_flash_scan(struct spi_flash *flash)
flash->erasesize = flash->sector_size;
}
- /* Now erase size becomes valid sector size */
- flash->sector_size = flash->erasesize;
-
/* Look for the fastest read cmd */
cmd = fls(params->e_rd_cmd & spi->mode_rx);
if (cmd) {
--
1.9.1
More information about the U-Boot
mailing list