This SPI Flash is 64 MBytes, and therefore needs 4-byte-address commands.
Signed-off-by: Mark Marshall mark.marshall@omicron.at --- flashchips.c | 29 +++++++++++++++++++++++++++++ flashchips.h | 1 + 2 files changed, 30 insertions(+)
diff --git a/flashchips.c b/flashchips.c index 16726ad..a7e6d8b 100644 --- a/flashchips.c +++ b/flashchips.c @@ -7246,6 +7246,35 @@ const struct flashchip flashchips[] = { },
{ + .vendor = "Spansion", + .name = "S25FL512S", + .bustype = BUS_SPI, + .manufacture_id = SPANSION_ID, + .model_id = SPANSION_S25FL512S, + .total_size = 65536, + .page_size = 512, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_UNTESTED, + .probe = probe_spi_rdid, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {256 * 1024, 256} }, + .block_erase = spi_block_erase_dc, + }, { + .eraseblocks = { {64 * 1024 * 1024, 1} }, + .block_erase = spi_block_erase_c7, + } + }, + .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ + .unlock = spi_disable_blockprotect, + .write = spi_chip_write_256, + .read = spi_chip_read, + .voltage = {2700, 3600}, + }, + + { .vendor = "SST", .name = "SST25LF040A", .bustype = BUS_SPI, diff --git a/flashchips.h b/flashchips.h index 4eebc95..343e537 100644 --- a/flashchips.h +++ b/flashchips.h @@ -498,6 +498,7 @@ #define SPANSION_S25FL016A 0x0214 #define SPANSION_S25FL032A 0x0215 /* Same as S25FL032P, but the latter supports EDI and CFI */ #define SPANSION_S25FL064A 0x0216 /* Same as S25FL064P, but the latter supports EDI and CFI */ +#define SPANSION_S25FL512S 0x0220
/* * SST25 chips are SPI, first byte of device ID is memory type, second