On 14.01.2010 08:45, Sean Nelson wrote:
Convert chips to block_erasers: SyncMOS S29C31004T SyncMOS S29C51001T SyncMOS S29C51002T SyncMOS S29C51004T TI TMS29F002RT TI TMS29F002RB
Signed-off-by: Sean Nelson audiohacked@gmail.com
diff --git a/flashchips.c b/flashchips.c index 8e90d2a..2103874 100644 --- a/flashchips.c +++ b/flashchips.c @@ -4415,15 +4415,28 @@ struct flashchip flashchips[] = { .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, 496},
{16 * 1024, 1},
My data sheet says the layout is uniform 1k sectors. The boot block is just about locking, not eraseblock size.
},
.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",
@@ -4431,31 +4444,57 @@ struct flashchip flashchips[] = { .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, 240},
{8 * 1024, 1},
Uniform 512 byte sectors. Boot block is just about locking.
},
.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,
.probe = probe_jedec, .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */.tested = TEST_OK_PRW,
.erase = erase_chip_jedec,
.erase = NULL,
.block_erasers =
{
{
.eraseblocks = {
{512, 480},
{16 * 1024, 1},
512 x 512. See above.
},
.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",
@@ -4463,15 +4502,28 @@ struct flashchip flashchips[] = { .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},
{16 * 1024, 1},
Uniform sectors again.
},
.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",
@@ -4480,14 +4532,29 @@ struct flashchip flashchips[] = { .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",
@@ -4496,14 +4563,29 @@ struct flashchip flashchips[] = { .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",
Looks good otherwise.
Regards, Carl-Daniel