[new uImage] Add new uImage format handling to other bootm related commands

Updated commands:

docboot  - cmd_doc.c
fdcboot  - cmd_fdc.c
diskboot - cmd_ide.c
nboot    - cmd_nand.c
scsiboot - cmd_scsi.c
usbboot  - cmd_usb.c

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index 86959dc..9a168ea 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -484,6 +484,9 @@
 	ulong cnt;
 	image_header_t *hdr;
 	int jffs2 = 0;
+#if defined(CONFIG_FIT)
+	const void *fit_hdr;
+#endif
 
 	s = strchr(cmd, '.');
 	if (s != NULL &&
@@ -516,24 +519,25 @@
 	case IMAGE_FORMAT_LEGACY:
 		hdr = (image_header_t *)addr;
 
-		if (!image_check_magic (hdr)) {
-			printf("\n** Bad Magic Number 0x%x **\n",
-					image_get_magic (hdr));
-			show_boot_progress (-57);
-			return 1;
-		}
 		show_boot_progress (57);
-
 		image_print_contents (hdr);
 
 		cnt = image_get_image_size (hdr);
 		break;
 #if defined(CONFIG_FIT)
 	case IMAGE_FORMAT_FIT:
-		fit_unsupported ("nand_load_image");
-		return 1;
+		fit_hdr = (const void *)addr;
+		if (!fit_check_format (fit_hdr)) {
+			puts ("** Bad FIT image format\n");
+			return 1;
+		}
+		puts ("Fit image detected...\n");
+
+		cnt = fit_get_size (fit_hdr);
+		break;
 #endif
 	default:
+		show_boot_progress (-57);
 		puts ("** Unknown image type\n");
 		return 1;
 	}
@@ -557,6 +561,12 @@
 	}
 	show_boot_progress (58);
 
+#if defined(CONFIG_FIT)
+	/* This cannot be done earlier, we need complete FIT image in RAM first */
+	if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT)
+		fit_print_contents ((const void *)addr);
+#endif
+
 	/* Loading ok, update default load address */
 
 	load_addr = addr;
@@ -939,6 +949,10 @@
 	ulong offset = 0;
 	image_header_t *hdr;
 	int rcode = 0;
+#if defined(CONFIG_FIT)
+	const void *fit_hdr;
+#endif
+
 	show_boot_progress (52);
 	switch (argc) {
 	case 1:
@@ -997,26 +1011,25 @@
 	switch (genimg_get_format ((void *)addr)) {
 	case IMAGE_FORMAT_LEGACY:
 		hdr = (image_header_t *)addr;
+		image_print_contents (hdr);
 
-		if (image_check_magic (hdr)) {
-
-			image_print_contents (hdr);
-
-			cnt = image_get_image_size (hdr);
-			cnt -= SECTORSIZE;
-		} else {
-			printf ("\n** Bad Magic Number 0x%x **\n",
-					image_get_magic (hdr));
-			show_boot_progress (-57);
-			return 1;
-		}
+		cnt = image_get_image_size (hdr);
+		cnt -= SECTORSIZE;
 		break;
 #if defined(CONFIG_FIT)
 	case IMAGE_FORMAT_FIT:
-		fit_unsupported ("nboot");
-		return 1;
+		fit_hdr = (const void *)addr;
+		if (!fit_check_format (fit_hdr)) {
+			puts ("** Bad FIT image format\n");
+			return 1;
+		}
+		puts ("Fit image detected...\n");
+
+		cnt = fit_get_size (fit_hdr);
+		break;
 #endif
 	default:
+		show_boot_progress (-57);
 		puts ("** Unknown image type\n");
 		return 1;
 	}
@@ -1031,6 +1044,12 @@
 	}
 	show_boot_progress (58);
 
+#if defined(CONFIG_FIT)
+	/* This cannot be done earlier, we need complete FIT image in RAM first */
+	if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT)
+		fit_print_contents ((const void *)addr);
+#endif
+
 	/* Loading ok, update default load address */
 
 	load_addr = addr;