[flashrom] [PATCH] eraseblocks for mx25

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sun Sep 6 15:11:01 CEST 2009


Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

someone else please commit.

Index: flashrom-eraseblocks_mx25/flashchips.c
===================================================================
--- flashrom-eraseblocks_mx25/flashchips.c	(Revision 719)
+++ flashrom-eraseblocks_mx25/flashchips.c	(Arbeitskopie)
@@ -44,6 +44,11 @@
 	 * .probe		= Probe function
 	 * .probe_timing	= Probe function delay
 	 * .erase		= Chip erase function
+	 * .block_erasers[]	= Array of erase layouts and erase functions
+	 * {
+	 *	.eraseblocks[]	= Array of { blocksize, blockcount }
+	 *	.block_erase	= Block erase function
+	 * }
 	 * .write		= Chip write function
 	 * .read		= Chip read function
 	 */
@@ -1235,20 +1240,16 @@
 			{
 				.eraseblocks = { {4 * 1024, 16} },
 				.block_erase = spi_block_erase_20,
-			},
-			{
+			}, {
 				.eraseblocks = { {64 * 1024, 1} },
 				.block_erase = spi_block_erase_52,
-			},
-			{
+			}, {
 				.eraseblocks = { {64 * 1024, 1} },
 				.block_erase = spi_block_erase_d8,
-			},
-			{
+			}, {
 				.eraseblocks = { {64 * 1024, 1} },
 				.block_erase = spi_block_erase_60,
-			},
-			{
+			}, {
 				.eraseblocks = { {64 * 1024, 1} },
 				.block_erase = spi_block_erase_c7,
 			},
@@ -1274,16 +1275,13 @@
 			{
 				.eraseblocks = { {4 * 1024, 32} },
 				.block_erase = spi_block_erase_20,
-			},
-			{
+			}, {
 				.eraseblocks = { {64 * 1024, 2} },
 				.block_erase = spi_block_erase_d8,
-			},
-			{
+			}, {
 				.eraseblocks = { {128 * 1024, 1} },
 				.block_erase = spi_block_erase_60,
-			},
-			{
+			}, {
 				.eraseblocks = { {128 * 1024, 1} },
 				.block_erase = spi_block_erase_c7,
 			},
@@ -1304,6 +1302,25 @@
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.erase		= spi_chip_erase_60_c7,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 64} },
+				.block_erase = spi_block_erase_20,
+			}, {
+				.eraseblocks = { {64 * 1024, 4} },
+				.block_erase = spi_block_erase_52,
+			}, {
+				.eraseblocks = { {64 * 1024, 4} },
+				.block_erase = spi_block_erase_d8,
+			}, {
+				.eraseblocks = { {256 * 1024, 1} },
+				.block_erase = spi_block_erase_60,
+			}, {
+				.eraseblocks = { {256 * 1024, 1} },
+				.block_erase = spi_block_erase_c7,
+			},
+		},
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
 	},
@@ -1320,6 +1337,25 @@
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.erase		= spi_chip_erase_60_c7,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 128} },
+				.block_erase = spi_block_erase_20,
+			}, {
+				.eraseblocks = { {64 * 1024, 8} },
+				.block_erase = spi_block_erase_52,
+			}, {
+				.eraseblocks = { {64 * 1024, 8} },
+				.block_erase = spi_block_erase_d8,
+			}, {
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = spi_block_erase_60,
+			}, {
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = spi_block_erase_c7,
+			},
+		},
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
 	},
@@ -1336,6 +1372,25 @@
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.erase		= spi_chip_erase_60_c7,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 256} },
+				.block_erase = spi_block_erase_20,
+			}, {
+				.eraseblocks = { {64 * 1024, 16} },
+				.block_erase = spi_block_erase_52,
+			}, {
+				.eraseblocks = { {64 * 1024, 16} },
+				.block_erase = spi_block_erase_d8,
+			}, {
+				.eraseblocks = { {1024 * 1024, 1} },
+				.block_erase = spi_block_erase_60,
+			}, {
+				.eraseblocks = { {1024 * 1024, 1} },
+				.block_erase = spi_block_erase_c7,
+			},
+		},
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
 	},
@@ -1352,6 +1407,25 @@
 		.probe		= probe_spi_rdid,
 		.probe_timing	= TIMING_ZERO,
 		.erase		= spi_chip_erase_60_c7,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 512} },
+				.block_erase = spi_block_erase_20,	/* This erase function has 64k blocksize for eLiteFlash */
+			}, {
+				.eraseblocks = { {64 * 1024, 32} },	/* Not supported in MX25L1605 (eLiteFlash) and MX25L1605D/MX25L1635D */
+				.block_erase = spi_block_erase_52,
+			}, {
+				.eraseblocks = { {64 * 1024, 32} },
+				.block_erase = spi_block_erase_d8,
+			}, {
+				.eraseblocks = { {2 * 1024 * 1024, 1} },
+				.block_erase = spi_block_erase_60,
+			}, {
+				.eraseblocks = { {2 * 1024 * 1024, 1} },
+				.block_erase = spi_block_erase_c7,
+			},
+		},
 		.write		= spi_chip_write_256,
 		.read		= spi_chip_read,
 	},
Index: flashrom-eraseblocks_mx25/flashchips.h
===================================================================
--- flashrom-eraseblocks_mx25/flashchips.h	(Revision 719)
+++ flashrom-eraseblocks_mx25/flashchips.h	(Arbeitskopie)
@@ -251,7 +251,7 @@
  * and use the same set of IDs.
  */
 #define MX_ID			0xC2	/* Macronix (MX) */
-#define MX_25L512		0x2010	/* 2^19 kbit or 2^16 kByte */
+#define MX_25L512		0x2010	/* Same as MX25V512 */
 #define MX_25L1005		0x2011
 #define MX_25L2005		0x2012
 #define MX_25L4005		0x2013	/* MX25L4005{,A} */


-- 
http://www.hailfinger.org/





More information about the flashrom mailing list