From 1b8b66000f6c8f18193cd93fff1e852faaa9715f Mon Sep 17 00:00:00 2001 From: Ollie Lho Date: Wed, 8 Dec 2004 02:10:33 +0000 Subject: Add retry to write_byte_program_jedec(), 99% success rate Corresponding to flashrom svn r29 and coreboot v2 svn r1814. --- jedec.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'jedec.c') diff --git a/jedec.c b/jedec.c index 0344b6985..8cab94494 100644 --- a/jedec.c +++ b/jedec.c @@ -176,11 +176,14 @@ int write_page_write_jedec(volatile unsigned char *bios, unsigned char *src, int write_byte_program_jedec(volatile unsigned char *bios, unsigned char *src, volatile unsigned char *dst) { + int tried = 0; + /* If the data is 0xFF, don't program it */ if (*src == 0xFF) { return 0; } +retry: /* Issue JEDEC Byte Program command */ *(volatile unsigned char *) (bios + 0x5555) = 0xAA; *(volatile unsigned char *) (bios + 0x2AAA) = 0x55; @@ -188,9 +191,12 @@ int write_byte_program_jedec(volatile unsigned char *bios, unsigned char *src, /* transfer data from source to destination */ *dst = *src; - toggle_ready_jedec(bios); + if (*dst != *src && tried++ < 0x10) { + goto retry; + } + return 0; } -- cgit v1.2.3