I've added a new definition for the Macronix MX23L3254 chip (4M).  Since
it is a mask ROM, it doesn't support write or erase.  Let me know if the
definition is incorrect in describing this.

Here's the datasheet for reference:
http://www.macronix.com/Lists/DataSheet/Attachments/1233/MX23L3254,%203.0-3.3V,%2032Mb,%20v1.5.pdf

Probe and read works when tested on a real chip:

$ ./flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -r trying_again2.bin
flashrom v0.9.7-r1767 on Linux 3.8.0-37-generic (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found Macronix flash chip "MX23L3254" (4096 kB, SPI) on buspirate_spi.
===
This flash part has status UNTESTED for operations: ERASE WRITE
The test status of this chip may have been updated in the latest development
version of flashrom. If you are running the latest development version,
please email a report to [email protected] if any of the above
operations
work correctly for you with this flash part. Please include the flashrom
output with the additional -V option for all operations you tested (-V, -Vr,
-VE, -Vw), and mention which mainboard or programmer you tested.
Please mention your board in the subject line. Thanks for your help!
Reading flash... done.

Signed-off-by: Michael Coppola <[email protected]>
Index: flashchips.c
===================================================================
--- flashchips.c	(revision 1767)
+++ flashchips.c	(working copy)
@@ -5909,6 +5909,28 @@
 
 	{
 		.vendor		= "Macronix",
+		.name		= "MX23L3254",
+		.bustype	= BUS_SPI,
+		.manufacture_id	= MACRONIX_ID,
+		.model_id	= MACRONIX_MX23L3254,
+		.total_size	= 4096,
+		.page_size	= 256,
+		.feature_bits	= 0,
+		.tested		= TEST_OK_PR,
+		.probe		= probe_spi_rdid,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+		},
+		.printlock	= spi_prettyprint_status_register_default_bp1,
+		.unlock		= NULL, /* MX23L3254 is a mask ROM, so it is read-only */
+		.write		= NULL,
+		.read		= spi_chip_read,
+		.voltage	= {3000, 3600},
+	},
+
+	{
+		.vendor		= "Macronix",
 		.name		= "MX25L512(E)/MX25V512(C)",
 		.bustype	= BUS_SPI,
 		.manufacture_id	= MACRONIX_ID,
Index: flashchips.h
===================================================================
--- flashchips.h	(revision 1767)
+++ flashchips.h	(working copy)
@@ -430,6 +430,7 @@
  * and use the same set of IDs.
  */
 #define MACRONIX_ID		0xC2	/* Macronix (MX) */
+#define MACRONIX_MX23L3254	0x0516	/* MX23L3254 mask ROM (4M) */
 #define MACRONIX_MX25L512	0x2010	/* Same as MX25L512E, MX25V512, MX25V512C */
 #define MACRONIX_MX25L1005	0x2011	/* Same as MX25L1005C, MX25L1006E */
 #define MACRONIX_MX25L2005	0x2012	/* Same as MX25L2005C */
_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to