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 --- a/msd/bootcode.bin +++ b/msd/bootcode.bin diff --git a/msd/start.elf b/msd/start.elf index fd7a0fd..192a49c 100755 --- a/msd/start.elf +++ b/msd/start.elf