diff --git a/flashchips.c b/flashchips.c index 0803dd0..83f108c 100644 --- a/flashchips.c +++ b/flashchips.c @@ -4627,99 +4627,169 @@ struct flashchip flashchips[] = { .name = "S29C31004T", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = SYNCMOS_ID, .model_id = S29C31004T, .total_size = 512, .page_size = 128, .tested = TEST_UNTESTED, .probe = probe_jedec, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ - .erase = erase_chip_jedec, + .erase = NULL, + .block_erasers = + { + { + .eraseblocks = { {1 * 1024, 512} }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, .write = write_49f002, .read = read_memmapped, }, { .vendor = "SyncMOS", .name = "S29C51001T", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = SYNCMOS_ID, .model_id = S29C51001T, .total_size = 128, .page_size = 128, .tested = TEST_UNTESTED, .probe = probe_jedec, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ - .erase = erase_chip_jedec, + .erase = NULL, + .block_erasers = + { + { + .eraseblocks = { {512, 256} }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {128 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, .write = write_49f002, .read = read_memmapped, }, { .vendor = "SyncMOS", .name = "S29C51002T", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = SYNCMOS_ID, .model_id = S29C51002T, .total_size = 256, .page_size = 128, - .tested = TEST_OK_PREW, + .tested = TEST_OK_PRW, .probe = probe_jedec, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ - .erase = erase_chip_jedec, + .erase = NULL, + .block_erasers = + { + { + .eraseblocks = { {512, 512} }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {256 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, .write = write_49f002, .read = read_memmapped, }, { .vendor = "SyncMOS", .name = "S29C51004T", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = SYNCMOS_ID, .model_id = S29C51004T, .total_size = 512, .page_size = 128, .tested = TEST_UNTESTED, .probe = probe_jedec, .probe_timing = TIMING_ZERO, - .erase = erase_chip_jedec, + .erase = NULL, + .block_erasers = + { + { + .eraseblocks = { {1 * 1024, 496} }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, .write = write_49f002, .read = read_memmapped, }, { .vendor = "TI", .name = "TMS29F002RB", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = TI_OLD_ID, .model_id = TI_TMS29F002RB, .total_size = 256, .page_size = 16384, /* Non-uniform sectors */ .tested = TEST_UNTESTED, .probe = probe_jedec, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .erase = NULL, + .block_erasers = + { + { + .eraseblocks = { + {16 * 1024, 1}, + {8 * 1024, 2}, + {32 * 1024, 1}, + {64 * 1024, 3}, + }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {256 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, .write = NULL, .read = read_memmapped, }, { .vendor = "TI", .name = "TMS29F002RT", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = TI_OLD_ID, .model_id = TI_TMS29F002RT, .total_size = 256, .page_size = 16384, /* Non-uniform sectors */ .tested = TEST_UNTESTED, .probe = probe_jedec, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .erase = NULL, + .block_erasers = + { + { + .eraseblocks = { + {64 * 1024, 3}, + {32 * 1024, 1}, + {8 * 1024, 2}, + {16 * 1024, 1}, + }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {256 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, .write = NULL, .read = read_memmapped, }, { .vendor = "Winbond", .name = "W25x10", .bustype = CHIP_BUSTYPE_SPI, .manufacture_id = WINBOND_NEX_ID,