summaryrefslogtreecommitdiff
path: root/flashchips.c
diff options
context:
space:
mode:
authorstefanct <stefanct@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2015-11-22 02:23:31 +0000
committerstefanct <stefanct@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2015-11-22 02:23:31 +0000
commitbae59c9b0efaa24c778533c9c18b68faa0a0c53e (patch)
treea3b5a06e4e58d208ecf22c956cd8c160b4d52ebc /flashchips.c
parentc3a2b29bea0e161ee8c45b8dfec86dce33dae824 (diff)
downloadflashrom-bae59c9b0efaa24c778533c9c18b68faa0a0c53e.tar.gz
Add support for SST SST25WF020A, SST25WF040B, SST25WF080B.
Apart from the strange ID (using Sanyo's vendor ID 0x62) the main difference from the plain SST25WF series is that they lack op codes 0xAD (AAI Word program) and 0x52 (32K erase). The smallest version does not support dual I/O operations either. SST25WF080B was tested under Linux with spidev. Tested-by: Ben Gardner <bgardner@wabtec.com> Signed-off-by: Ben Gardner <bgardner@wabtec.com> Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@1901 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'flashchips.c')
-rw-r--r--flashchips.c105
1 files changed, 105 insertions, 0 deletions
diff --git a/flashchips.c b/flashchips.c
index 574ad74..908b8a9 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -11857,6 +11857,111 @@ const struct flashchip flashchips[] = {
{
.vendor = "SST",
+ .name = "SST25WF020A",
+ .bustype = BUS_SPI,
+ .manufacture_id = SANYO_ID, /* See flashchips.h */
+ .model_id = SST_SST25WF020A,
+ .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 = { {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_bp2_tb_bpl,
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {1650, 1950},
+ },
+
+ {
+ .vendor = "SST",
+ .name = "SST25WF040B",
+ .bustype = BUS_SPI,
+ .manufacture_id = SANYO_ID, /* See flashchips.h */
+ .model_id = SST_SST25WF040B,
+ .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 = { {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_bp2_tb_bpl,
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B), dual O (0x3B), dual I/O read (0xBB) supported */
+ .voltage = {1650, 1950},
+ },
+
+ {
+ .vendor = "SST",
+ .name = "SST25WF080B",
+ .bustype = BUS_SPI,
+ .manufacture_id = SANYO_ID, /* See flashchips.h */
+ .model_id = SST_SST25WF080B,
+ .total_size = 1024,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .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 = { {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_bp2_tb_bpl,
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B), dual O (0x3B), dual I/O read (0xBB) supported */
+ .voltage = {1650, 1950},
+ },
+
+ {
+ .vendor = "SST",
.name = "SST25VF080B",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,