summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flash.h1
-rw-r--r--flashchips.c16
-rw-r--r--flashchips.h11
3 files changed, 23 insertions, 5 deletions
diff --git a/flash.h b/flash.h
index bfb0a49..59f7cd4 100644
--- a/flash.h
+++ b/flash.h
@@ -208,6 +208,7 @@ struct flashctx {
#define TEST_BAD_READ (1 << 5)
#define TEST_BAD_ERASE (1 << 6)
#define TEST_BAD_WRITE (1 << 7)
+#define TEST_BAD_EW (TEST_BAD_ERASE | TEST_BAD_WRITE)
#define TEST_BAD_REW (TEST_BAD_READ | TEST_BAD_ERASE | TEST_BAD_WRITE)
#define TEST_BAD_PREW (TEST_BAD_PROBE | TEST_BAD_READ | TEST_BAD_ERASE | TEST_BAD_WRITE)
#define TEST_BAD_MASK 0xf0
diff --git a/flashchips.c b/flashchips.c
index 8289788..683af3c 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -5909,6 +5909,22 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX23L3254",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L3254,
+ .total_size = 4096,
+ .page_size = 256,
+ .tested = TEST_OK_PR | TEST_BAD_EW,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L3254 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX25L512(E)/MX25V512(C)",
.bustype = BUS_SPI,
.manufacture_id = MACRONIX_ID,
diff --git a/flashchips.h b/flashchips.h
index 8cbf299..6db6b74 100644
--- a/flashchips.h
+++ b/flashchips.h
@@ -423,13 +423,13 @@
#define ISSI_ID 0xD5 /* ISSI Integrated Silicon Solutions */
-/*
- * MX25 chips are SPI, first byte of device ID is memory type,
+#define MACRONIX_ID 0xC2 /* Macronix (MX) */
+/* Mask ROMs */
+#define MACRONIX_MX23L3254 0x0516
+/* MX25 chips are SPI, first byte of device ID is memory type,
* second byte of device ID is log(bitsize)-9.
* Generalplus SPI chips seem to be compatible with Macronix
- * and use the same set of IDs.
- */
-#define MACRONIX_ID 0xC2 /* Macronix (MX) */
+ * and use the same set of IDs. */
#define MACRONIX_MX25L512 0x2010 /* Same as MX25L512E, MX25V512, MX25V512C */
#define MACRONIX_MX25L1005 0x2011 /* Same as MX25L1005C, MX25L1006E */
#define MACRONIX_MX25L2005 0x2012 /* Same as MX25L2005C */
@@ -448,6 +448,7 @@
#define MACRONIX_MX25U12835E 0x2538 /* Same as MX25U12835F */
#define MACRONIX_MX25U25635F 0x2539
#define MACRONIX_MX25L3235D 0x5E16 /* MX25L3225D/MX25L3235D/MX25L3237D */
+
#define MACRONIX_MX29F001B 0x19
#define MACRONIX_MX29F001T 0x18
#define MACRONIX_MX29F002B 0x34 /* Same as MX29F002NB; N has reset pin n/c. */
OpenPOWER on IntegriCloud