Add support for SST25WF080

Also, refine status register prettyprinting and unlocking of the whole family.

Corresponding to flashrom svn r1785.

Signed-off-by: Jason Harper <jharper@iseis.com>
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
diff --git a/flashchips.c b/flashchips.c
index 683af3c..9263e15 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -10040,7 +10040,8 @@
 				.block_erase = spi_block_erase_c7,
 			},
 		},
-		.unlock		= spi_disable_blockprotect,
+		.printlock	= spi_prettyprint_status_register_sst25, /* FIXME: does not have a BP3 */
+		.unlock		= spi_disable_blockprotect_bp2_srwd,
 		.write		= spi_aai_write,
 		.read		= spi_chip_read, /* Fast read (0x0B) supported */
 		.voltage	= {1650, 1950},
@@ -10074,7 +10075,8 @@
 				.block_erase = spi_block_erase_c7,
 			},
 		},
-		.unlock		= spi_disable_blockprotect,
+		.printlock	= spi_prettyprint_status_register_sst25, /* FIXME: does not have a BP3 */
+		.unlock		= spi_disable_blockprotect_bp2_srwd,
 		.write		= spi_aai_write,
 		.read		= spi_chip_read, /* Fast read (0x0B) supported */
 		.voltage	= {1650, 1950},
@@ -10111,7 +10113,8 @@
 				.block_erase = spi_block_erase_c7,
 			},
 		},
-		.unlock		= spi_disable_blockprotect,
+		.printlock	= spi_prettyprint_status_register_sst25, /* FIXME: does not have a BP3 */
+		.unlock		= spi_disable_blockprotect_bp2_srwd,
 		.write		= spi_aai_write,
 		.read		= spi_chip_read, /* Fast read (0x0B) supported */
 		.voltage	= {1650, 1950},
@@ -10148,7 +10151,46 @@
 				.block_erase = spi_block_erase_c7,
 			},
 		},
-		.unlock		= spi_disable_blockprotect,
+		.printlock	= spi_prettyprint_status_register_sst25, /* FIXME: does not have a BP3 */
+		.unlock		= spi_disable_blockprotect_bp2_srwd,
+		.write		= spi_aai_write,
+		.read		= spi_chip_read, /* Fast read (0x0B) supported */
+		.voltage	= {1650, 1950},
+	},
+
+	{
+		.vendor		= "SST",
+		.name		= "SST25WF080",
+		.bustype	= BUS_SPI,
+		.manufacture_id	= SST_ID,
+		.model_id	= SST_SST25WF080,
+		.total_size	= 1024,
+		.page_size	= 256,
+		.feature_bits	= FEATURE_WRSR_EITHER,
+		.tested		= TEST_OK_PREW,
+		.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_sst25, /* *does* have a BP3 but it is useless */
+		.unlock		= spi_disable_blockprotect_bp3_srwd,
 		.write		= spi_aai_write,
 		.read		= spi_chip_read, /* Fast read (0x0B) supported */
 		.voltage	= {1650, 1950},
diff --git a/flashchips.h b/flashchips.h
index 6db6b74..af0648a 100644
--- a/flashchips.h
+++ b/flashchips.h
@@ -575,6 +575,7 @@
 #define SST_SST25WF010		0x2502
 #define SST_SST25WF020		0x2503
 #define SST_SST25WF040		0x2504
+#define SST_SST25WF080		0x2505
 #define SST_SST25VF512A_REMS	0x48	/* REMS or RES opcode */
 #define SST_SST25VF010_REMS	0x49	/* REMS or RES opcode */
 #define SST_SST25VF020_REMS	0x43	/* REMS or RES opcode */