After asking if page_size was equivalent to a chip's sector size, while
I was verifying datasheets and our flashchip support table, Carl-Daniel
suggested I convert all chips to use struct eraseblock. Starting from
the top of the file and working down, this is the first of many patches.
Signed-off-by: Sean Nelson <[email protected]>
Index: flashchips.c
===================================================================
--- flashchips.c (revision 809)
+++ flashchips.c (working copy)
@@ -64,7 +64,17 @@
.tested = TEST_OK_PREW,
.probe = probe_29f040b,
.probe_timing = TIMING_ZERO,
- .erase = erase_29f040b,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {16 * 1024, 8} },
+ .block_erase = erase_sector_29f040b,
+ }, {
+ .eraseblocks = { {128 * 1024, 1} },
+ .block_erase = erase_29f040b,
+ },
+ },
.write = write_pm29f002,
.read = read_memmapped,
},
@@ -80,7 +90,22 @@
.tested = TEST_UNTESTED,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO,
- .erase = erase_chip_jedec,
+ .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 = NULL,
+ },
+ },
.write = write_jedec_1,
.read = read_memmapped,
},
@@ -96,7 +121,22 @@
.tested = TEST_OK_PRE,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO,
- .erase = erase_chip_jedec,
+ .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 = NULL,
+ },
+ },
.write = write_jedec_1,
.read = read_memmapped,
},
@@ -112,7 +152,17 @@
.tested = TEST_UNTESTED,
.probe = probe_29f040b,
.probe_timing = TIMING_IGNORED, /* routine don't use
probe_timing (am29f040b.c) */
- .erase = erase_29f040b,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64*1024, 32} },
+ .block_erase = erase_sector_29f040b,
+ }, {
+ .eraseblocks = { {2048*1024, 1} }
+ .block_erase = erase_29f040b,
+ },
+ },
.write = write_29f040b,
.read = read_memmapped,
},
@@ -128,7 +178,17 @@
.tested = TEST_OK_PREW,
.probe = probe_29f040b,
.probe_timing = TIMING_IGNORED, /* routine don't use
probe_timing (am29f040b.c) */
- .erase = erase_29f040b,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64*1024, 8} },
+ .block_erase = erase_sector_29f040b,
+ }, {
+ .eraseblocks = { {512*1024, 1} }
+ .block_erase = erase_29f040b,
+ },
+ },
.write = write_29f040b,
.read = read_memmapped,
},
@@ -144,7 +204,17 @@
.tested = TEST_UNTESTED,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO,
- .erase = erase_29f040b,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64*1024, 16} },
+ .block_erase = erase_sector_29f040b,
+ }, {
+ .eraseblocks = { {1024*1024, 1} }
+ .block_erase = erase_29f040b,
+ },
+ },
.write = write_29f040b,
.read = read_memmapped,
},
@@ -160,7 +230,17 @@
.tested = TEST_UNTESTED,
.probe = probe_29f040b,
.probe_timing = TIMING_IGNORED, /* routine don't use
probe_timing (am29f040b.c) */
- .erase = erase_29f040b,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64*1024, 8} },
+ .block_erase = erase_sector_29f040b,
+ }, {
+ .eraseblocks = { {512*1024, 1} }
+ .block_erase = erase_29f040b,
+ },
+ },
.write = write_29f040b,
.read = read_memmapped,
},
@@ -176,7 +256,17 @@
.tested = TEST_UNTESTED,
.probe = probe_29f040b,
.probe_timing = TIMING_IGNORED, /* routine don't use
probe_timing (am29f040b.c) */
- .erase = erase_29f040b,
+ .erase = NULL,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64*1024, 16} },
+ .block_erase = erase_sector_29f040b,
+ }, {
+ .eraseblocks = { {1024*1024, 1} }
+ .block_erase = erase_29f040b,
+ },
+ },
.write = write_29f040b,
.read = read_memmapped,
},
_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom