[flashrom] [PATCH] Add SyncMOS / Mosel Vitelic chip definitions (try 2)

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Thu Jul 29 19:11:36 CEST 2010


On 14.07.2010 06:44, Mattias Mattsson wrote:
> This is a bit more intrusive than my earlier patch. It's a bit hard to
> read in some places because keeping the definitions alphabetically
> sorted.
>
> Add definitions for the following chips from
>
> Mosel Vitelic Corporation (MVC):
>
> V29C51000B
> V29C51000T
> V29C51400B
> V29C51400T
> V29LC51000
> V29LC51001
> V29LC51002
>
> SyncMOS (SM)/Mosel Vitelic Corporation (MVC)
>
> {F,S,V}29C51001B
> {F,S,V}29C51001T
> {F,S,V}29C51002B
> {F,S,V}29C51002T
> {F,S,V}29C51004B
> {F,S,V}29C51004T
> {V,S}29C31004B
> {V,S}29C31004T
>
> Modifies earlier definitions of
> S29C31004T/S29C51001T/S29C51002T/S29C51004T to change name and correct
> page size. Also changes vendor and chip constants.
>
>
> Signed-off-by: Mattias Mattsson <vitplister at gmail.com>
>   

I've changed the printed names, and removed the TEST_OK_WRITE for chips
where page size changed.

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

