Hi,<br><br>I've updated the .probe_timing structs in flashchips.c with the correct timing information from the data sheets.<br><br>find below a diff against flashrom-0.9.0-r701.<br><br>Note: for chips that specified no timing information ,I've put a TIMING_ZERO with a comment saying /* Datasheet has no timing info specified */<br>
<br><br>Index: flashchips.c<br>===================================================================<br>--- flashchips.c (revision 701)<br>+++ flashchips.c (working copy)<br>@@ -58,7 +58,7 @@<br> .page_size = 16 * 1024,<br>
.tested = TEST_OK_PREW,<br> .probe = probe_29f040b,<br>- .probe_timing = TIMING_FIXME,<br>+ .probe_timing = TIMING_ZERO,<br> .erase = erase_29f040b,<br> .write = write_pm29f002,<br>
.read = read_memmapped,<br>@@ -74,7 +74,7 @@<br> .page_size = 256,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>
+ .probe_timing = TIMING_ZERO, <br> .erase = erase_chip_jedec,<br> .write = write_en29f002a,<br> .read = read_memmapped,<br>@@ -90,7 +90,7 @@<br> .page_size = 256,<br>
.tested = TEST_OK_PREW,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, <br> .erase = erase_chip_jedec,<br>
.write = write_en29f002a,<br> .read = read_memmapped,<br>@@ -138,7 +138,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>
- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, <br> .erase = erase_29f040b,<br> .write = write_29f040b,<br> .read = read_memmapped,<br>
@@ -668,7 +668,7 @@<br>
.page_size = 64,<br> .tested = TEST_OK_PREW,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br>
.erase = erase_chip_jedec,<br> .write = write_49f002,<br> .read = read_memmapped,<br>@@ -684,7 +684,7 @@<br> .page_size = 256,<br> .tested = TEST_UNTESTED,<br>
.probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, /* doc1008.pdf dont says anything about probe timing */<br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br>
.erase = erase_chip_jedec,<br> .write = write_49f002,<br> .read = read_memmapped,<br>@@ -700,7 +700,7 @@<br> .page_size = 256,<br> .tested = TEST_OK_PREW,<br>
.probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, /* doc1008.pdf dont says anything about probe timing */<br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br>
.erase = erase_chip_jedec,<br> .write = write_49f002,<br> .read = read_memmapped,<br>@@ -780,7 +780,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_OK_PREW,<br>
.probe = probe_49fl00x,<br>- .probe_timing = TIMING_FIXME, /* routine is wrapper to probe_jedec (pm49fl00x.c) */<br>+ .probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */<br>
.erase = erase_49fl00x,<br> .write = write_49fl00x,<br> .read = read_memmapped,<br>@@ -796,7 +796,7 @@<br> .page_size = 4096,<br> .tested = TEST_UNTESTED,<br>
.probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br> .erase = erase_chip_jedec,<br>
.write = write_49f002,<br> .read = read_memmapped,<br>@@ -1068,7 +1068,7 @@<br> .page_size = 256,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>
- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ <br> .erase = erase_chip_jedec,<br> .write = write_en29f002a,<br>
.read = read_memmapped,<br>@@ -1084,7 +1084,7 @@<br> .page_size = 256,<br> .tested = TEST_OK_PREW,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br> .erase = erase_chip_jedec,<br> .write = write_en29f002a,<br> .read = read_memmapped,<br>
@@ -1100,7 +1100,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ <br>
.erase = NULL,<br> .write = NULL,<br> .read = read_memmapped,<br>@@ -1116,7 +1116,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>
- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ <br> .erase = NULL,<br> .write = NULL,<br> .read = read_memmapped,<br>
@@ -1164,7 +1164,7 @@<br> .page_size = 128 * 1024, /* 8k + 2x4k + 112k */<br> .tested = TEST_BAD_ERASE|TEST_BAD_WRITE,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ <br> .erase = NULL,<br> .write = NULL,<br> .read = read_memmapped,<br>@@ -1180,7 +1180,7 @@<br>
.page_size = 128 * 1024, /* 112k + 2x4k + 8k */<br> .tested = TEST_OK_PR|TEST_BAD_ERASE|TEST_BAD_WRITE,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ <br> .erase = NULL,<br> .write = NULL,<br> .read = read_memmapped,<br>@@ -1692,7 +1692,7 @@<br>
.page_size = 4096,<br> .tested = TEST_OK_PREW,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br>
.erase = erase_chip_jedec,<br> .write = write_49f002,<br> .read = read_memmapped,<br>@@ -1916,7 +1916,7 @@<br> .page_size = 128,<br> .tested = TEST_OK_PREW,<br>
.probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = 10,<br> .erase = erase_chip_jedec,<br> .write = write_jedec,<br> .read = read_memmapped,<br>
@@ -2076,7 +2076,7 @@<br> .page_size = 16 * 1024,<br> .tested = TEST_OK_PREW,<br> .probe = probe_sst_fwhub,<br>- .probe_timing = TIMING_FIXME, /* routine is wrapper to probe_jedec (sst_fwhub.c) */<br>
+ .probe_timing = 1, /* 150 ns | routine is wrapper to probe_jedec (sst_fwhub.c) */<br> .erase = erase_sst_fwhub,<br> .write = write_sst_fwhub,<br> .read = read_memmapped,<br>
@@ -2092,7 +2092,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_OK_PROBE,<br> .probe = probe_sst_fwhub,<br>- .probe_timing = TIMING_FIXME, /* routine is wrapper to probe_jedec (sst_fwhub.c) */<br>
+ .probe_timing = 1, /* 150 ns | routine is wrapper to probe_jedec (sst_fwhub.c) */<br> .erase = erase_sst_fwhub,<br> .write = write_sst_fwhub,<br> .read = read_memmapped,<br>
@@ -2108,7 +2108,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_OK_PREW,<br> .probe = probe_sst_fwhub,<br>- .probe_timing = TIMING_FIXME, /* routine is wrapper to probe_jedec (sst_fwhub.c) */<br>
+ .probe_timing = 1, /* 150 ns | routine is wrapper to probe_jedec (sst_fwhub.c) */<br> .erase = erase_sst_fwhub,<br> .write = write_sst_fwhub,<br> .read = read_memmapped,<br>
@@ -2140,7 +2140,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_OK_PREW,<br> .probe = probe_sst_fwhub,<br>- .probe_timing = TIMING_FIXME, /* routine is wrapper to probe_jedec (sst_fwhub.c) */<br>
+ .probe_timing = 1, /* 150 ns | routine is wrapper to probe_jedec (sst_fwhub.c) */<br> .erase = erase_sst_fwhub,<br> .write = write_sst_fwhub,<br> .read = read_memmapped,<br>
@@ -2236,7 +2236,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_OK_PREW,<br> .probe = probe_sst_fwhub,<br>- .probe_timing = TIMING_FIXME, /* routine is wrapper to probe_jedec (sst_fwhub.c) */<br>
+ .probe_timing = 1, /* 150ns | routine is wrapper to probe_jedec (sst_fwhub.c) */<br> .erase = erase_sst_fwhub,<br> .write = write_sst_fwhub,<br> .read = read_memmapped,<br>
@@ -2482,7 +2482,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br>
.erase = erase_m29f002,<br> .write = write_m29f002b,<br> .read = read_memmapped,<br>@@ -2498,7 +2498,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_OK_PREW,<br>
.probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br> .erase = erase_m29f002,<br>
.write = write_m29f002t,<br>
.read = read_memmapped,<br>@@ -2546,7 +2546,7 @@<br> .page_size = 16 * 1024,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ <br> .erase = erase_chip_jedec,<br> .write = write_jedec,<br> .read = read_memmapped,<br>
@@ -2562,7 +2562,7 @@<br>
.page_size = 64 * 1024,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br>
.erase = erase_chip_jedec,<br> .write = write_jedec,<br> .read = read_memmapped,<br>@@ -2706,7 +2706,7 @@<br> .page_size = 64 * 1024,<br> .tested = TEST_UNTESTED,<br>
.probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br> .erase = erase_chip_jedec,<br>
.write = write_jedec,<br> .read = read_memmapped,<br>@@ -2722,7 +2722,7 @@<br> .page_size = 128,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>
- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br> .erase = erase_chip_jedec,<br> .write = write_49f002,<br>
.read = read_memmapped,<br>@@ -2738,7 +2738,7 @@<br> .page_size = 128,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>
+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br> .erase = erase_chip_jedec,<br> .write = write_49f002,<br> .read = read_memmapped,<br>
@@ -2754,7 +2754,7 @@<br>
.page_size = 128,<br> .tested = TEST_OK_PREW,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ <br>
.erase = erase_chip_jedec,<br> .write = write_49f002,<br> .read = read_memmapped,<br>@@ -2770,7 +2770,7 @@<br> .page_size = 128,<br> .tested = TEST_UNTESTED,<br>
.probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, <br> .erase = erase_chip_jedec,<br> .write = write_49f002,<br>
.read = read_memmapped,<br>
@@ -2786,7 +2786,7 @@<br> .page_size = 16384, /* Non-uniform sectors */<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br>
.erase = NULL,<br> .write = NULL,<br> .read = read_memmapped,<br>@@ -2802,7 +2802,7 @@<br> .page_size = 16384, /* Non-uniform sectors */<br> .tested = TEST_UNTESTED,<br>
.probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */<br> .erase = NULL,<br> .write = NULL,<br>
.read = read_memmapped,<br>@@ -2898,7 +2898,7 @@<br> .page_size = 128,<br> .tested = TEST_OK_PREW,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>
+ .probe_timing = 10, /* used datasheet for the W29C011A */<br> .erase = erase_chip_jedec,<br> .write = write_jedec,<br> .read = read_memmapped,<br>@@ -3042,7 +3042,7 @@<br>
.page_size = 128,<br> .tested = TEST_OK_PREW,<br> .probe = probe_jedec,<br>- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = 10, <br> .erase = erase_chip_jedec,<br>
.write = write_49f002,<br> .read = read_memmapped,<br>@@ -3074,7 +3074,7 @@<br> .page_size = 128,<br> .tested = TEST_UNTESTED,<br> .probe = probe_jedec,<br>
- .probe_timing = TIMING_FIXME, <br>+ .probe_timing = 10, <br> .erase = erase_chip_jedec,<br> .write = write_49f002,<br> .read = read_memmapped,<br><br clear="all">
<br><br><pre style="font-family: georgia,serif;"><font size="2">Signed-off-by: Udu Ogah <<a href="mailto:putlinuxonit@gmail.com">putlinuxonit@gmail.com</a>></font></pre><br>