Move checking for flashing protocol from main to cold-flash

This commit is contained in:
Pali Rohár committed 2012-08-10 14:56:38 +02:00
1 parent 32f2e53304
commit 8eb58ad08c
2 files changed
+16 -7

No files matched your search

+12
View File
@@ -25,6 +25,8 @@
#include "cold-flash.h" #include "cold-flash.h"
#include "image.h" #include "image.h"
#include "usb-device.h"
#include "printf-utils.h"
#define READ_DEV 0x81 #define READ_DEV 0x81
#define WRITE_DEV 0x01 #define WRITE_DEV 0x01
@@ -307,6 +309,11 @@ static int ping_timeout(usb_dev_handle * udev) {
int cold_flash(struct usb_device_info * dev, struct image * x2nd, struct image * secondary) { int cold_flash(struct usb_device_info * dev, struct image * x2nd, struct image * secondary) {
if ( dev->flash_device->protocol != FLASH_COLD ) {
printf_and_wait("Device is not in Cold Flash mode\nUnplug USB cable, turn device off, press ENTER and plug USB cable again");
return 1;
}
if ( x2nd->type != IMAGE_2ND ) { if ( x2nd->type != IMAGE_2ND ) {
fprintf(stderr, "Image type is not 2nd X-Loader\n"); fprintf(stderr, "Image type is not 2nd X-Loader\n");
return 1; return 1;
@@ -346,6 +353,11 @@ int leave_cold_flash(struct usb_device_info * dev) {
int ret; int ret;
if ( dev->flash_device->protocol != FLASH_COLD ) {
fprintf(stderr, "Device is not in Cold Flash mode\n");
return 1;
}
if ( ! read_asic(dev->udev) ) { if ( ! read_asic(dev->udev) ) {
fprintf(stderr, "Reading ASIC ID failed\n"); fprintf(stderr, "Reading ASIC ID failed\n");
return 1; return 1;
+4 -7
View File
@@ -719,16 +719,13 @@ int main(int argc, char **argv) {
/* cold flash */ /* cold flash */
if ( dev_cold_flash ) { if ( dev_cold_flash ) {
if ( usb_dev->flash_device->protocol != FLASH_COLD ) { ret = cold_flash(usb_dev, image_2nd, image_secondary);
usb_close_device(usb_dev);
printf_and_wait("Unplug USB cable, turn device off, press ENTER and plug USB cable again");
continue;
}
cold_flash(usb_dev, image_2nd, image_secondary);
usb_close_device(usb_dev); usb_close_device(usb_dev);
usb_dev = NULL; usb_dev = NULL;
if ( ret != 0 )
continue;
if ( dev_flash ) { if ( dev_flash ) {
dev_cold_flash = 0; dev_cold_flash = 0;
continue; continue;