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>