summaryrefslogtreecommitdiffstats
path: root/src/usb-device.c
diff options
context:
space:
mode:
authorPali Rohár <pali.rohar@gmail.com>2012-11-15 15:23:45 +0100
committerPali Rohár <pali.rohar@gmail.com>2012-11-15 15:23:45 +0100
commit5f0b6bb328bc1705ce14c2d1d0c138719de43f33 (patch)
treef09df7143b185273049d307b553d195a99186e39 /src/usb-device.c
parentaa366ea133984fa073a6d9262e42a947a69240fb (diff)
download0xFFFF-5f0b6bb328bc1705ce14c2d1d0c138719de43f33.tar.bz2
usb-device: Added support for Mk II
Diffstat (limited to 'src/usb-device.c')
-rw-r--r--src/usb-device.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/usb-device.c b/src/usb-device.c
index 855cf35..33009be 100644
--- a/src/usb-device.c
+++ b/src/usb-device.c
@@ -32,6 +32,7 @@
#include "printf-utils.h"
#include "nolo.h"
#include "cold-flash.h"
+#include "mkii.h"
static struct usb_flash_device usb_devices[] = {
{ 0x0421, 0x0105, 2, 1, -1, FLASH_NOLO, { DEVICE_SU_18, DEVICE_RX_44, DEVICE_RX_48, DEVICE_RX_51, 0 } },
@@ -297,7 +298,7 @@ void usb_switch_to_nolo(struct usb_device_info * dev) {
if ( dev->flash_device->protocol == FLASH_COLD )
leave_cold_flash(dev);
else if ( dev->flash_device->protocol == FLASH_MKII )
- ERROR("Leaving Mk II protocol is not implemented yet");
+ mkii_reboot_device(dev);
else if ( dev->flash_device->protocol == FLASH_DISK )
printf_and_wait("Unplug USB cable, turn device off, press ENTER and plug USB cable again");
@@ -326,6 +327,13 @@ void usb_switch_to_mkii(struct usb_device_info * dev) {
void usb_switch_to_disk(struct usb_device_info * dev) {
printf("\nSwitching to RAW disk mode...\n");
- ERROR("usb_switch_to_disk is not implemented yet");
+
+ if ( dev->flash_device->protocol == FLASH_COLD )
+ leave_cold_flash(dev);
+ else if ( dev->flash_device->protocol == FLASH_NOLO ) {
+ nolo_boot_device(dev, NULL);
+ printf_and_wait("Wait until device start, choose USB Mass Storage Mode and press ENTER");
+ } else if ( dev->flash_device->protocol == FLASH_MKII )
+ mkii_reboot_device(dev);
}