From f2cd32570eb8624c60e97aecd5c9045249b376fe Mon Sep 17 00:00:00 2001 From: Angel Pons Date: Sun, 30 Sep 2018 19:03:45 +0200 Subject: [PATCH] flashchips: Add Sanyo LE25FU206/A and LE25FU106B As per user `The_Raven Raven` on the mailing list. Since the added values had some inconsistencies, the chips are marked as untested. Change-Id: I6c26aafdca232110986334e85297d73d513600dc Signed-off-by: Angel Pons Reviewed-on: https://review.coreboot.org/28813 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- flashchips.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ flashchips.h | 3 ++ 2 files changed, 103 insertions(+) diff --git a/flashchips.c b/flashchips.c index d2a8d77ad..d85ea7423 100644 --- a/flashchips.c +++ b/flashchips.c @@ -11879,6 +11879,106 @@ const struct flashchip flashchips[] = { .voltage = {2700, 3600}, }, + { + .vendor = "Sanyo", + .name = "LE25FU106B", + .bustype = BUS_SPI, + .manufacture_id = SANYO_ID, + .model_id = SANYO_LE25FU106B, + .total_size = 128, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_UNTESTED, + .probe = probe_spi_res2, + .probe_timing = TIMING_ZERO, + .block_erasers = { + /* FIXME: Is this correct? + { + .eraseblocks = { {2 * 1024, 64} }, + .block_erase = spi_block_erase_d7, + },*/ + { + .eraseblocks = { {32 * 1024, 4} }, + .block_erase = spi_block_erase_d8, + }, { + .eraseblocks = { {128 * 1024, 1} }, + .block_erase = spi_block_erase_c7, + } + }, + .printlock = spi_prettyprint_status_register_bp1_srwd, + .unlock = spi_disable_blockprotect_bp1_srwd, + .write = spi_chip_write_256, + .read = spi_chip_read, + .voltage = {2300, 3600}, + }, + + { + .vendor = "Sanyo", + .name = "LE25FU206", + .bustype = BUS_SPI, + .manufacture_id = SANYO_ID, + .model_id = SANYO_LE25FU206, + .total_size = 256, + .page_size = 256, + .feature_bits = FEATURE_WRSR_WREN, + .tested = TEST_UNTESTED, + .probe = probe_spi_res2, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 64} }, + .block_erase = spi_block_erase_d7, + }, { + .eraseblocks = { {64 * 1024, 4} }, + .block_erase = spi_block_erase_d8, + }, { + .eraseblocks = { {256 * 1024, 1} }, + .block_erase = spi_block_erase_c7, + } + }, + .printlock = spi_prettyprint_status_register_bp1_srwd, + .unlock = spi_disable_blockprotect_bp1_srwd, + .write = spi_chip_write_256, + .read = spi_chip_read, + .voltage = {2300, 3600}, + }, + + { + .vendor = "Sanyo", + .name = "LE25FU206A", + .bustype = BUS_SPI, + .manufacture_id = SANYO_ID, + .model_id = SANYO_LE25FU206A, + .total_size = 256, + .page_size = 256, + .tested = TEST_UNTESTED, + .probe = probe_spi_rdid, + .probe_timing = TIMING_ZERO, + .block_erasers = { + { + .eraseblocks = { {4 * 1024, 64} }, + .block_erase = spi_block_erase_20, + }, { + .eraseblocks = { {4 * 1024, 64} }, + .block_erase = spi_block_erase_d7, + }, { + .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_srwd, + .unlock = spi_disable_blockprotect, /* #WP pin write-protects SRWP bit. */ + .write = spi_chip_write_256, + .read = spi_chip_read, + .voltage = {2300, 3600}, + }, + { .vendor = "Sanyo", .name = "LE25FU406B", diff --git a/flashchips.h b/flashchips.h index 434c355a0..a1b38e0ed 100644 --- a/flashchips.h +++ b/flashchips.h @@ -612,6 +612,9 @@ #define SANYO_LE25FW406 0x07 /* RES2 */ #define SANYO_LE25FW418A 0x10 /* RES2 and some weird 1 byte RDID variant */ #define SANYO_LE25FW406A 0x1A /* RES2, no datasheet */ +#define SANYO_LE25FU106B 0x1D +#define SANYO_LE25FU206 0x44 +#define SANYO_LE25FU206A 0x0612 #define SANYO_LE25FU406B 0x1E /* LE25FW418A without HD_READ mode option variant */ #define SANYO_LE25FU406C 0x0613 /* Also known as LE25U40CMC apparently */ #define SANYO_LE25FW806 0x26 /* RES2 and some weird 1 byte RDID variant */