aboutsummaryrefslogtreecommitdiff
path: root/bootloader
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2011-07-12 04:25:20 +0000
committerDimitri Sokolyuk <demon@dim13.org>2011-07-12 04:25:20 +0000
commit5cde50c5f8e9bc9d2cf75b031144c360a4a2127d (patch)
tree67d6453c0ec097a0642fb7c97ae77c1e9245c396 /bootloader
parentb4a9b392c57ca8b3f740dd3035b1f43b4ad583b4 (diff)
add retry
Diffstat (limited to 'bootloader')
-rw-r--r--bootloader/bootloader.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/bootloader/bootloader.c b/bootloader/bootloader.c
index fe570d7..3e9999e 100644
--- a/bootloader/bootloader.c
+++ b/bootloader/bootloader.c
@@ -27,7 +27,7 @@
int
transfer(int fd, struct page *p, int pages, int pagesize)
{
- int n, off;
+ int n, off, maxerr = 3;
unsigned char sum;
fprintf(stderr, "waiting for bootloader ...");
@@ -61,7 +61,10 @@ transfer(int fd, struct page *p, int pages, int pagesize)
fprintf(stderr, "E");
break;
default:
- goto fubar;
+ if (!maxerr--)
+ goto fubar;
+ fprintf(stderr, "\ngarbage on the line, retry\n");
+ return transfer(fd, p, pages, pagesize);
}
}
}