Author: stefanct
Date: Fri Oct 26 18:49:15 2012
New Revision: 1615
URL: http://flashrom.org/trac/flashrom/changeset/1615

Log:
Add support for Numonyx N25Q016 and N25Q032.

The 32Mb version has 1.8V and 3.0V versions, the smaller one 1.8V only
(or Numonyx/Micron forgot to publish it). Another difference is that the
16Mb chip has 32 kB subsectors (erase opcode 0x52). As long as there
are no funky configurations like for the 128Mb chips, we got the smaller
parts covered with this change.

Signed-off-by: Stefan Tauner <[email protected]>
Acked-by: Stefan Tauner <[email protected]>

Modified:
   trunk/flashchips.c
   trunk/flashchips.h

Modified: trunk/flashchips.c
==============================================================================
--- trunk/flashchips.c  Tue Oct 23 15:06:46 2012        (r1614)
+++ trunk/flashchips.c  Fri Oct 26 18:49:15 2012        (r1615)
@@ -5587,6 +5587,108 @@
 
        {
                .vendor         = "Numonyx",
+               .name           = "N25Q016",
+               .bustype        = BUS_SPI,
+               .manufacture_id = ST_ID,
+               .model_id       = ST_N25Q016__1E,
+               .total_size     = 2048,
+               .page_size      = 256,
+               /* supports SFDP */
+               /* OTP: 64B total; read 0x4B, write 0x42 */
+               .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
+               .tested         = TEST_UNTESTED,
+               .probe          = probe_spi_rdid,
+               .probe_timing   = TIMING_ZERO,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 512} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {32 * 1024, 64} },
+                               .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_c7,
+                       }
+               },
+               .unlock         = spi_disable_blockprotect,
+               .write          = spi_chip_write_256,
+               .read           = spi_chip_read, /* Fast read (0x0B) and multi 
I/O supported */
+               .voltage        = {1700, 2000},
+       },
+
+       {
+               .vendor         = "Numonyx",
+               .name           = "N25Q032..1E",
+               .bustype        = BUS_SPI,
+               .manufacture_id = ST_ID,
+               .model_id       = ST_N25Q032__1E,
+               .total_size     = 4096,
+               .page_size      = 256,
+               /* supports SFDP */
+               /* OTP: 64B total; read 0x4B, write 0x42 */
+               .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
+               .tested         = TEST_UNTESTED,
+               .probe          = probe_spi_rdid,
+               .probe_timing   = TIMING_ZERO,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 1024} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {64 * 1024, 64} },
+                               .block_erase = spi_block_erase_d8,
+                       }, {
+                               .eraseblocks = { {4 * 1024 * 1024, 1} },
+                               .block_erase = spi_block_erase_c7,
+                       }
+               },
+               .unlock         = spi_disable_blockprotect,
+               .write          = spi_chip_write_256,
+               .read           = spi_chip_read, /* Fast read (0x0B) and multi 
I/O supported */
+               .voltage        = {1700, 2000},
+       },
+
+       {
+               .vendor         = "Numonyx",
+               .name           = "N25Q032..3E",
+               .bustype        = BUS_SPI,
+               .manufacture_id = ST_ID,
+               .model_id       = ST_N25Q032__3E,
+               .total_size     = 4096,
+               .page_size      = 256,
+               /* supports SFDP */
+               /* OTP: 64B total; read 0x4B, write 0x42 */
+               .feature_bits   = FEATURE_WRSR_WREN | FEATURE_OTP,
+               .tested         = TEST_UNTESTED,
+               .probe          = probe_spi_rdid,
+               .probe_timing   = TIMING_ZERO,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 1024} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {64 * 1024, 64} },
+                               .block_erase = spi_block_erase_d8,
+                       }, {
+                               .eraseblocks = { {4 * 1024 * 1024, 1} },
+                               .block_erase = spi_block_erase_c7,
+                       }
+               },
+               .unlock         = spi_disable_blockprotect,
+               .write          = spi_chip_write_256,
+               .read           = spi_chip_read, /* Fast read (0x0B) and multi 
I/O supported */
+               .voltage        = {2700, 3600},
+       },
+
+       {
+               .vendor         = "Numonyx",
                .name           = "N25Q064..1E", /* ..1E = 1.8V, uniform 
64KB/4KB blocks/sectors */
                .bustype        = BUS_SPI,
                .manufacture_id = ST_ID,
@@ -5614,7 +5716,7 @@
                },
                .unlock         = spi_disable_blockprotect,
                .write          = spi_chip_write_256,
-               .read           = spi_chip_read,
+               .read           = spi_chip_read, /* Fast read (0x0B) and multi 
I/O supported */
                .voltage        = {1700, 2000},
        },
 
@@ -5647,7 +5749,7 @@
                },
                .unlock         = spi_disable_blockprotect,
                .write          = spi_chip_write_256,
-               .read           = spi_chip_read,
+               .read           = spi_chip_read, /* Fast read (0x0B) and multi 
I/O supported */
                .voltage        = {2700, 3600},
        },
 

Modified: trunk/flashchips.h
==============================================================================
--- trunk/flashchips.h  Tue Oct 23 15:06:46 2012        (r1614)
+++ trunk/flashchips.h  Fri Oct 26 18:49:15 2012        (r1615)
@@ -591,8 +591,11 @@
 #define ST_M29W010B            0x23
 #define ST_M29W040B            0xE3
 #define ST_M29W512B            0x27
-#define ST_N25Q064__3E         0xBA17  /* N25Q064, 3.0V, 64KB/4KB 
blocks/sectors */
-#define ST_N25Q064__1E         0xBB17  /* N25Q064, 1.8V, 64KB/4KB 
blocks/sectors */
+#define ST_N25Q016__1E         0xBB15          /* N25Q016, 1.8V, (uniform 
sectors expected) */
+#define ST_N25Q032__3E         0xBA16          /* N25Q032, 3.0V, (uniform 
sectors expected) */
+#define ST_N25Q032__1E         0xBB16          /* N25Q032, 1.8V, (uniform 
sectors expected) */
+#define ST_N25Q064__3E         0xBA17          /* N25Q064, 3.0V, (uniform 
sectors expected) */
+#define ST_N25Q064__1E         0xBB17          /* N25Q064, 1.8V, (uniform 
sectors expected) */
 
 #define SYNCMOS_MVC_ID         0x40    /* SyncMOS (SM) and Mosel Vitelic 
Corporation (MVC) */
 #define MVC_V29C51000T         0x00

_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to