Message ID | AM5PR0602MB29801081FB7B1B5579905A2EB8FE0@AM5PR0602MB2980.eurprd06.prod.outlook.com |
---|---|
State | New |
Headers | show |
Series | Adding support for "MX25U8032E" | expand |
Hi again In the mean time i found a LE25FU206A chip and modified the patch to support both chips. So with this patch LE25FU206 and LE25FU206A are supported. Unfortunately i have not found any datasheet for 206A. So it's only guessing that the 206A is the same as 206. I tested the 206A and it works. Maybe someone has a datasheet and can verify the patch? I have both chips and can test it. Greets diff -rupN flashrom-1.0-clean/flashchips.c flashrom-1.0-dev/flashchips.c --- flashrom-1.0-clean/flashchips.c 2017-06-05 17:42:16.000000000 +0200 +++ flashrom-1.0-dev/flashchips.c 2018-06-07 09:01:08.733516689 +0200 @@ -11055,6 +11055,68 @@ const struct flashchip flashchips[] = { .voltage = {2700, 3600}, }, +{ + .vendor = "Sanyo", + .name = "LE25FU206", + .bustype = BUS_SPI, + .manufacture_id = SANYO_ID, + .model_id = SANYO_LE25FU206, + .total_size = 256, + .page_size = 256, + .tested = TEST_OK_PREW, + .probe = probe_spi_rdid, + .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_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 = "LE25FU206A", + .bustype = BUS_SPI, + .manufacture_id = SANYO_ID, + .model_id = SANYO_LE25FU206A, + .total_size = 256, + .page_size = 256, + .tested = TEST_OK_PREW, + .probe = probe_spi_rdid, + .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_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 -rupN flashrom-1.0-clean/flashchips.h flashrom-1.0-dev/flashchips.h --- flashrom-1.0-clean/flashchips.h 2017-11-04 17:07:23.000000000 +0100 +++ flashrom-1.0-dev/flashchips.h 2018-06-07 09:01:09.725497601 +0200 @@ -598,6 +598,8 @@ #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_LE25FU206 0x4462 +#define SANYO_LE25FU206A 0x612 #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 */
--- flashrom-1.0/flashchips.c 2017-06-05 17:42:16.000000000 +0200 +++ flashrom-1.0_Dev/flashchips.c 2018-02-05 15:05:17.154636667 +0100 @@ -8045,6 +8045,47 @@ const struct flashchip flashchips[] = { { .vendor = "Macronix", + .name = "MX25U8032E", + .bustype = BUS_SPI, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX25U8032E, + .total_size = 1024, + .page_size = 256, + /* OTP: 512B total; enter 0xB1, exit 0xC1 */ + /* QPI enable 0x35, disable 0xF5 (0xFF et al. work too) */ + .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, + .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 = { {32 * 1024, 32} }, + .block_erase = spi_block_erase_52, + }, { + .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, + } + }, + /* TODO: security register */ + .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */ + .unlock = spi_disable_blockprotect_bp3_srwd, + .write = spi_chip_write_256, + .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ + .voltage = {1650, 2000}, + }, + + { + .vendor = "Macronix", .name = "MX25U1635E", .bustype = BUS_SPI, .manufacture_id = MACRONIX_ID, --- flashrom-1.0/flashchips.h 2017-11-04 17:07:23.000000000 +0100 +++ flashrom-1.0_Dev/flashchips.h 2018-02-05 15:02:57.717472878 +0100 @@ -482,6 +482,7 @@ #define MACRONIX_MX25L25635F 0x2019 /* Same as MX25L25639F, but the latter seems to not support REMS */ #define MACRONIX_MX25L1635D 0x2415 #define MACRONIX_MX25L1635E 0x2515 /* MX25L1635{E} */ +#define MACRONIX_MX25U8032E 0x2534 #define MACRONIX_MX25U1635E 0x2535 #define MACRONIX_MX25U3235E 0x2536 /* Same as MX25U6435F */ #define MACRONIX_MX25U6435E 0x2537 /* Same as MX25U6435F */