[flashrom] [commit] r1683 - trunk

repository service svn at flashrom.org
Fri Jun 28 23:28:44 CEST 2013


Author: stefanct
Date: Fri Jun 28 23:28:43 2013
New Revision: 1683
URL: http://flashrom.org/trac/flashrom/changeset/1683

Log:
Add support for Nantronics N25 series.

Add...
 - N25S10
 - N25S20
 - N25S40
 - N25S80
 - N25S16

Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

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

Modified: trunk/flashchips.c
==============================================================================
--- trunk/flashchips.c	Fri Jun 28 23:28:37 2013	(r1682)
+++ trunk/flashchips.c	Fri Jun 28 23:28:43 2013	(r1683)
@@ -6234,6 +6234,202 @@
 	},
 
 	{
+		.vendor		= "Nantronics",
+		.name		= "N25S10",
+		.bustype	= BUS_SPI,
+		.manufacture_id	= NANTRONICS_ID_NOPREFIX,
+		.model_id	= NANTRONICS_N25S10,
+		.total_size	= 128,
+		.page_size	= 256,
+		.feature_bits	= FEATURE_WRSR_WREN,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_spi_rdid,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 32} },
+				.block_erase = spi_block_erase_20,
+			}, {
+				.eraseblocks = { {4 * 1024, 32} },
+				.block_erase = spi_block_erase_d7,
+			}, {
+				.eraseblocks = { {32 * 1024, 4} },
+				.block_erase = spi_block_erase_52,
+			}, {
+				.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,
+			}
+		},
+		.printlock	= spi_prettyprint_status_register_default_bp3,
+		.unlock		= spi_disable_blockprotect_bp3_srwd,
+		.write		= spi_chip_write_256,
+		.read		= spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */
+		.voltage	= {2700, 3600},
+	},
+
+	{
+		.vendor		= "Nantronics",
+		.name		= "N25S20",
+		.bustype	= BUS_SPI,
+		.manufacture_id	= NANTRONICS_ID_NOPREFIX,
+		.model_id	= NANTRONICS_N25S20,
+		.total_size	= 256,
+		.page_size	= 256,
+		.feature_bits	= FEATURE_WRSR_WREN,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_spi_rdid,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 64} },
+				.block_erase = spi_block_erase_20,
+			}, {
+				.eraseblocks = { {4 * 1024, 64} },
+				.block_erase = spi_block_erase_d7,
+			}, {
+				.eraseblocks = { {32 * 1024, 8} },
+				.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,
+			}
+		},
+		.printlock	= spi_prettyprint_status_register_default_bp3,
+		.unlock		= spi_disable_blockprotect_bp3_srwd,
+		.write		= spi_chip_write_256,
+		.read		= spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */
+		.voltage	= {2700, 3600},
+	},
+
+	{
+		.vendor		= "Nantronics",
+		.name		= "N25S40",
+		.bustype	= BUS_SPI,
+		.manufacture_id	= NANTRONICS_ID_NOPREFIX,
+		.model_id	= NANTRONICS_N25S40,
+		.total_size	= 512,
+		.page_size	= 256,
+		.feature_bits	= FEATURE_WRSR_WREN,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_spi_rdid,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 128} },
+				.block_erase = spi_block_erase_20,
+			}, {
+				.eraseblocks = { {4 * 1024, 128} },
+				.block_erase = spi_block_erase_d7,
+			}, {
+				.eraseblocks = { {32 * 1024, 16} },
+				.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,
+			}
+		},
+		.printlock	= spi_prettyprint_status_register_default_bp3,
+		.unlock		= spi_disable_blockprotect_bp3_srwd,
+		.write		= spi_chip_write_256,
+		.read		= spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */
+		.voltage	= {2700, 3600},
+	},
+
+	{
+		.vendor		= "Nantronics",
+		.name		= "N25S80",
+		.bustype	= BUS_SPI,
+		.manufacture_id	= NANTRONICS_ID_NOPREFIX,
+		.model_id	= NANTRONICS_N25S80,
+		.total_size	= 1024,
+		.page_size	= 256,
+		.feature_bits	= FEATURE_WRSR_WREN,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_spi_rdid,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 256} },
+				.block_erase = spi_block_erase_20,
+			}, {
+				.eraseblocks = { {32 * 1024, 32} },
+				.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,
+			}
+		},
+		.printlock	= spi_prettyprint_status_register_default_bp3,
+		.unlock		= spi_disable_blockprotect_bp3_srwd,
+		.write		= spi_chip_write_256,
+		.read		= spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */
+		.voltage	= {2700, 3600},
+	},
+
+	{
+		.vendor		= "Nantronics",
+		.name		= "N25S16",
+		.bustype	= BUS_SPI,
+		.manufacture_id	= NANTRONICS_ID_NOPREFIX,
+		.model_id	= NANTRONICS_N25S16,
+		.total_size	= 2048,
+		.page_size	= 256,
+		.feature_bits	= FEATURE_WRSR_WREN,
+		.tested		= TEST_UNTESTED,
+		.probe		= probe_spi_rdid,
+		.probe_timing	= TIMING_ZERO,
+		.block_erasers	=
+		{
+			{
+				.eraseblocks = { {4 * 1024, 512} },
+				.block_erase = spi_block_erase_20,
+			}, {
+				.eraseblocks = { {64 * 1024, 32} },
+				.block_erase = spi_block_erase_d8,
+			}, {
+				.eraseblocks = { {2048 * 1024, 1} },
+				.block_erase = spi_block_erase_60,
+			}, {
+				.eraseblocks = { {2048 * 1024, 1} },
+				.block_erase = spi_block_erase_c7,
+			}
+		},
+		.printlock	= spi_prettyprint_status_register_default_bp3,
+		.unlock		= spi_disable_blockprotect_bp3_srwd,
+		.write		= spi_chip_write_256,
+		.read		= spi_chip_read, /* Fast read (0x0B), dual I/O read (0x3B) supported */
+		.voltage	= {2700, 3600},
+	},
+
+	{
 		.vendor		= "Numonyx",
 		.name		= "M25PE10",
 		.bustype	= BUS_SPI,

Modified: trunk/flashchips.h
==============================================================================
--- trunk/flashchips.h	Fri Jun 28 23:28:37 2013	(r1682)
+++ trunk/flashchips.h	Fri Jun 28 23:28:43 2013	(r1683)
@@ -449,6 +449,16 @@
 #define MACRONIX_MX29SL800CB	0x6B	/* Same as MX29SL802CB */
 #define MACRONIX_MX29SL800CT	0xEA	/* Same as MX29SL802CT */
 
+/* Nantronics Semiconductors is listed in JEP106AJ in bank 7, so it should have 6 continuation codes in front
+ * of the manufacturer ID of 0xD5. http://www.nantronicssemi.com */
+#define NANTRONICS_ID			0x7F7F7F7F7F7FD5	/* Nantronics */
+#define NANTRONICS_ID_NOPREFIX		0xD5	/* Nantronics, missing prefix */
+#define NANTRONICS_N25S10		0x3011
+#define NANTRONICS_N25S20		0x3012
+#define NANTRONICS_N25S40		0x3013
+#define NANTRONICS_N25S80		0x3014
+#define NANTRONICS_N25S16		0x3015
+
 /*
  * Programmable Micro Corp is listed in JEP106W in bank 2, so it should
  * have a 0x7F continuation code prefix.

Modified: trunk/spi25_statusreg.c
==============================================================================
--- trunk/spi25_statusreg.c	Fri Jun 28 23:28:37 2013	(r1682)
+++ trunk/spi25_statusreg.c	Fri Jun 28 23:28:43 2013	(r1683)
@@ -223,10 +223,10 @@
 	msg_cdbg("Chip status register is 0x%02x.\n", status);
 }
 
-/* Common highest bit: Status Register Write Disable (SRWD). */
+/* Common highest bit: Status Register Write Disable (SRWD) or Status Register Protect (SRP). */
 static void spi_prettyprint_status_register_srwd(uint8_t status)
 {
-	msg_cdbg("Chip status register: Status Register Write Disable (SRWD) is %sset\n",
+	msg_cdbg("Chip status register: Status Register Write Disable (SRWD, SRP, ...) is %sset\n",
 		 (status & (1 << 7)) ? "" : "not ");
 }
 




More information about the flashrom mailing list