From f4e57776eeb9617ccff13895e66a0e11227a3fe3 Mon Sep 17 00:00:00 2001 From: Rudy Host Date: Mon, 29 Nov 2010 00:37:49 +0000 Subject: Add support for Spansion S25FL004A, S25FL032A, and S25FL064A Tested S25FL064A using a Bus Pirate. Corresponding to flashrom svn r1237. Signed-off-by: Rudy Host Acked-by: Carl-Daniel Hailfinger --- flashchips.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ flashchips.h | 3 +++ 2 files changed, 81 insertions(+) diff --git a/flashchips.c b/flashchips.c index 715c054..a9ce4a2 100644 --- a/flashchips.c +++ b/flashchips.c @@ -4767,6 +4767,32 @@ struct flashchip flashchips[] = { { .vendor = "Spansion", + .name = "S25FL004A", + .bustype = CHIP_BUSTYPE_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL004A, + .total_size = 512, + .page_size = 256, + .tested = TEST_UNTESTED, + .probe = probe_spi_rdid, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 8} }, + .block_erase = spi_block_erase_d8, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = spi_block_erase_c7, + } + }, + .unlock = spi_disable_blockprotect, + .write = spi_chip_write_256, + .read = spi_chip_read, + }, + + { + .vendor = "Spansion", .name = "S25FL008A", .bustype = CHIP_BUSTYPE_SPI, .manufacture_id = SPANSION_ID, @@ -4818,6 +4844,58 @@ struct flashchip flashchips[] = { }, { + .vendor = "Spansion", + .name = "S25FL032A", + .bustype = CHIP_BUSTYPE_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL032A, + .total_size = 4096, + .page_size = 256, + .tested = TEST_UNTESTED, + .probe = probe_spi_rdid, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .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, + }, + + { + .vendor = "Spansion", + .name = "S25FL064A", + .bustype = CHIP_BUSTYPE_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL064A, + .total_size = 8192, + .page_size = 256, + .tested = TEST_OK_PREW, + .probe = probe_spi_rdid, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 128} }, + .block_erase = spi_block_erase_d8, + }, { + .eraseblocks = { {8 * 1024 * 1024, 1} }, + .block_erase = spi_block_erase_c7, + } + }, + .unlock = spi_disable_blockprotect, + .write = spi_chip_write_256, + .read = spi_chip_read, + }, + + { .vendor = "SST", .name = "SST25VF016B", .bustype = CHIP_BUSTYPE_SPI, diff --git a/flashchips.h b/flashchips.h index 414d220..6504edf 100644 --- a/flashchips.h +++ b/flashchips.h @@ -445,8 +445,11 @@ * the second device ID byte is memory capacity. */ #define SPANSION_ID 0x01 /* Spansion, same ID as AMD */ +#define SPANSION_S25FL004A 0x0212 #define SPANSION_S25FL008A 0x0213 #define SPANSION_S25FL016A 0x0214 +#define SPANSION_S25FL032A 0x0215 +#define SPANSION_S25FL064A 0x0216 /* * SST25 chips are SPI, first byte of device ID is memory type, second -- cgit v1.1