Use dedicated jede_probe_* functions where needed. The count of functions could be reduced in the future by using the slowest one instead(?).
To mimic previous delay behavior in the jedec_erase_* functions a new feature flag was introduced: FEATURE_SLOW_ERASE_CMDS Also, the feature_bits field was changed from int to uint16_t.
Default make size counterintuitively increases slightly with gcc but shrinks with clang (about 4 kB or 0.75%).
Signed-off-by: Stefan Tauner stefan.tauner@alumni.tuwien.ac.at --- chipdrivers.h | 6 +- flash.h | 26 +-- flashchips.c | 658 +++++++++++----------------------------------------------- jedec.c | 51 ++--- 4 files changed, 162 insertions(+), 579 deletions(-)
diff --git a/chipdrivers.h b/chipdrivers.h index 7fe3202..65f9772 100644 --- a/chipdrivers.h +++ b/chipdrivers.h @@ -138,7 +138,11 @@ int unlock_lh28f008bjt(struct flashctx *flash); uint8_t oddparity(uint8_t val); void toggle_ready_jedec(const struct flashctx *flash, chipaddr dst); void data_polling_jedec(const struct flashctx *flash, chipaddr dst, uint8_t data); -int probe_jedec(struct flashctx *flash); +int probe_jedec_default(struct flashctx *flash); +int probe_jedec_0(struct flashctx *flash); +int probe_jedec_1(struct flashctx *flash); +int probe_jedec_10(struct flashctx *flash); +int probe_jedec_10000(struct flashctx *flash); int write_jedec(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len); int write_jedec_1(struct flashctx *flash, const uint8_t *buf, unsigned int start, unsigned int len); int erase_sector_jedec(struct flashctx *flash, unsigned int page, unsigned int pagesize); diff --git a/flash.h b/flash.h index cf496b6..7f40704 100644 --- a/flash.h +++ b/flash.h @@ -113,12 +113,13 @@ enum write_granularity { #define FEATURE_ADDR_2AA (1 << 2) #define FEATURE_ADDR_AAA (2 << 2) #define FEATURE_ADDR_SHIFTED (1 << 5) +#define FEATURE_SLOW_ERASE_CMDS (1 << 6) /* Feature bits used for SPI only */ -#define FEATURE_WRSR_EWSR (1 << 6) -#define FEATURE_WRSR_WREN (1 << 7) +#define FEATURE_WRSR_EWSR (1 << 8) +#define FEATURE_WRSR_WREN (1 << 9) #define FEATURE_WRSR_EITHER (FEATURE_WRSR_EWSR | FEATURE_WRSR_WREN) -#define FEATURE_OTP (1 << 8) -#define FEATURE_QPI (1 << 9) +#define FEATURE_OTP (1 << 10) +#define FEATURE_QPI (1 << 11)
enum test_state { OK = 0, @@ -161,7 +162,7 @@ struct flashchip { unsigned int total_size; /* Chip page size in bytes */ unsigned int page_size; - int feature_bits; + uint16_t feature_bits;
/* Indicate how well flashrom supports different operations of this flash chip. */ struct tested { @@ -173,11 +174,6 @@ struct flashchip {
int (*probe) (struct flashctx *flash);
- /* Delay after "enter/exit ID mode" commands in microseconds. - * NB: negative values have special meanings, see TIMING_* below. - */ - signed int probe_timing; - /* * Erase blocks and associated erase function. Any chip erase function * is stored as chip-sized virtual block together with said function. @@ -214,16 +210,6 @@ struct flashctx { struct registered_programmer *pgm; };
-/* Timing used in probe routines. ZERO is -2 to differentiate between an unset - * field and zero delay. - * - * SPI devices will always have zero delay and ignore this field. - */ -#define TIMING_FIXME -1 -/* this is intentionally same value as fixme */ -#define TIMING_IGNORED -1 -#define TIMING_ZERO -2 - extern const struct flashchip flashchips[]; extern const unsigned int flashchips_size;
diff --git a/flashchips.c b/flashchips.c index 78c18ca..4580f96 100644 --- a/flashchips.c +++ b/flashchips.c @@ -67,8 +67,7 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -94,8 +93,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_SHORT_RESET | FEATURE_ADDR_2AA, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -126,8 +124,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_EITHER_RESET | FEATURE_ADDR_2AA, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -158,8 +155,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -185,8 +181,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -212,8 +207,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -239,8 +233,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -270,8 +263,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -301,8 +293,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -333,8 +324,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -365,8 +355,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -397,8 +386,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -429,8 +417,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -461,8 +448,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, /* unused */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -493,8 +479,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -520,8 +505,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, /* datasheet specifies address as don't care */ .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -548,7 +532,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -582,7 +565,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -616,7 +598,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -651,7 +632,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -686,7 +666,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -721,7 +700,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -761,7 +739,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -796,7 +773,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -831,7 +807,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -866,7 +841,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -904,7 +878,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -942,7 +915,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -974,7 +946,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1006,7 +977,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1038,7 +1008,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1070,7 +1039,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1102,7 +1070,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1135,7 +1102,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1175,7 +1141,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 512 } }, @@ -1214,7 +1179,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1255,7 +1219,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1292,8 +1255,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -1324,8 +1286,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -1356,8 +1317,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -1383,8 +1343,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */ + .probe = probe_jedec_0, .block_erasers = { { @@ -1413,7 +1372,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1451,7 +1409,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1489,7 +1446,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1527,7 +1483,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1565,7 +1520,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PROBE, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1603,7 +1557,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1642,7 +1595,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1680,7 +1632,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1719,7 +1670,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1757,7 +1707,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_at25f, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1786,7 +1735,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_at25f, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1817,7 +1765,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1860,7 +1807,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_at25f, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1889,7 +1835,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_at25f, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1918,7 +1863,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_at25f, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1948,7 +1892,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -1989,7 +1932,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2027,7 +1969,6 @@ const struct flashchip flashchips[] = { /* does not support EWSR nor WREN and has no writable status register bits whatsoever */ .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2059,7 +2000,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2097,7 +2037,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2135,7 +2074,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2174,7 +2112,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .printlock = spi_prettyprint_status_register_at26df081a, .unlock = spi_disable_blockprotect, .write = spi_chip_write_256, @@ -2192,7 +2129,6 @@ const struct flashchip flashchips[] = { .tested = {.probe = NT, .read = NT, .erase = NT, .write = BAD }, .feature_bits = FEATURE_WRSR_WREN, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2228,8 +2164,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10000, /* 10mS, Enter=Exec */ + .probe = probe_jedec_10000, /* 10 ms, Enter=Exec */ .block_erasers = { { @@ -2252,8 +2187,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = 10000, /* 10mS, Enter=Exec */ + .probe = probe_jedec_10000, /* 10 ms, Enter=Exec */ .block_erasers = { { @@ -2276,8 +2210,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10000, /* 10ms */ + .probe = probe_jedec_10000, /* 10ms */ .block_erasers = { { @@ -2300,8 +2233,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 10000, /* 10 ms */ + .probe = probe_jedec_10000, /* 10 ms */ .block_erasers = { { @@ -2327,7 +2259,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2359,7 +2290,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_at45db, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2401,7 +2331,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_at45db, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2443,7 +2372,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_at45db, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2485,7 +2413,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_at45db, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2527,7 +2454,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_at45db, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2569,7 +2495,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2612,7 +2537,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_at45db, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2654,7 +2578,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_at45db, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2696,7 +2619,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_at45db, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -2735,8 +2657,7 @@ const struct flashchip flashchips[] = { .page_size = 64, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -2759,8 +2680,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -2791,8 +2711,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -2823,8 +2742,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -2848,8 +2766,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -2879,8 +2796,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -2910,8 +2826,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -2942,8 +2857,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -2974,7 +2888,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, /* TODO: LPC OK too? */ .tested = TEST_UNTESTED, .probe = probe_82802ab, /* TODO: 0xff cmd not documented? */ - .probe_timing = TIMING_FIXME, .block_erasers = { { @@ -3009,8 +2922,7 @@ const struct flashchip flashchips[] = { .page_size = 0, /* unused */ .feature_bits = 0, .tested = TEST_OK_PR, - .probe = probe_jedec, /* FIXME! */ - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, /* FIXME! */ .block_erasers = { { @@ -3033,8 +2945,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -3060,8 +2971,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -3093,7 +3003,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3128,7 +3037,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3163,7 +3071,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3197,7 +3104,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3231,7 +3137,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3265,7 +3170,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3299,7 +3203,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3334,7 +3237,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3369,7 +3271,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3404,7 +3305,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3439,7 +3339,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3474,7 +3373,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3509,7 +3407,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3544,7 +3441,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3579,7 +3475,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3614,7 +3509,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3649,7 +3543,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3684,7 +3577,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3719,7 +3611,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3757,7 +3648,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3795,7 +3685,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3833,7 +3722,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PROBE, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3868,7 +3756,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3903,7 +3790,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3938,7 +3824,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -3973,7 +3858,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4009,7 +3893,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4045,7 +3928,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4083,7 +3965,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4123,7 +4004,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4159,7 +4039,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4195,7 +4074,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4232,7 +4110,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PR, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4270,7 +4147,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4308,7 +4184,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PR, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, @@ -4345,7 +4220,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, @@ -4380,7 +4254,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, @@ -4415,7 +4288,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 64} }, @@ -4450,7 +4322,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, @@ -4485,7 +4356,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, @@ -4520,7 +4390,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, @@ -4558,7 +4427,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, @@ -4596,7 +4464,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, @@ -4629,8 +4496,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -4657,8 +4523,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -4689,8 +4554,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -4722,7 +4586,6 @@ const struct flashchip flashchips[] = { .feature_bits = 0, .tested = TEST_OK_PREW, .probe = probe_en29lv640b, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -4751,8 +4614,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -4783,8 +4645,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -4817,7 +4678,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, .probe = probe_m29f400bt, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */ .block_erasers = { { @@ -4849,7 +4709,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, .probe = probe_m29f400bt, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */ .block_erasers = { { @@ -4881,7 +4740,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, .probe = probe_m29f400bt, - .probe_timing = TIMING_IGNORED, .block_erasers = { { @@ -4913,7 +4771,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, .probe = probe_m29f400bt, - .probe_timing = TIMING_IGNORED, .block_erasers = { { @@ -4946,7 +4803,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -4984,7 +4840,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 16} }, @@ -5018,7 +4873,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 32} }, @@ -5055,7 +4909,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5093,7 +4946,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5132,7 +4984,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5171,7 +5022,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5210,7 +5060,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5249,7 +5098,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5288,7 +5136,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5327,7 +5174,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, @@ -5363,8 +5209,7 @@ const struct flashchip flashchips[] = { .page_size = 256 * 1024, .feature_bits = FEATURE_EITHER_RESET, /* Some revisions may need FEATURE_ADDR_2AA */ .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -5395,8 +5240,7 @@ const struct flashchip flashchips[] = { .page_size = 256 * 1024, .feature_bits = FEATURE_EITHER_RESET, /* Some revisions may need FEATURE_ADDR_2AA */ .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -5427,8 +5271,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -5456,7 +5299,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5495,7 +5337,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5534,7 +5375,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5573,7 +5413,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5612,7 +5451,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5651,7 +5489,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -5687,8 +5524,7 @@ const struct flashchip flashchips[] = { .total_size = 128, .page_size = 128 * 1024, /* 8k + 2x4k + 112k */ .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -5714,8 +5550,7 @@ const struct flashchip flashchips[] = { .total_size = 128, .page_size = 128 * 1024, /* 112k + 2x4k + 8k */ .tested = TEST_OK_PR, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -5742,7 +5577,6 @@ const struct flashchip flashchips[] = { .page_size = 256 * 1024, .tested = TEST_OK_PRE, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -5769,7 +5603,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -5792,7 +5625,6 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* maximal block size */ .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -5819,7 +5651,6 @@ const struct flashchip flashchips[] = { .page_size = 128 * 1024, /* maximal block size */ .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -5847,7 +5678,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_SHIFTED, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -5875,7 +5705,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_SHIFTED, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -5903,7 +5732,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PREW, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine does not use probe_timing (82802ab.c) */ .block_erasers = { { @@ -5928,7 +5756,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PR, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine does not use probe_timing (82802ab.c) */ .block_erasers = { { @@ -5952,7 +5779,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = {.probe = OK, .read = OK, .erase = NA, .write = NA}, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, /* MX23L3254 is a mask ROM, so it is read-only */ .read = spi_chip_read, /* Fast read (0x0B) supported */ .voltage = {3000, 3600}, @@ -5970,7 +5796,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6009,7 +5834,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6044,7 +5868,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6082,7 +5905,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6120,7 +5942,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6158,7 +5979,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6194,7 +6014,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6232,7 +6051,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6268,7 +6086,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6304,7 +6121,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6339,7 +6155,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6375,7 +6190,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6411,7 +6225,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6450,7 +6263,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6489,7 +6301,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6525,7 +6336,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6561,7 +6371,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6598,7 +6407,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6637,7 +6445,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6674,7 +6481,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6716,7 +6522,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6758,7 +6563,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -6796,8 +6600,7 @@ const struct flashchip flashchips[] = { .page_size = 32 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -6829,8 +6632,7 @@ const struct flashchip flashchips[] = { .page_size = 32 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -6862,8 +6664,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -6894,8 +6695,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -6926,8 +6726,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -6953,8 +6752,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -6981,7 +6779,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7015,7 +6812,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res1, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7044,7 +6840,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7074,7 +6869,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res1, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7103,7 +6897,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7132,7 +6925,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_res1, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7161,7 +6953,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7190,7 +6981,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res1, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7218,7 +7008,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7247,7 +7036,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7276,7 +7064,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7305,7 +7092,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7334,7 +7120,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7363,7 +7148,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7395,7 +7179,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7427,7 +7210,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7459,7 +7241,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7491,7 +7272,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7524,7 +7304,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { { 4 * 1024, 256 } }, @@ -7556,7 +7335,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7589,7 +7367,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PRE, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7622,7 +7399,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7653,7 +7429,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 512} }, @@ -7680,7 +7455,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 1024} }, @@ -7707,7 +7481,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 2048} }, @@ -7734,7 +7507,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 4096} }, @@ -7761,7 +7533,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 8192} }, @@ -7791,7 +7562,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7828,7 +7598,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7862,7 +7631,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7896,7 +7664,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7930,7 +7697,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -7964,7 +7730,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096 } }, @@ -7997,7 +7762,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096 } }, @@ -8027,8 +7791,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -8054,8 +7817,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -8081,8 +7843,7 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -8108,8 +7869,7 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -8135,8 +7895,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -8162,8 +7921,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -8189,8 +7947,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -8217,7 +7974,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8258,7 +8014,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8299,7 +8054,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8340,7 +8094,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8378,7 +8131,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8413,7 +8165,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8450,7 +8201,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8488,7 +8238,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8526,7 +8275,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8564,7 +8312,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8602,7 +8349,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res3, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8634,7 +8380,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res3, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8666,7 +8411,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8698,7 +8442,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8730,7 +8473,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8762,7 +8504,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8800,7 +8541,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -8837,8 +8577,7 @@ const struct flashchip flashchips[] = { .page_size = 8 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_FIXME, + .probe = probe_jedec_default, .block_erasers = { { @@ -8869,8 +8608,7 @@ const struct flashchip flashchips[] = { .page_size = 8 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_FIXME, + .probe = probe_jedec_default, .block_erasers = { { @@ -8901,8 +8639,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -8931,8 +8668,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -8961,8 +8697,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -8991,8 +8726,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -9021,8 +8755,7 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */ + .probe = probe_jedec_0, .block_erasers = { { @@ -9052,8 +8785,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */ + .probe = probe_jedec_0, .block_erasers = { { @@ -9084,7 +8816,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_res2, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, @@ -9115,7 +8846,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_res2, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, @@ -9145,7 +8875,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9176,7 +8905,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {256, 2 * 1024} }, @@ -9207,7 +8935,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res2, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, @@ -9238,7 +8965,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res2, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, @@ -9272,7 +8998,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_res2, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {8 * 1024, 128} }, @@ -9302,7 +9027,6 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .tested = TEST_OK_PREW, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9333,7 +9057,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_EITHER_RESET | FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9366,7 +9089,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9395,7 +9117,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PRE, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9424,7 +9145,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PR, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9453,7 +9173,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9482,7 +9201,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9511,7 +9229,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 128} }, @@ -9545,7 +9262,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 256} }, @@ -9580,7 +9296,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 512} }, @@ -9615,7 +9330,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 1024} }, @@ -9650,7 +9364,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 2048} }, @@ -9686,7 +9399,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { .eraseblocks = { {4 * 1024, 4096} }, @@ -9720,7 +9432,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rems, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9752,7 +9463,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_res2, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9784,7 +9494,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, .probe = probe_spi_res2, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9816,7 +9525,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rems, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9854,7 +9562,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rems, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9892,7 +9599,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_UNTESTED, .probe = probe_spi_rems, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9924,7 +9630,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9962,7 +9667,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PR, .probe = probe_spi_rems, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -9994,7 +9698,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10032,7 +9735,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rems, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10070,7 +9772,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10108,7 +9809,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10146,7 +9846,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10184,7 +9883,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EWSR, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10222,7 +9920,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10257,7 +9954,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10292,7 +9988,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10330,7 +10025,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10368,7 +10062,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_EITHER, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -10406,7 +10099,6 @@ const struct flashchip flashchips[] = { .feature_bits = 0, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst28sf040.c) */ .block_erasers = { { @@ -10433,8 +10125,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -10457,8 +10148,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -10481,8 +10171,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -10505,8 +10194,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -10529,8 +10217,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10556,8 +10243,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10583,8 +10269,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10610,8 +10295,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10637,8 +10321,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10664,8 +10347,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10691,8 +10373,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10718,8 +10399,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10745,8 +10425,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10775,8 +10454,7 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10807,8 +10485,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10842,8 +10519,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10875,7 +10551,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { @@ -10907,8 +10582,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -10940,7 +10614,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { @@ -10973,7 +10646,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PREW, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { @@ -11005,8 +10677,7 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -11035,8 +10706,7 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PRE, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -11065,8 +10735,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150 ns */ + .probe = probe_jedec_1, /* 150 ns */ .block_erasers = { { @@ -11095,8 +10764,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET | FEATURE_REGISTERMAP, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 1, /* 150ns */ + .probe = probe_jedec_1, /* 150ns */ .block_erasers = { { @@ -11126,8 +10794,7 @@ const struct flashchip flashchips[] = { .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_FIXME, + .probe = probe_jedec_default, .block_erasers = { { @@ -11157,7 +10824,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PRE, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { @@ -11189,8 +10855,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11221,8 +10886,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_AAA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11253,8 +10917,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* datasheet specifies no timing */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11282,7 +10945,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, .probe = probe_m29f400bt, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */ .block_erasers = { { @@ -11314,7 +10976,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, .probe = probe_m29f400bt, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */ .block_erasers = { { @@ -11345,8 +11006,7 @@ const struct flashchip flashchips[] = { .page_size = 16 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11372,8 +11032,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11399,8 +11058,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -11424,7 +11082,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_FIXME, .block_erasers = { { @@ -11457,7 +11114,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_FIXME, .block_erasers = { { @@ -11490,7 +11146,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PRE, .probe = probe_82802ab, - .probe_timing = TIMING_FIXME, .block_erasers = { { @@ -11523,7 +11178,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_FIXME, .block_erasers = { { @@ -11556,7 +11210,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */ .block_erasers = { { @@ -11586,7 +11239,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */ .block_erasers = { { @@ -11611,7 +11263,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PR, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */ .block_erasers = { { @@ -11636,7 +11287,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_OK_PREW, .probe = probe_82802ab, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */ .block_erasers = { { @@ -11661,7 +11311,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -11686,7 +11335,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_REGISTERMAP, .tested = TEST_UNTESTED, .probe = probe_82802ab, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ .block_erasers = { { @@ -11716,8 +11364,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11743,8 +11390,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11770,8 +11416,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11796,8 +11441,7 @@ const struct flashchip flashchips[] = { .page_size = 512, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11822,8 +11466,7 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -11849,8 +11492,7 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, + .probe = probe_jedec_0, .block_erasers = { { @@ -11876,8 +11518,7 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11903,8 +11544,7 @@ const struct flashchip flashchips[] = { .page_size = 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11930,8 +11570,7 @@ const struct flashchip flashchips[] = { .page_size = 16384, /* Non-uniform sectors */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11962,8 +11601,7 @@ const struct flashchip flashchips[] = { .page_size = 16384, /* Non-uniform sectors */ .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */ + .probe = probe_jedec_0, .block_erasers = { { @@ -11997,7 +11635,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12037,7 +11674,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12077,7 +11713,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12117,7 +11752,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12157,7 +11791,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12196,7 +11829,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12235,7 +11867,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12274,7 +11905,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12314,7 +11944,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_UNTESTED, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12354,7 +11983,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12394,7 +12022,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12432,7 +12059,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12464,7 +12090,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12496,7 +12121,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12528,7 +12152,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12560,7 +12183,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12598,7 +12220,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12636,7 +12257,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_WRSR_WREN, .tested = TEST_OK_PROBE, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .block_erasers = { { @@ -12674,7 +12294,6 @@ const struct flashchip flashchips[] = { .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, .probe = probe_w29ee011, - .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (w29ee011.c) */ .block_erasers = { { @@ -12696,8 +12315,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, /* used datasheet for the W29C011A */ + .probe = probe_jedec_10, /* used datasheet for the W29C011A */ .block_erasers = { { @@ -12719,8 +12337,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12743,8 +12360,7 @@ const struct flashchip flashchips[] = { .page_size = 256, .feature_bits = FEATURE_LONG_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12767,8 +12383,7 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12795,8 +12410,7 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12823,8 +12437,7 @@ const struct flashchip flashchips[] = { .page_size = 4 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12854,8 +12467,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PR, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12885,8 +12497,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12913,8 +12524,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12941,8 +12551,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -12969,8 +12578,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13001,8 +12609,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13030,8 +12637,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13058,8 +12664,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13086,8 +12691,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13118,8 +12722,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PROBE, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13142,8 +12745,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13174,8 +12776,7 @@ const struct flashchip flashchips[] = { .page_size = 128, .feature_bits = FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13206,8 +12807,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_OK_PREW, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13235,8 +12835,7 @@ const struct flashchip flashchips[] = { .page_size = 64 * 1024, .feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET, .tested = TEST_UNTESTED, - .probe = probe_jedec, - .probe_timing = 10, + .probe = probe_jedec_10, .block_erasers = { { @@ -13308,7 +12907,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid4, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, @@ -13323,7 +12921,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, @@ -13338,7 +12935,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, @@ -13353,7 +12949,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, @@ -13368,7 +12963,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, @@ -13383,7 +12977,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, @@ -13398,7 +12991,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, @@ -13413,7 +13005,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, @@ -13428,7 +13019,6 @@ const struct flashchip flashchips[] = { .page_size = 256, .tested = TEST_BAD_PREW, .probe = probe_spi_rdid, - .probe_timing = TIMING_ZERO, .write = NULL, .read = NULL, }, diff --git a/jedec.c b/jedec.c index 08cc88b..a9ace95 100644 --- a/jedec.c +++ b/jedec.c @@ -120,29 +120,14 @@ static void start_program_jedec_common(const struct flashctx *flash, unsigned in chip_writeb(flash, 0xA0, bios + (0x5555 & mask)); }
-static int probe_jedec_common(struct flashctx *flash, unsigned int mask) +static int probe_jedec_common(struct flashctx *flash, unsigned int probe_timing_enter, unsigned int probe_timing_exit) { chipaddr bios = flash->virtual_memory; const struct flashchip *chip = flash->chip; + const unsigned int mask = getaddrmask(flash->chip); uint8_t id1, id2; uint32_t largeid1, largeid2; uint32_t flashcontent1, flashcontent2; - unsigned int probe_timing_enter, probe_timing_exit; - - if (chip->probe_timing > 0) - probe_timing_enter = probe_timing_exit = chip->probe_timing; - else if (chip->probe_timing == TIMING_ZERO) { /* No delay. */ - probe_timing_enter = probe_timing_exit = 0; - } else if (chip->probe_timing == TIMING_FIXME) { /* == _IGNORED */ - msg_cdbg("Chip lacks correct probe timing information, " - "using default 10mS/40uS. "); - probe_timing_enter = 10000; - probe_timing_exit = 40; - } else { - msg_cerr("Chip has negative value in probe_timing, failing " - "without chip access\n"); - return 0; - }
/* Earlier probes might have been too fast for the chip to enter ID * mode completely. Allow the chip to finish this before seeing a @@ -245,7 +230,7 @@ static int erase_sector_jedec_common(struct flashctx *flash, unsigned int page, { chipaddr bios = flash->virtual_memory; unsigned int delay_us = 0; - if(flash->chip->probe_timing != TIMING_ZERO) + if (flash->chip->feature_bits & FEATURE_SLOW_ERASE_CMDS) delay_us = 10;
/* Issue the Sector Erase command */ @@ -275,7 +260,7 @@ static int erase_block_jedec_common(struct flashctx *flash, unsigned int block, { chipaddr bios = flash->virtual_memory; unsigned int delay_us = 0; - if(flash->chip->probe_timing != TIMING_ZERO) + if (flash->chip->feature_bits & FEATURE_SLOW_ERASE_CMDS) delay_us = 10;
/* Issue the Sector Erase command */ @@ -304,7 +289,7 @@ static int erase_chip_jedec_common(struct flashctx *flash, unsigned int mask) { chipaddr bios = flash->virtual_memory; unsigned int delay_us = 0; - if(flash->chip->probe_timing != TIMING_ZERO) + if (flash->chip->feature_bits & FEATURE_SLOW_ERASE_CMDS) delay_us = 10;
/* Issue the JEDEC Chip Erase command */ @@ -477,12 +462,30 @@ int erase_chip_block_jedec(struct flashctx *flash, unsigned int addr, return erase_chip_jedec_common(flash, mask); }
-int probe_jedec(struct flashctx *flash) +int probe_jedec_default(struct flashctx *flash) { - unsigned int mask; + msg_cdbg("Chip lacks exact probe timing information, using default 10 ms/40 us. "); + return probe_jedec_common(flash, 10000, 40); +}
- mask = getaddrmask(flash->chip); - return probe_jedec_common(flash, mask); +int probe_jedec_0(struct flashctx *flash) +{ + return probe_jedec_common(flash, 0, 0); +} + +int probe_jedec_1(struct flashctx *flash) +{ + return probe_jedec_common(flash, 1, 1); +} + +int probe_jedec_10(struct flashctx *flash) +{ + return probe_jedec_common(flash, 10, 10); +} + +int probe_jedec_10000(struct flashctx *flash) +{ + return probe_jedec_common(flash, 10000, 10000); }
int erase_sector_jedec(struct flashctx *flash, unsigned int page,