[flashrom] [PATCH] Remove delays in JEDEC erase sequence
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Mon Mar 7 12:24:01 CET 2011
Auf 06.03.2011 20:11, Michael Karcher schrieb:
> t is extremely unlikely that a chip not requiring delays in probe does
> require them in erase. We observed unreliable erasing with a SST49LF004A
> with these delays, so remove them if the are not required.
>
> Signed-off-by: Michael Karcher <flashrom at mkarcher.dialup.fu-berlin.de>
> ---
> jedec.c | 33 +++++++++++++++++++++------------
> 1 files changed, 21 insertions(+), 12 deletions(-)
>
> diff --git a/jedec.c b/jedec.c
> index 199c64d..822de88 100644
> --- a/jedec.c
> +++ b/jedec.c
> @@ -242,21 +242,24 @@ static int erase_sector_jedec_common(struct flashchip *flash, unsigned int page,
> unsigned int pagesize, unsigned int mask)
> {
> chipaddr bios = flash->virtual_memory;
> + int delay_us = 10;
> + if(flash->probe_timing != TIMING_ZERO)
> + delay_us = 0;
>
Inverted logic. Could you fix the logic like this:
+ int delay_us = 0;
+ if(flash->probe_timing != TIMING_ZERO)
+ delay_us = 10;
Default to 0 delay, and only change it if the chip is slow.
>
> /* Issue the Sector Erase command */
> chip_writeb(0xAA, bios + (0x5555 & mask));
> - programmer_delay(10);
> + programmer_delay(delay_us);
>
probe_jedec goes further by making that call conditional on nonzero
delay. I don't have a strong preference, but wanted to mention it.
Anyway, with the logic fix this is
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
More information about the flashrom
mailing list