NAND: Always skip blocks on read/write/boot.

Use of the non-skipping versions was almost always (if not always)
an error, and no valid use case has been identified.

Signed-off-by: Scott Wood <scottwood@freescale.com>
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index 710ba8f..2c421e9 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -332,8 +332,8 @@
 			return 1;
 
 		s = strchr(cmd, '.');
-		if (s != NULL &&
-		    (!strcmp(s, ".jffs2") || !strcmp(s, ".e") || !strcmp(s, ".i"))) {
+		if (!s || !strcmp(s, ".jffs2") ||
+		    !strcmp(s, ".e") || !strcmp(s, ".i")) {
 			if (read) {
 				/* read */
 				nand_read_options_t opts;
@@ -372,10 +372,8 @@
 			else
 				ret = nand->write_oob(nand, off, &ops);
 		} else {
-			if (read)
-				ret = nand_read(nand, off, &size, (u_char *)addr);
-			else
-				ret = nand_write(nand, off, &size, (u_char *)addr);
+			printf("Unknown nand command suffix '%s'.\n", s);
+			return 1;
 		}
 
 		printf(" %d bytes %s: %s\n", size,
@@ -492,10 +490,10 @@
            "nand - NAND sub-system\n",
            "info - show available NAND devices\n"
            "nand device [dev] - show or set current device\n"
-           "nand read[.jffs2] - addr off|partition size\n"
-           "nand write[.jffs2] - addr off|partition size\n"
+           "nand read - addr off|partition size\n"
+           "nand write - addr off|partition size\n"
            "    read/write 'size' bytes starting at offset 'off'\n"
-           "    to/from memory address 'addr'\n"
+           "    to/from memory address 'addr', skipping bad blocks.\n"
            "nand erase [clean] [off size] - erase 'size' bytes from\n"
            "    offset 'off' (entire device if not specified)\n"
            "nand bad - show bad blocks\n"
@@ -514,15 +512,17 @@
 	char *ep, *s;
 	size_t cnt;
 	image_header_t *hdr;
-	int jffs2 = 0;
 #if defined(CONFIG_FIT)
 	const void *fit_hdr = NULL;
 #endif
 
 	s = strchr(cmd, '.');
 	if (s != NULL &&
-	    (!strcmp(s, ".jffs2") || !strcmp(s, ".e") || !strcmp(s, ".i")))
-		jffs2 = 1;
+	    (strcmp(s, ".jffs2") && !strcmp(s, ".e") && !strcmp(s, ".i"))) {
+		printf("Unknown nand load suffix '%s'\n", s);
+		show_boot_progress(-53);
+		return 1;
+	}
 
 	printf("\nLoading from %s, offset 0x%lx\n", nand->name, offset);
 
@@ -559,6 +559,7 @@
 	}
 	show_boot_progress (57);
 
+	/* FIXME: skip bad blocks */
 	r = nand_read(nand, offset, &cnt, (u_char *) addr);
 	if (r) {
 		puts("** Read error\n");
@@ -680,7 +681,7 @@
 
 U_BOOT_CMD(nboot, 4, 1, do_nandboot,
 	"nboot   - boot from NAND device\n",
-	"[.jffs2] [partition] | [[[loadAddr] dev] offset]\n");
+	"[partition] | [[[loadAddr] dev] offset]\n");
 
 #endif