Add blockwise erase to all supported chips of the SST25 family:
SST25VF040.REMS, SST25VF040B, SST25VF040B.REMS, SST25VF080B,
SST25VF016B, SST25VF032B

Signed-off-by: Carl-Daniel Hailfinger <[email protected]>

Index: flashrom-sst25_partial_erase/flashchips.c
===================================================================
--- flashrom-sst25_partial_erase/flashchips.c   (Revision 807)
+++ flashrom-sst25_partial_erase/flashchips.c   (Arbeitskopie)
@@ -1902,10 +1902,29 @@
                .model_id       = SST_25VF016B,
                .total_size     = 2048,
                .page_size      = 256,
-               .tested         = TEST_OK_PREW,
+               .tested         = TEST_OK_PRW,
                .probe          = probe_spi_rdid,
                .probe_timing   = TIMING_ZERO,
-               .erase          = spi_chip_erase_c7,
+               .erase          = NULL,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 512} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {32 * 1024, 64} },
+                               .block_erase = spi_block_erase_52,
+                       }, {
+                               .eraseblocks = { {64 * 1024, 32} },
+                               .block_erase = spi_block_erase_d8,
+                       }, {
+                               .eraseblocks = { {2 * 1024 * 1024, 1} },
+                               .block_erase = spi_block_erase_60,
+                       }, {
+                               .eraseblocks = { {2 * 1024 * 1024, 1} },
+                               .block_erase = spi_block_erase_c7,
+                       },
+               },
                .write          = spi_chip_write_1,
                .read           = spi_chip_read,
        },
@@ -1918,42 +1937,93 @@
                .model_id       = SST_25VF032B,
                .total_size     = 4096,
                .page_size      = 256,
-               .tested         = TEST_OK_PREW,
+               .tested         = TEST_OK_PRW,
                .probe          = probe_spi_rdid,
                .probe_timing   = TIMING_ZERO,
-               .erase          = spi_chip_erase_c7,
+               .erase          = NULL,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 1024} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {32 * 1024, 128} },
+                               .block_erase = spi_block_erase_52,
+                       }, {
+                               .eraseblocks = { {64 * 1024, 64} },
+                               .block_erase = spi_block_erase_d8,
+                       }, {
+                               .eraseblocks = { {4 * 1024 * 1024, 1} },
+                               .block_erase = spi_block_erase_60,
+                       }, {
+                               .eraseblocks = { {4 * 1024 * 1024, 1} },
+                               .block_erase = spi_block_erase_c7,
+                       },
+               },
                .write          = spi_chip_write_1,
                .read           = spi_chip_read,
        },
 
        {
                .vendor         = "SST",
-               .name           = "SST25VF040B",
+               .name           = "SST25VF040.REMS",
                .bustype        = CHIP_BUSTYPE_SPI,
                .manufacture_id = SST_ID,
-               .model_id       = SST_25VF040B,
+               .model_id       = SST_25VF040_REMS,
                .total_size     = 512,
                .page_size      = 256,
-               .tested         = TEST_UNTESTED,
-               .probe          = probe_spi_rdid,
+               .tested         = TEST_OK_PR,
+               .probe          = probe_spi_rems,
                .probe_timing   = TIMING_ZERO,
-               .erase          = spi_chip_erase_c7,
+               .erase          = NULL,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 128} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {32 * 1024, 16} },
+                               .block_erase = spi_block_erase_52,
+                       }, {
+                               .eraseblocks = { {512 * 1024, 1} },
+                               .block_erase = spi_block_erase_60,
+                       },
+               },
                .write          = spi_chip_write_1,
                .read           = spi_chip_read,
        },
 
        {
                .vendor         = "SST",
-               .name           = "SST25VF040.REMS",
+               .name           = "SST25VF040B",
                .bustype        = CHIP_BUSTYPE_SPI,
                .manufacture_id = SST_ID,
-               .model_id       = SST_25VF040_REMS,
+               .model_id       = SST_25VF040B,
                .total_size     = 512,
-               .page_size      = 64*1024,
-               .tested         = TEST_OK_PR,
-               .probe          = probe_spi_rems,
+               .page_size      = 256,
+               .tested         = TEST_UNTESTED,
+               .probe          = probe_spi_rdid,
                .probe_timing   = TIMING_ZERO,
-               .erase          = spi_chip_erase_60,
+               .erase          = NULL,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 128} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {32 * 1024, 16} },
+                               .block_erase = spi_block_erase_52,
+                       }, {
+                               .eraseblocks = { {64 * 1024, 8} },
+                               .block_erase = spi_block_erase_d8,
+                       }, {
+                               .eraseblocks = { {512 * 1024, 1} },
+                               .block_erase = spi_block_erase_60,
+                       }, {
+                               .eraseblocks = { {512 * 1024, 1} },
+                               .block_erase = spi_block_erase_c7,
+                       },
+               },
                .write          = spi_chip_write_1,
                .read           = spi_chip_read,
        },
@@ -1965,11 +2035,30 @@
                .manufacture_id = SST_ID,
                .model_id       = SST_25VF040B_REMS,
                .total_size     = 512,
-               .page_size      = 64*1024,
+               .page_size      = 256,
                .tested         = TEST_OK_PR,
                .probe          = probe_spi_rems,
                .probe_timing   = TIMING_ZERO,
-               .erase          = spi_chip_erase_c7,
+               .erase          = NULL,
+               .block_erasers  =
+               {
+                       {
+                               .eraseblocks = { {4 * 1024, 128} },
+                               .block_erase = spi_block_erase_20,
+                       }, {
+                               .eraseblocks = { {32 * 1024, 16} },
+                               .block_erase = spi_block_erase_52,
+                       }, {
+                               .eraseblocks = { {64 * 1024, 8} },
+                               .block_erase = spi_block_erase_d8,
+                       }, {
+                               .eraseblocks = { {512 * 1024, 1} },
+                               .block_erase = spi_block_erase_60,
+                       }, {
+                               .eraseblocks = { {512 * 1024, 1} },
+                               .block_erase = spi_block_erase_c7,
+                       },
+               },
                .write          = spi_chip_write_1,
                .read           = spi_chip_read,
        },
@@ -1985,7 +2074,26 @@
                .tested         = TEST_OK_PREW,
                .probe          = probe_spi_rdid,
                .probe_timing   = TIMING_ZERO,
-               .erase          = spi_chip_erase_60_c7,
+               .erase          = NULL,
+               .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,
+                       },
+               },
                .write          = spi_chip_write_1,
                .read           = spi_chip_read,
        },


-- 
Developer quote of the month: 
"We are juggling too many chainsaws and flaming arrows and tigers."


_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to