public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] Fixing spi erase for S25FL128P_256K
@ 2010-08-10 13:02 Marc-André Hébert
  2010-08-10 13:14 ` Sergei Shtylyov
  2010-08-23 21:37 ` [U-Boot] [PATCH] " Mike Frysinger
  0 siblings, 2 replies; 8+ messages in thread
From: Marc-André Hébert @ 2010-08-10 13:02 UTC (permalink / raw)
  To: u-boot

The spansion_erase currently only works when the sector size is 64KB.
cmd[1] should contain the higher 8 bit of the 24 bit address of the
sector to be erased. Currently it is holding the sector index to be
erased which happens to be the same thing when the sector size is
64KB.

Signed-off-by: Marc-Andre Hebert <marc-andre.hebert@humanware.com>
---
 drivers/mtd/spi/spansion.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/spi/spansion.c b/drivers/mtd/spi/spansion.c
index d6c1a5f..94489af 100644
--- a/drivers/mtd/spi/spansion.c
+++ b/drivers/mtd/spi/spansion.c
@@ -262,7 +262,6 @@ int spansion_erase(struct spi_flash *flash, u32
offset, size_t len)
 		return -1;
 	}

-	len /= sector_size;
 	cmd[0] = CMD_S25FLXX_SE;
 	cmd[2] = 0x00;
 	cmd[3] = 0x00;
@@ -274,8 +273,8 @@ int spansion_erase(struct spi_flash *flash, u32
offset, size_t len)
 	}

 	ret = 0;
-	for (actual = 0; actual < len; actual++) {
-		cmd[1] = (offset / sector_size) + actual;
+	for (actual = 0; actual < len; actual+=sector_size) {
+		cmd[1] = (offset + actual) >> 16;

 		ret = spi_flash_cmd(flash->spi, CMD_S25FLXX_WREN, NULL, 0);
 		if (ret < 0) {
@@ -298,7 +297,7 @@ int spansion_erase(struct spi_flash *flash, u32
offset, size_t len)
 	}

 	debug("SF: SPANSION: Successfully erased %u bytes @ 0x%x\n",
-	      len * sector_size, offset);
+	      len, offset);

 	spi_release_bus(flash->spi);
 	return ret;
-- 
1.6.0.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-08-23 22:08 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-10 13:02 [U-Boot] [PATCH] Fixing spi erase for S25FL128P_256K Marc-André Hébert
2010-08-10 13:14 ` Sergei Shtylyov
2010-08-10 13:35   ` [U-Boot] [PATCH v2] " Marc-André Hébert
2010-08-10 20:55     ` Mike Frysinger
2010-08-11 11:23       ` Marc-André Hébert
2010-08-11 17:01         ` Mike Frysinger
2010-08-23 21:37 ` [U-Boot] [PATCH] " Mike Frysinger
2010-08-23 22:08   ` Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox