From d2e7b3d2425c9202d10a7659ed8b5d4398b03ace Mon Sep 17 00:00:00 2001 From: Pali Rohár Date: Sat, 12 Mar 2016 12:47:41 +0100 Subject: mkii: Implement rebooting to Update mode --- src/mkii.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/mkii.c') diff --git a/src/mkii.c b/src/mkii.c index aa02432..7b36e43 100644 --- a/src/mkii.c +++ b/src/mkii.c @@ -340,18 +340,28 @@ int mkii_flash_image(struct usb_device_info * dev, struct image * image) { } -int mkii_reboot_device(struct usb_device_info * dev) { +int mkii_reboot_device(struct usb_device_info * dev, int update) { char buf[2048]; struct mkii_message * msg; + const char * str; + int len; int ret; msg = (struct mkii_message *)buf; - printf("Rebooting device...\n"); + if ( update ) { + printf("Rebooting device to Update mode...\n"); + len = sizeof("reboot=update"); + str = "reboot=update"; + } else { + printf("Rebooting device...\n"); + len = sizeof("reboot"); + str = "reboot"; + } - memcpy(msg->data, "reboot", sizeof("reboot")); - ret = mkii_send_receive(dev->udev, MKII_REBOOT, msg, sizeof("reboot"), msg, sizeof(buf)); + memcpy(msg->data, str, len); + ret = mkii_send_receive(dev->udev, MKII_REBOOT, msg, len, msg, sizeof(buf)); if ( ret != 1 || msg->data[0] != 0 ) return -1; -- cgit v1.2.3