[flashrom] Fix write_page_write_jedec retry, mark W29C040P as OK

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sat Nov 14 04:22:14 CET 2009


The automatic retry in write_page_write_jedec didn't retry flashing the
correct range, essentially rendering the functionality useless. This
patch simplifies the code and fixes the bug.

Mark Winbond W29C040P as supported.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Index: flashrom-write_page_write_jedec_retry/jedec.c
===================================================================
--- flashrom-write_page_write_jedec_retry/jedec.c	(Revision 756)
+++ flashrom-write_page_write_jedec_retry/jedec.c	(Arbeitskopie)
@@ -262,7 +262,7 @@
 int write_page_write_jedec(struct flashchip *flash, uint8_t *src,
 			   int start, int page_size)
 {
-	int i, tried = 0, start_index = 0, ok;
+	int i, tried = 0, ok;
 	uint8_t *s = src;
 	chipaddr bios = flash->virtual_memory;
 	chipaddr dst = bios + start;
@@ -275,7 +275,7 @@
 	chip_writeb(0xA0, bios + 0x5555);
 
 	/* transfer data from source to destination */
-	for (i = start_index; i < page_size; i++) {
+	for (i = 0; i < page_size; i++) {
 		/* If the data is 0xFF, don't program it */
 		if (*src != 0xFF)
 			chip_writeb(*src, dst);
@@ -290,7 +290,7 @@
 	ok = !verify_range(flash, src, start, page_size, NULL);
 
 	if (!ok && tried++ < MAX_REFLASH_TRIES) {
-		start_index = i;
+		fprintf(stderr, "retrying.\n");
 		goto retry;
 	}
 	if (!ok) {
Index: flashrom-write_page_write_jedec_retry/flashchips.c
===================================================================
--- flashrom-write_page_write_jedec_retry/flashchips.c	(Revision 756)
+++ flashrom-write_page_write_jedec_retry/flashchips.c	(Arbeitskopie)
@@ -3060,7 +3060,7 @@
 		.model_id	= W_29C040P,
 		.total_size	= 512,
 		.page_size	= 256,
-		.tested		= TEST_UNTESTED,
+		.tested		= TEST_OK_PREW,
 		.probe		= probe_jedec,
 		.probe_timing	= 10, 
 		.erase		= erase_chip_jedec,


-- 
Developer quote of the week: 
"We are juggling too many chainsaws and flaming arrows and tigers."





More information about the flashrom mailing list