summaryrefslogtreecommitdiff
path: root/bootloader
diff options
context:
space:
mode:
Diffstat (limited to 'bootloader')
-rw-r--r--bootloader/x1000/utils.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/bootloader/x1000/utils.c b/bootloader/x1000/utils.c
index 46624b0d1d..a1d90dedbb 100644
--- a/bootloader/x1000/utils.c
+++ b/bootloader/x1000/utils.c
@@ -189,6 +189,15 @@ static ssize_t uimage_nand_reader(void* buf, size_t count, void* rctx)
189 189
190 while(d->page < d->end_page && read_count < count) { 190 while(d->page < d->end_page && read_count < count) {
191 rc = nand_page_read(ndrv, d->page, ndrv->page_buf); 191 rc = nand_page_read(ndrv, d->page, ndrv->page_buf);
192
193 /* Ignore ECC errors on the first page of a block. This may
194 * indicate a bad block. */
195 if(rc == NAND_ERR_ECC_FAIL &&
196 d->page % ndrv->ppb == 0 && d->offset == 0) {
197 d->page += ndrv->ppb;
198 continue;
199 }
200
192 if(rc < 0) 201 if(rc < 0)
193 return -1; 202 return -1;
194 203