From 870a05851d23d3a697f37596569beb09663cc8e1 Mon Sep 17 00:00:00 2001 From: John Rigby Date: Wed, 1 Aug 2012 15:50:55 -0600 Subject: throttle usb download to work around what seems to be a musb fifo overrun on some panda versions Signed-off-by: John Rigby --- usbboot.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/usbboot.c b/usbboot.c index bafcccf..da75498 100644 --- a/usbboot.c +++ b/usbboot.c @@ -36,6 +36,15 @@ #include "usb.h" +void throttled_usb_write(void *usb, void *data, int sz) +{ + while (sz > 0) { + usb_write(usb, data, 64); + data += 64; + sz -= 64; + } +} + int usb_boot(usb_handle * usb, void *data1, unsigned sz1, void *data2, unsigned sz2) { @@ -99,7 +108,7 @@ int usb_boot(usb_handle * usb, } sleep(1); fprintf(stderr, "transferring %d bytes of data\n", sz2); - usb_write(usb, data2, sz2); + throttled_usb_write(usb, data2, sz2); fprintf(stderr, "write finished, waiting for \"OKAY\"\n"); usb_read(usb, response, sizeof(response)); if (strncmp("OKAY", response, 4) == 0) { -- cgit v1.2.3