Convert chips to block_erasers:

SyncMOS S29C31004T
SyncMOS S29C51001T
SyncMOS S29C51002T
SyncMOS S29C51004T
TI TMS29F002RT
TI TMS29F002RB

SyncMOS chips have Uniform sector; boot blocks on chips are made up of uniform sectors but have locking.

Signed-off-by: Sean Nelson <[email protected]>


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,
_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to