Savva Mitrofanov has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/63345 )
Change subject: flashchips: Add AT45DB641E ......................................................................
flashchips: Add AT45DB641E
Also use EDI(Extended Device Information) to differentiate AT45DB641E and AT45DB642D. I have successfully tested it with CH341A-programmer.
Signed-off-by: Savva Mitrofanov sk.mitrofanov@ispras.ru Change-Id: I56843b02bee74918a5131326627941ea82003f1f --- M flashchips.c M flashchips.h 2 files changed, 44 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/45/63345/1
diff --git a/flashchips.c b/flashchips.c index acb7718..4626f5c 100644 --- a/flashchips.c +++ b/flashchips.c @@ -3136,6 +3136,48 @@
{ .vendor = "Atmel", + .name = "AT45DB641E", + .bustype = BUS_SPI, + .manufacture_id = ATMEL_ID, + .model_id = ATMEL_AT45DB641E, + .total_size = 8192, /* or 8448, determined from status register */ + .page_size = 256, /* or 264, determined from status register */ + /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ + /* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */ + .feature_bits = FEATURE_OTP, + .tested = TEST_OK_PREW, + .probe = probe_spi_at45db, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {256, 32768} }, + .block_erase = spi_erase_at45db_page, + }, { + .eraseblocks = { {8 * 256, 32768/8} }, + .block_erase = spi_erase_at45db_block, + }, { + .eraseblocks = { + {8 * 256, 1}, + {1016 * 256, 1}, + {1024 * 256, 31}, + }, + .block_erase = spi_erase_at45db_sector + }, { + .eraseblocks = { {8192 * 1024, 1} }, + .block_erase = spi_erase_at45db_chip, + } + }, + .printlock = spi_prettyprint_status_register_at45db, + .unlock = spi_disable_blockprotect_at45db, /* Impossible if locked down or #WP is low */ + /* granularity will be set by the probing function. */ + .write = spi_write_at45db, + .read = spi_read_at45db, /* Fast read (0x0B) supported */ + .voltage = {1700, 3600}, + }, + + { + .vendor = "Atmel", .name = "AT49(H)F010", .bustype = BUS_PARALLEL, .manufacture_id = ATMEL_ID, diff --git a/flashchips.h b/flashchips.h index ba97719..654b973 100644 --- a/flashchips.h +++ b/flashchips.h @@ -193,7 +193,8 @@ #define ATMEL_AT45DB321E /* same as above but with EDI 0x0100 */ #define ATMEL_AT45DB321D 0x2701 /* Buggy data sheet */ #define ATMEL_AT45DB642 /* No ID (opcode) available for AT45DB642 */ -#define ATMEL_AT45DB642D 0x2800 +#define ATMEL_AT45DB642D 0x280000 +#define ATMEL_AT45DB641E 0x280001 #define ATMEL_AT49BV512 0x03 /* Same as AT49F512 */ #define ATMEL_AT49F001N 0x05 /* Same as AT49F001 */ #define ATMEL_AT49F001NT 0x04 /* Same as AT49F001T */