summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/usb-device.c42
-rw-r--r--src/usb-device.h5
2 files changed, 47 insertions, 0 deletions
diff --git a/src/usb-device.c b/src/usb-device.c
index 85100f9..855cf35 100644
--- a/src/usb-device.c
+++ b/src/usb-device.c
@@ -30,6 +30,8 @@
#include "device.h"
#include "usb-device.h"
#include "printf-utils.h"
+#include "nolo.h"
+#include "cold-flash.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 } },
@@ -287,3 +289,43 @@ void usb_close_device(struct usb_device_info * dev) {
free(dev);
}
+
+void usb_switch_to_nolo(struct usb_device_info * dev) {
+
+ printf("\nSwitching to NOLO mode...\n");
+
+ 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");
+ else if ( dev->flash_device->protocol == FLASH_DISK )
+ printf_and_wait("Unplug USB cable, turn device off, press ENTER and plug USB cable again");
+
+}
+
+void usb_switch_to_cold(struct usb_device_info * dev) {
+
+ printf("\nSwitching to Cold Flash mode...\n");
+ printf_and_wait("Unplug USB cable, turn device off, press ENTER and plug USB cable again");
+
+}
+
+void usb_switch_to_mkii(struct usb_device_info * dev) {
+
+ printf("\nSwitching to Update mode...\n");
+
+ if ( dev->flash_device->protocol == FLASH_COLD )
+ leave_cold_flash(dev);
+ else if ( dev->flash_device->protocol == FLASH_NOLO )
+ nolo_boot_device(dev, "update");
+ else if ( dev->flash_device->protocol == FLASH_DISK )
+ printf_and_wait("Unplug USB cable, turn device off, press ENTER and plug USB cable again");
+
+}
+
+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");
+
+}
diff --git a/src/usb-device.h b/src/usb-device.h
index b1ca650..e575d57 100644
--- a/src/usb-device.h
+++ b/src/usb-device.h
@@ -53,4 +53,9 @@ const char * usb_flash_protocol_to_string(enum usb_flash_protocol protocol);
struct usb_device_info * usb_open_and_wait_for_device(void);
void usb_close_device(struct usb_device_info * dev);
+void usb_switch_to_nolo(struct usb_device_info * dev);
+void usb_switch_to_cold(struct usb_device_info * dev);
+void usb_switch_to_mkii(struct usb_device_info * dev);
+void usb_switch_to_disk(struct usb_device_info * dev);
+
#endif