[flashrom] [RFC, PATCH] Add read support for the Spansion S25FL129P flash chip

Antonio Ospite ospite at studenti.unina.it
Wed Sep 26 13:50:54 CEST 2012


http://www.spansion.com/Support/Datasheets/S25FL129P_00.pdf
http://www.spansion.com/Support/Application%20Notes/S25FL129P_Prog_Guide_AN.pdf

Signed-off-by: Antonio Ospite <ospite at studenti.unina.it>
---

Hi,

I was able to read the content of the flash chip in the subject with the patch
below but I am not sure if the patch is correct and ready for submission,
could someone please check with the datasheet? I know very little about flash
chips.

Moreover from the Datasheet (Table 9.2, page 34) I see that this chip comes in
two variants, one with 64K sectors and one with 256KB sectors, and some
"Extended Device Identification" is used to identify the right variant,
I don't know if flashrom supports reading such information.

I see that somewhere else that is supported:
http://old.nabble.com/-PATCH--m25p80:-Add-Spansion-S25FL129P-serial-flashes-td25518109.html

I didn't feel like testing erase/write either as the connection to the chip
was/is quite unreliable, I just needed to get a rootfs off from it once (it's
some embedded router). If anyone can suggest some really cheap place where to
get test clips or probes in Italy (or even better feels like donating some),
I might risk testing erase/write after we solve the issue about the chip
variant.

BTW the output after the patch:

$ sudo ./flashrom -p ft2232_spi:type=tumpa,port=B -r flash.bin
flashrom v0.9.6.1-r1599 on Linux 3.6.0-rc5-ao2 (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found Spansion flash chip "S25FL129P" (16384 kB, SPI) on ft2232_spi.
Reading flash... done.


Thanks,
   Antonio Ospite
   http://ao2.it

 flashchips.c |   28 ++++++++++++++++++++++++++++
 flashchips.h |    1 +
 2 files changed, 29 insertions(+)

diff --git a/flashchips.c b/flashchips.c
index a6c2004..ced6ad0 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -6288,6 +6288,34 @@ const struct flashchip flashchips[] = {
 	},
 
 	{
+		.vendor		= "Spansion",
+		.name		= "S25FL129P",
+		.bustype	= BUS_SPI,
+		.manufacture_id	= SPANSION_ID,
+		.model_id	= SPANSION_S25FL129P,
+		.total_size	= 16384,
+		.page_size	= 256,
+		.feature_bits	= FEATURE_WRSR_WREN,
+		.tested		= TEST_OK_PR,
+		.probe		= probe_spi_rdid,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {64 * 1024, 256} },
+				.block_erase = spi_block_erase_d8,
+			}, {
+				.eraseblocks = { {4 * 1024, 4096} },
+				.block_erase = spi_block_erase_20,
+			}
+		},
+		.unlock		= spi_disable_blockprotect,
+		.write		= spi_chip_write_256,
+		.read		= spi_chip_read,
+		.voltage	= {2700, 3600},
+	},
+
+	{
 		.vendor		= "SST",
 		.name		= "SST25LF040A",
 		.bustype	= BUS_SPI,
diff --git a/flashchips.h b/flashchips.h
index 8e51d35..d13773d 100644
--- a/flashchips.h
+++ b/flashchips.h
@@ -480,6 +480,7 @@
 #define SPANSION_S25FL016A	0x0214
 #define SPANSION_S25FL032A	0x0215
 #define SPANSION_S25FL064A	0x0216
+#define SPANSION_S25FL129P	0x2018
 
 /*
  * SST25 chips are SPI, first byte of device ID is memory type, second
-- 
1.7.10.4





More information about the flashrom mailing list