Change chip_readb in loop to use verify_range in
write_page_write_jedec (jedec.c).

Signed-off-by: Urja Rannikko <[email protected]>

---
patch inlined:
Index: jedec.c
===================================================================
--- jedec.c     (revision 595)
+++ jedec.c     (working copy)
@@ -262,8 +262,8 @@
        return 0;
 }

-int write_page_write_jedec(chipaddr bios, uint8_t *src,
-                          chipaddr dst, int page_size)
+int write_page_write_jedec(struct flashchip *flash, chipaddr bios,
+                          uint8_t *src, chipaddr dst, int page_size)
 {
        int i, tried = 0, start_index = 0, ok;
        chipaddr d = dst;
@@ -288,15 +288,7 @@

        dst = d;
        src = s;
-       ok = 1;
-       for (i = 0; i < page_size; i++) {
-               if (chip_readb(dst) != *src) {
-                       ok = 0;
-                       break;
-               }
-               dst++;
-               src++;
-       }
+       ok = !verify_range(flash,src,dst,page_size,NULL);

        if (!ok && tried++ < MAX_REFLASH_TRIES) {
                start_index = i;
@@ -367,7 +359,7 @@
        printf("Programming page: ");
        for (i = 0; i < total_size / page_size; i++) {
                printf("%04d at address: 0x%08x", i, i * page_size);
-               write_page_write_jedec(bios, buf + i * page_size,
+               write_page_write_jedec(flash, bios, buf + i * page_size,
                                       bios + i * page_size, page_size);
                
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
        }


-- 
urjaman

Attachment: jedec_verify_range.diff
Description: Binary data

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to