[U-Boot] [PATCH] sf: winbond: fix page_size
Stephen Warren
swarren at wwwdotorg.org
Tue Aug 14 00:46:21 CEST 2012
From: Stephen Warren <swarren at nvidia.com>
Commit a4ed3b6 "sf: inline data constants" modified winbond.c's page_size
from 256 to 4096. This prevents either/both of "sf write" writing the
correct data, or "sf read" from reading the correct data back.
This allows U-Boot running on Compulab Tegra to upgrade itself.
Signed-off-by: Stephen Warren <swarren at nvidia.com>
Cc: Mike Frysinger <vapier at gentoo.org>
---
I'm not convinced there aren't other similar problems. At least eon.c's
values don't make much sense to me; sector_size=256*16*16, yet total
device size is just 256*16*nr_sectors. That was a pre-existing issue
though. Another audit might make sense. This might be due to the apparent
separation between page/sector/block, yet struct spi_flash only knowing
about page and sectors, not blocks, leaving sf authors to wonder whether
blocks are really sectors, or just to ignore blocks?
---
drivers/mtd/spi/winbond.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/spi/winbond.c b/drivers/mtd/spi/winbond.c
index 427b71f..1d90c1e 100644
--- a/drivers/mtd/spi/winbond.c
+++ b/drivers/mtd/spi/winbond.c
@@ -94,7 +94,7 @@ struct spi_flash *spi_flash_probe_winbond(struct spi_slave *spi, u8 *idcode)
flash->write = spi_flash_cmd_write_multi;
flash->erase = spi_flash_cmd_erase;
flash->read = spi_flash_cmd_read_fast;
- flash->page_size = 4096;
+ flash->page_size = 256;
flash->sector_size = 4096;
flash->size = 4096 * 16 * params->nr_blocks;
--
1.7.0.4
More information about the U-Boot
mailing list