From ec9155c9784ee9bd91c9179a1fd3d9ca8f963cd3 Mon Sep 17 00:00:00 2001 From: ghollingworth Date: Sat, 13 May 2017 10:28:40 +0100 Subject: [PATCH] Fix problem with enabling MSD on some CM / CM3 devices --- main.c | 8 +++++--- msd/bootcode.bin | Bin 50900 -> 0 bytes msd/start.elf | Bin 428476 -> 0 bytes 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 4f64c8b..724727c 100755 --- a/main.c +++ b/main.c @@ -227,6 +227,8 @@ int second_stage_boot(libusb_device_handle *usb_device) { int size, retcode = 0; + sleep(1); + size = ep_write(&boot_message, sizeof(boot_message), usb_device); if (size != sizeof(boot_message)) { @@ -242,7 +244,7 @@ int second_stage_boot(libusb_device_handle *usb_device) return -1; } - sleep(1); + usleep(125); size = ep_read((unsigned char *)&retcode, sizeof(retcode), usb_device); if (size > 0 && retcode == 0) @@ -254,6 +256,8 @@ int second_stage_boot(libusb_device_handle *usb_device) printf("Failed : 0x%x", retcode); } + sleep(1); + return retcode; } @@ -494,10 +498,8 @@ int main(int argc, char *argv[]) printf("Second stage boot server\n"); file_server(usb_device); } - libusb_reset_device(usb_device); libusb_close(usb_device); - sleep(5); } while(loop || desc.iSerialNumber == 0); diff --git a/msd/bootcode.bin b/msd/bootcode.bin index 4645785..395cb9b 100644 Binary files a/msd/bootcode.bin and b/msd/bootcode.bin differ diff --git a/msd/start.elf b/msd/start.elf index fd7a0fd..192a49c 100755 Binary files a/msd/start.elf and b/msd/start.elf differ -- libgit2 0.21.4