diff options
-rw-r--r-- | usbboot.c | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -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) { |