Index: flashrom-syncmos_moselvitelic_29c/flashchips.c
===================================================================
--- flashrom-syncmos_moselvitelic_29c/flashchips.c	(Revision 1121)
+++ flashrom-syncmos_moselvitelic_29c/flashchips.c	(Arbeitskopie)
@@ -3879,6 +3879,188 @@
 	},
 
 	{
+		.vendor		= "MoselVitelic",
+		.name		= "V29C51000B",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= MVC_V29C51000B,
+		.total_size	= 64,
+		.page_size	= 512,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {512, 128} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {64 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "MoselVitelic",
+		.name		= "V29C51000T",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= MVC_V29C51000T,
+		.total_size	= 64,
+		.page_size	= 512,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {512, 128} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {64 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "MoselVitelic",
+		.name		= "V29C51400B",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= MVC_V29C51400B,
+		.total_size	= 512,
+		.page_size	= 1024,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {1024, 512} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "MoselVitelic",
+		.name		= "V29C51400T",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= MVC_V29C51400T,
+		.total_size	= 512,
+		.page_size	= 1024,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {1024, 512} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "MoselVitelic",
+		.name		= "V29LC51000",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= MVC_V29LC51000,
+		.total_size	= 64,
+		.page_size	= 512,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {512, 128} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {64 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "MoselVitelic",
+		.name		= "V29LC51001",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= MVC_V29LC51001,
+		.total_size	= 128,
+		.page_size	= 512,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {512, 256} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {128 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "MoselVitelic",
+		.name		= "V29LC51002",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= MVC_V29LC51002,
+		.total_size	= 256,
+		.page_size	= 512,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {512, 512} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {256 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
 		.vendor		= "Numonyx",
 		.name		= "M25PE10",
 		.bustype	= CHIP_BUSTYPE_SPI,
@@ -6382,13 +6564,13 @@
 	},
 
 	{
-		.vendor		= "SyncMOS",
-		.name		= "S29C31004T",
+		.vendor		= "SyncMOS/MoselVitelic",
+		.name		= "{F,S,V}29C51001B",
 		.bustype	= CHIP_BUSTYPE_PARALLEL,
-		.manufacture_id	= SYNCMOS_ID,
-		.model_id	= S29C31004T,
-		.total_size	= 512,
-		.page_size	= 128,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= SM_MVC_29C51001B,
+		.total_size	= 128,
+		.page_size	= 512,
 		.feature_bits	= FEATURE_EITHER_RESET,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_jedec,
@@ -6396,10 +6578,10 @@
 		.block_erasers	=
 		{
 			{
-				.eraseblocks = { {1 * 1024, 512} },
+				.eraseblocks = { {512, 256} },
 				.block_erase = erase_sector_jedec,
 			}, {
-				.eraseblocks = { {512 * 1024, 1} },
+				.eraseblocks = { {128 * 1024, 1} },
 				.block_erase = erase_chip_block_jedec,
 			},
 		},
@@ -6408,13 +6590,13 @@
 	},
 
 	{
-		.vendor		= "SyncMOS",
-		.name		= "S29C51001T",
+		.vendor		= "SyncMOS/MoselVitelic",
+		.name		= "{F,S,V}29C51001T",
 		.bustype	= CHIP_BUSTYPE_PARALLEL,
-		.manufacture_id	= SYNCMOS_ID,
-		.model_id	= S29C51001T,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= SM_MVC_29C51001T,
 		.total_size	= 128,
-		.page_size	= 128,
+		.page_size	= 512,
 		.feature_bits	= FEATURE_EITHER_RESET,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_jedec,
@@ -6434,15 +6616,15 @@
 	},
 
 	{
-		.vendor		= "SyncMOS",
-		.name		= "S29C51002T",
+		.vendor		= "SyncMOS/MoselVitelic",
+		.name		= "{F,S,V}29C51002B",
 		.bustype	= CHIP_BUSTYPE_PARALLEL,
-		.manufacture_id	= SYNCMOS_ID,
-		.model_id	= S29C51002T,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= SM_MVC_29C51002B,
 		.total_size	= 256,
-		.page_size	= 128,
+		.page_size	= 512,
 		.feature_bits	= FEATURE_EITHER_RESET,
-		.tested		= TEST_OK_PRW,
+		.tested		= TEST_UNTESTED,
 		.probe		= probe_jedec,
 		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
 		.block_erasers	=
@@ -6460,13 +6642,39 @@
 	},
 
 	{
-		.vendor		= "SyncMOS",
-		.name		= "S29C51004T",
+		.vendor		= "SyncMOS/MoselVitelic",
+		.name		= "{F,S,V}29C51002T",
 		.bustype	= CHIP_BUSTYPE_PARALLEL,
-		.manufacture_id	= SYNCMOS_ID,
-		.model_id	= S29C51004T,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= SM_MVC_29C51002T,
+		.total_size	= 256,
+		.page_size	= 512,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_OK_PR,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {512, 512} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {256 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "SyncMOS/MoselVitelic",
+		.name		= "{F,S,V}29C51004B",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= SM_MVC_29C51004B,
 		.total_size	= 512,
-		.page_size	= 128,
+		.page_size	= 1024,
 		.feature_bits	= FEATURE_EITHER_RESET,
 		.tested		= TEST_UNTESTED,
 		.probe		= probe_jedec,
@@ -6474,7 +6682,7 @@
 		.block_erasers	=
 		{
 			{
-				.eraseblocks = { {1 * 1024, 512} },
+				.eraseblocks = { {1024, 512} },
 				.block_erase = erase_sector_jedec,
 			}, {
 				.eraseblocks = { {512 * 1024, 1} },
@@ -6486,6 +6694,84 @@
 	},
 
 	{
+		.vendor		= "SyncMOS/MoselVitelic",
+		.name		= "{F,S,V}29C51004T",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= SM_MVC_29C51004T,
+		.total_size	= 512,
+		.page_size	= 1024,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {1024, 512} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "SyncMOS/MoselVitelic",
+		.name		= "{S,V}29C31004B",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= SM_MVC_29C31004B,
+		.total_size	= 512,
+		.page_size	= 1024,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {1024, 512} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
+		.vendor		= "SyncMOS/MoselVitelic",
+		.name		= "{S,V}29C31004T",
+		.bustype	= CHIP_BUSTYPE_PARALLEL,
+		.manufacture_id	= SYNCMOS_MVC_ID,
+		.model_id	= SM_MVC_29C31004T,
+		.total_size	= 512,
+		.page_size	= 1024,
+		.feature_bits	= FEATURE_EITHER_RESET,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_jedec,
+		.probe_timing	= TIMING_ZERO,	/* Datasheet has no timing info specified */
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {1024, 512} },
+				.block_erase = erase_sector_jedec,
+			}, {
+				.eraseblocks = { {512 * 1024, 1} },
+				.block_erase = erase_chip_block_jedec,
+			},
+		},
+		.write		= write_jedec_1,
+		.read		= read_memmapped,
+	},
+
+	{
 		.vendor		= "TI",
 		.name		= "TMS29F002RB",
 		.bustype	= CHIP_BUSTYPE_PARALLEL,
Index: flashrom-syncmos_moselvitelic_29c/flashchips.h
===================================================================
--- flashrom-syncmos_moselvitelic_29c/flashchips.h	(Revision 1121)
+++ flashrom-syncmos_moselvitelic_29c/flashchips.h	(Arbeitskopie)
@@ -514,11 +514,22 @@
 #define ST_M29W040B		0xE3
 #define ST_M29W512B		0x27
 
-#define SYNCMOS_ID		0x40	/* SyncMOS and Mosel Vitelic */
-#define S29C51001T		0x01
-#define S29C51002T		0x02
-#define S29C51004T		0x03
-#define S29C31004T		0x63
+#define SYNCMOS_MVC_ID		0x40	/* SyncMOS (SM) and Mosel Vitelic Corporation (MVC) */
+#define MVC_V29C51000T		0x00
+#define MVC_V29C51400T		0x13
+#define MVC_V29LC51000		0x20
+#define MVC_V29LC51001		0x60
+#define MVC_V29LC51002		0x82
+#define MVC_V29C51000B		0xA0
+#define MVC_V29C51400B		0xB3
+#define SM_MVC_29C51001T	0x01	/* Identical chips: {F,S,V}29C51001T */
+#define SM_MVC_29C51002T	0x02	/* Identical chips: {F,S,V}29C51002T */
+#define SM_MVC_29C51004T	0x03	/* Identical chips: {F,S,V}29C51004T */
+#define SM_MVC_29C31004T	0x63	/* Identical chips: {S,V}29C31004T */
+#define SM_MVC_29C31004B	0x73	/* Identical chips: {S,V}29C31004B */
+#define SM_MVC_29C51001B	0xA1	/* Identical chips: {F,S,V}29C51001B */
+#define SM_MVC_29C51002B	0xA2	/* Identical chips: {F,S,V}29C51002B */
+#define SM_MVC_29C51004B	0xA3	/* Identical chips: {F,S,V}29C51004B */
 
 #define TI_ID			0x97	/* Texas Instruments */
 #define TI_OLD_ID		0x01	/* TI chips from last century */


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





More information about the flashrom mailing list