static unsigned long down_ram_addr;
+static int down_mode;
+
/* cpu/${CPU} dependent */
extern void do_reset(void);
case BOOT_PART_ID:
#ifdef CONFIG_S5PC1XX
/* Workaround: for prevent revision mismatch */
- if (cpu_is_s5pc110()) {
+ if (cpu_is_s5pc110() && (down_mode != MODE_FORCE)) {
int img_rev = 1;
long *img_header = (long *)down_ram_addr;
struct usbd_ops *usbd;
int err;
- printf("USB Downloader v%s\n", APP_VERSION);
+ if (argc > 1)
+ down_mode = simple_strtoul(argv[1], NULL, 10);
+ else
+ down_mode = MODE_NORMAL;
+
+ printf("USB Downloader v%s (%d)\n", APP_VERSION, down_mode);
/* get partition info */
err = get_part_info();
return 0;
}
-U_BOOT_CMD(usbdown, 3, 0, do_usbd_down,
- "initialize USB device and ready to receive"
- " for Windows server (specific)\n",
- "[download address]\n"
+U_BOOT_CMD(usbdown, CONFIG_SYS_MAXARGS, 1, do_usbd_down,
+ "Initialize USB device and Run USB Downloader (specific)",
+ "- normal mode\n"
+ "usbdown mode - specific mode (0: NORAML, 1: FORCE)\n"
);