summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolay Nikolaev <evrinoma@gmail.com>2013-06-28 21:28:49 +0000
committerStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>2013-06-28 21:28:49 +0000
commit384de8e7450fc705820ae24419d208e95eddf974 (patch)
treeca0f37787e7dd7a60b8fe59c1f8432da2a15f9f5
parentb6b00e99aac373176e612c79b4579c9e577bd2ed (diff)
downloadast2050-flashrom-384de8e7450fc705820ae24419d208e95eddf974.zip
ast2050-flashrom-384de8e7450fc705820ae24419d208e95eddf974.tar.gz
Add support for all Sanyo LE25FW chips
Add... - Sanyo LE25FW403A - Sanyo LE25FW418A - Sanyo LE25FW806 - Sanyo LE25FW808 Also, fix wrong description of Sanyo LE25FW203A. Corresponding to flashrom svn r1684. Signed-off-by: Nikolay Nikolaev <evrinoma@gmail.com> Reviewed-by: Steven Zakulec <spzakulec@gmail.com> Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
-rw-r--r--flashchips.c142
-rw-r--r--flashchips.h5
2 files changed, 141 insertions, 6 deletions
diff --git a/flashchips.c b/flashchips.c
index 7532618..2212a95 100644
--- a/flashchips.c
+++ b/flashchips.c
@@ -7431,11 +7431,11 @@ const struct flashchip flashchips[] = {
{
.vendor = "Sanyo",
- .name = "LF25FW203A",
+ .name = "LE25FW203A",
.bustype = BUS_SPI,
.manufacture_id = SANYO_ID,
.model_id = SANYO_LE25FW203A,
- .total_size = 2048,
+ .total_size = 256,
.page_size = 256,
.tested = TEST_UNTESTED,
.probe = probe_spi_rdid,
@@ -7443,17 +7443,147 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 32} },
+ .eraseblocks = { {256, 1024} },
+ .block_erase = spi_block_erase_db,
+ }, {
+ .eraseblocks = { {64 * 1024, 4} },
.block_erase = spi_block_erase_d8,
}, {
- .eraseblocks = { {2 * 1024 * 1024, 1} },
+ .eraseblocks = { {256 * 1024, 1} },
.block_erase = spi_block_erase_c7,
}
},
- .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */
- .unlock = spi_disable_blockprotect,
+ .printlock = spi_prettyprint_status_register_default_welwip,
+ .unlock = NULL, /* #WP pin write-protects lower 64kB. */
.write = spi_chip_write_256,
.read = spi_chip_read,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Sanyo",
+ .name = "LE25FW403A",
+ .bustype = BUS_SPI,
+ .manufacture_id = SANYO_ID,
+ .model_id = SANYO_LE25FW403A,
+ .total_size = 512,
+ .page_size = 256,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {256, 2 * 1024} },
+ .block_erase = spi_block_erase_db,
+ }, {
+ .eraseblocks = { {64 * 1024, 8} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {512 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_default_welwip,
+ .unlock = NULL, /* #WP pin write-protects lower 64kB. */
+ .write = spi_chip_write_256,
+ .read = spi_chip_read,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Sanyo",
+ .name = "LE25FW418A",
+ .bustype = BUS_SPI,
+ .manufacture_id = SANYO_ID,
+ .model_id = SANYO_LE25FW418A,
+ .total_size = 512,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_res2,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {4 * 1024, 128} },
+ .block_erase = spi_block_erase_d7,
+ }, {
+ .eraseblocks = { {64 * 1024, 8} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {512 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_default_bp2,
+ .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* some quad-read supported ("HD_READ mode") */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Sanyo",
+ .name = "LE25FW806",
+ .bustype = BUS_SPI,
+ .manufacture_id = SANYO_ID,
+ .model_id = SANYO_LE25FW806,
+ .total_size = 1024,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_res2,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {4 * 1024, 256} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {4 * 1024, 256} },
+ .block_erase = spi_block_erase_d7,
+ }, {
+ .eraseblocks = { {64 * 1024, 16} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {1024 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_default_bp2,
+ .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */
+ .write = spi_chip_write_256,
+ .read = spi_chip_read,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Sanyo",
+ .name = "LE25FW808",
+ .bustype = BUS_SPI,
+ .manufacture_id = SANYO_ID,
+ .model_id = SANYO_LE25FW808,
+ .total_size = 1024,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_res2,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {8 * 1024, 128} },
+ .block_erase = spi_block_erase_d7,
+ }, {
+ .eraseblocks = { {64 * 1024, 16} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {1024 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_default_bp2,
+ .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* some quad-read supported ("HD_READ mode") */
+ .voltage = {2700, 3600},
},
{
diff --git a/flashchips.h b/flashchips.h
index 4e9b73b..22dde4f 100644
--- a/flashchips.h
+++ b/flashchips.h
@@ -494,6 +494,11 @@
*/
#define SANYO_ID 0x62
#define SANYO_LE25FW203A 0x1600
+#define SANYO_LE25FW403A 0x1100
+#define SANYO_LE25FW406 0x07 /* RES2 */
+#define SANYO_LE25FW418A 0x10 /* RES2 and some weird 1 byte RDID variant */
+#define SANYO_LE25FW806 0x26 /* RES2 and some weird 1 byte RDID variant */
+#define SANYO_LE25FW808 0x20 /* RES2 and some weird 1 byte RDID variant */
#define SHARP_ID 0xB0 /* Sharp */
#define SHARP_LH28F008BJ__PT 0xEC
OpenPOWER on IntegriCloud