[U-Boot] [PATCH v2] common: Iteration limit for memory test.

Dirk Eibach eibach at gdsys.de
Tue Dec 16 10:22:53 CET 2008


The iteration limit is passed to mtest as a fourth parameter:
[start [end [pattern [iterations]]]]
If no fourth parameter is supplied, there is no iteration limit and the
test will loop forever.

Signed-off-by: Dirk Eibach <eibach at gdsys.de>
---

 - Beautified commit message
 - Whitespace cleanup
 - Linelength cleanup

 common/cmd_mem.c |  225 +++++++++++++++++++++++++++++------------------------
 1 files changed, 123 insertions(+), 102 deletions(-)

diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index d7666c2..405d45f 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -38,9 +38,9 @@
 #include <watchdog.h>
 
 #ifdef	CMD_MEM_DEBUG
-#define	PRINTF(fmt,args...)	printf (fmt ,##args)
+#define	PRINTF(fmt, args...)	printf(fmt, ##args)
 #else
-#define PRINTF(fmt,args...)
+#define PRINTF(fmt, args...)
 #endif
 
 static int mod_mem(cmd_tbl_t *, int, int, int, char *[]);
@@ -60,7 +60,7 @@ static	ulong	base_address = 0;
  *	md{.b, .w, .l} {addr} {len}
  */
 #define DISP_LINE_LEN	16
-int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_md(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong	addr, length;
 #if defined(CONFIG_HAS_DATAFLASH)
@@ -77,7 +77,7 @@ int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	length = dp_last_length;
 
 	if (argc < 2) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
@@ -155,25 +155,25 @@ int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	dp_last_addr = addr;
 	dp_last_length = length;
 	dp_last_size = size;
-	return (rc);
+	return rc;
 }
 
-int do_mem_mm ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_mm(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
-	return mod_mem (cmdtp, 1, flag, argc, argv);
+	return mod_mem(cmdtp, 1, flag, argc, argv);
 }
-int do_mem_nm ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_nm(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
-	return mod_mem (cmdtp, 0, flag, argc, argv);
+	return mod_mem(cmdtp, 0, flag, argc, argv);
 }
 
-int do_mem_mw ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong	addr, writeval, count;
 	int	size;
 
 	if ((argc < 3) || (argc > 4)) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
@@ -211,24 +211,24 @@ int do_mem_mw ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 }
 
 #ifdef CONFIG_MX_CYCLIC
-int do_mem_mdc ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_mdc(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	int i;
 	ulong count;
 
 	if (argc < 4) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
 	count = simple_strtoul(argv[3], NULL, 10);
 
 	for (;;) {
-		do_mem_md (NULL, 0, 3, argv);
+		do_mem_md(NULL, 0, 3, argv);
 
 		/* delay for <count> ms... */
 		for (i=0; i<count; i++)
-			udelay (1000);
+			udelay(1000);
 
 		/* check for ctrl-c to abort... */
 		if (ctrlc()) {
@@ -240,24 +240,24 @@ int do_mem_mdc ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	return 0;
 }
 
-int do_mem_mwc ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_mwc(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	int i;
 	ulong count;
 
 	if (argc < 4) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
 	count = simple_strtoul(argv[3], NULL, 10);
 
 	for (;;) {
-		do_mem_mw (NULL, 0, 3, argv);
+		do_mem_mw(NULL, 0, 3, argv);
 
 		/* delay for <count> ms... */
 		for (i=0; i<count; i++)
-			udelay (1000);
+			udelay(1000);
 
 		/* check for ctrl-c to abort... */
 		if (ctrlc()) {
@@ -270,14 +270,14 @@ int do_mem_mwc ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 }
 #endif /* CONFIG_MX_CYCLIC */
 
-int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_cmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong	addr1, addr2, count, ngood;
 	int	size;
 	int     rcode = 0;
 
 	if (argc != 4) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
@@ -296,14 +296,15 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 #ifdef CONFIG_HAS_DATAFLASH
 	if (addr_dataflash(addr1) | addr_dataflash(addr2)){
-		puts ("Comparison with DataFlash space not supported.\n\r");
+		puts("Comparison with DataFlash space not supported.\n\r");
 		return 0;
 	}
 #endif
 
 #ifdef CONFIG_BLACKFIN
 	if (addr_bfin_on_chip_mem(addr1) || addr_bfin_on_chip_mem(addr2)) {
-		puts ("Comparison with L1 instruction memory not supported.\n\r");
+		puts("Comparison with L1 instruction memory not "
+			"supported.\n\r");
 		return 0;
 	}
 #endif
@@ -355,13 +356,13 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	return rcode;
 }
 
-int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_cp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong	addr, dest, count;
 	int	size;
 
 	if (argc != 4) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
@@ -379,7 +380,7 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	count = simple_strtoul(argv[3], NULL, 16);
 
 	if (count == 0) {
-		puts ("Zero length ???\n");
+		puts("Zero length ???\n");
 		return 1;
 	}
 
@@ -392,14 +393,14 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	   ) {
 		int rc;
 
-		puts ("Copy to Flash... ");
+		puts("Copy to Flash... ");
 
-		rc = flash_write ((char *)addr, dest, count*size);
+		rc = flash_write((char *)addr, dest, count*size);
 		if (rc != 0) {
-			flash_perror (rc);
-			return (1);
+			flash_perror(rc);
+			return 1;
 		}
-		puts ("done\n");
+		puts("done\n");
 		return 0;
 	}
 #endif
@@ -408,38 +409,38 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	if (mmc2info(dest)) {
 		int rc;
 
-		puts ("Copy to MMC... ");
-		switch (rc = mmc_write ((uchar *)addr, dest, count*size)) {
+		puts("Copy to MMC... ");
+		switch (rc = mmc_write((uchar *)addr, dest, count*size)) {
 		case 0:
-			putc ('\n');
+			putc('\n');
 			return 1;
 		case -1:
-			puts ("failed\n");
+			puts("failed\n");
 			return 1;
 		default:
-			printf ("%s[%d] FIXME: rc=%d\n",__FILE__,__LINE__,rc);
+			printf("%s[%d] FIXME: rc=%d\n", __FILE__, __LINE__, rc);
 			return 1;
 		}
-		puts ("done\n");
+		puts("done\n");
 		return 0;
 	}
 
 	if (mmc2info(addr)) {
 		int rc;
 
-		puts ("Copy from MMC... ");
-		switch (rc = mmc_read (addr, (uchar *)dest, count*size)) {
+		puts("Copy from MMC... ");
+		switch (rc = mmc_read(addr, (uchar *)dest, count*size)) {
 		case 0:
-			putc ('\n');
+			putc('\n');
 			return 1;
 		case -1:
-			puts ("failed\n");
+			puts("failed\n");
 			return 1;
 		default:
-			printf ("%s[%d] FIXME: rc=%d\n",__FILE__,__LINE__,rc);
+			printf("%s[%d] FIXME: rc=%d\n", __FILE__, __LINE__, rc);
 			return 1;
 		}
-		puts ("done\n");
+		puts("done\n");
 		return 0;
 	}
 #endif
@@ -449,15 +450,15 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	if (addr_dataflash(dest) && !addr_dataflash(addr)){
 		int rc;
 
-		puts ("Copy to DataFlash... ");
+		puts("Copy to DataFlash... ");
 
-		rc = write_dataflash (dest, addr, count*size);
+		rc = write_dataflash(dest, addr, count*size);
 
 		if (rc != 1) {
-			dataflash_perror (rc);
-			return (1);
+			dataflash_perror(rc);
+			return 1;
 		}
-		puts ("done\n");
+		puts("done\n");
 		return 0;
 	}
 
@@ -470,14 +471,14 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		int rc;
 		rc = read_dataflash(addr, count * size, (char *) dest);
 		if (rc != 1) {
-			dataflash_perror (rc);
-			return (1);
+			dataflash_perror(rc);
+			return 1;
 		}
 		return 0;
 	}
 
 	if (addr_dataflash(addr) && addr_dataflash(dest)){
-		puts ("Unsupported combination of source/destination.\n\r");
+		puts("Unsupported combination of source/destination.\n\r");
 		return 1;
 	}
 #endif
@@ -503,7 +504,7 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	return 0;
 }
 
-int do_mem_base (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_base(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	if (argc > 1) {
 		/* Set new base address.
@@ -516,7 +517,7 @@ int do_mem_base (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	return 0;
 }
 
-int do_mem_loop (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_loop(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong	addr, length, i, junk;
 	int	size;
@@ -525,7 +526,7 @@ int do_mem_loop (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	volatile u_char	*cp;
 
 	if (argc < 3) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
@@ -587,7 +588,7 @@ int do_mem_loop (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 }
 
 #ifdef CONFIG_LOOPW
-int do_mem_loopw (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_loopw(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong	addr, length, i, data;
 	int	size;
@@ -596,7 +597,7 @@ int do_mem_loopw (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	volatile u_char	*cp;
 
 	if (argc < 4) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
@@ -666,12 +667,14 @@ int do_mem_loopw (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  * configured using CONFIG_SYS_ALT_MEMTEST. The complete test loops until
  * interrupted by ctrl-c or by a failure of one of the sub-tests.
  */
-int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_mtest(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	vu_long	*addr, *start, *end;
 	ulong	val;
 	ulong	readback;
 	int     rcode = 0;
+	int iterations = 1;
+	int iteration_limit;
 
 #if defined(CONFIG_SYS_ALT_MEMTEST)
 	vu_long	len;
@@ -687,7 +690,6 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	vu_long *dummy = 0;	/* yes, this is address 0x0, not NULL */
 #endif
 	int	j;
-	int iterations = 1;
 
 	static const ulong bitpattern[] = {
 		0x00000001,	/* single bit */
@@ -704,37 +706,46 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	ulong	pattern;
 #endif
 
-	if (argc > 1) {
+	if (argc > 1)
 		start = (ulong *)simple_strtoul(argv[1], NULL, 16);
-	} else {
+	else
 		start = (ulong *)CONFIG_SYS_MEMTEST_START;
-	}
 
-	if (argc > 2) {
+	if (argc > 2)
 		end = (ulong *)simple_strtoul(argv[2], NULL, 16);
-	} else {
+	else
 		end = (ulong *)(CONFIG_SYS_MEMTEST_END);
-	}
 
-	if (argc > 3) {
+	if (argc > 3)
 		pattern = (ulong)simple_strtoul(argv[3], NULL, 16);
-	} else {
+	else
 		pattern = 0;
-	}
+
+	if (argc > 4)
+		iteration_limit = (ulong)simple_strtoul(argv[4], NULL, 16);
+	else
+		iteration_limit = 0;
 
 #if defined(CONFIG_SYS_ALT_MEMTEST)
-	printf ("Testing %08x ... %08x:\n", (uint)start, (uint)end);
+	printf("Testing %08x ... %08x:\n", (uint)start, (uint)end);
 	PRINTF("%s:%d: start 0x%p end 0x%p\n",
 		__FUNCTION__, __LINE__, start, end);
 
 	for (;;) {
 		if (ctrlc()) {
-			putc ('\n');
+			putc('\n');
 			return 1;
 		}
 
+
+		if (iteration_limit && iterations > iteration_limit) {
+			printf("Tested %d iteration(s) without errors.\n",
+				iterations-1);
+			return 0;
+		}
+
 		printf("Iteration: %6d\r", iterations);
-		PRINTF("Iteration: %6d\n", iterations);
+		PRINTF("\n");
 		iterations++;
 
 		/*
@@ -762,7 +773,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 			*dummy  = ~val; /* clear the test data off of the bus */
 			readback = *addr;
 			if(readback != val) {
-			     printf ("FAILURE (data line): "
+			     printf("FAILURE (data line): "
 				"expected %08lx, actual %08lx\n",
 					  val, readback);
 			}
@@ -770,7 +781,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 			*dummy  = val;
 			readback = *addr;
 			if(readback != ~val) {
-			    printf ("FAILURE (data line): "
+			    printf("FAILURE (data line): "
 				"Is %08lx, should be %08lx\n",
 					readback, ~val);
 			}
@@ -835,7 +846,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		for (offset = 1; offset < len; offset <<= 1) {
 		    temp = start[offset];
 		    if (temp != pattern) {
-			printf ("\nFAILURE: Address bit stuck high @ 0x%.8lx:"
+			printf("\nFAILURE: Address bit stuck high @ 0x%.8lx:"
 				" expected 0x%.8lx, actual 0x%.8lx\n",
 				(ulong)&start[offset], pattern, temp);
 			return 1;
@@ -853,8 +864,9 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		    for (offset = 1; offset < len; offset <<= 1) {
 			temp = start[offset];
 			if ((temp != pattern) && (offset != test_offset)) {
-			    printf ("\nFAILURE: Address bit stuck low or shorted @"
-				" 0x%.8lx: expected 0x%.8lx, actual 0x%.8lx\n",
+			    printf("\nFAILURE: Address bit stuck low or shorted"
+				" @ 0x%.8lx: expected 0x%.8lx,"
+				" actual 0x%.8lx\n",
 				(ulong)&start[offset], pattern, temp);
 			    return 1;
 			}
@@ -891,7 +903,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		    WATCHDOG_RESET();
 		    temp = start[offset];
 		    if (temp != pattern) {
-			printf ("\nFAILURE (read/write) @ 0x%.8lx:"
+			printf("\nFAILURE (read/write) @ 0x%.8lx:"
 				" expected 0x%.8lx, actual 0x%.8lx)\n",
 				(ulong)&start[offset], pattern, temp);
 			return 1;
@@ -909,7 +921,7 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		    anti_pattern = ~pattern;
 		    temp = start[offset];
 		    if (temp != anti_pattern) {
-			printf ("\nFAILURE (read/write): @ 0x%.8lx:"
+			printf("\nFAILURE (read/write): @ 0x%.8lx:"
 				" expected 0x%.8lx, actual 0x%.8lx)\n",
 				(ulong)&start[offset], anti_pattern, temp);
 			return 1;
@@ -922,11 +934,18 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	incr = 1;
 	for (;;) {
 		if (ctrlc()) {
-			putc ('\n');
+			putc('\n');
 			return 1;
 		}
 
-		printf ("\rPattern %08lX  Writing..."
+		if (iteration_limit && iterations > iteration_limit) {
+			printf("Tested %d iteration(s) without errors.\n",
+				iterations-1);
+			return 0;
+		}
+		++iterations;
+
+		printf("\rPattern %08lX  Writing..."
 			"%12s"
 			"\b\b\b\b\b\b\b\b\b\b",
 			pattern, "");
@@ -937,13 +956,13 @@ int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 			val  += incr;
 		}
 
-		puts ("Reading...");
+		puts("Reading...");
 
 		for (addr=start,val=pattern; addr<end; addr++) {
 			WATCHDOG_RESET();
 			readback = *addr;
 			if (readback != val) {
-				printf ("\nMem error @ 0x%08X: "
+				printf("\nMem error @ 0x%08X: "
 					"found %08lX, expected %08lX\n",
 					(uint)addr, readback, val);
 				rcode = 1;
@@ -984,7 +1003,7 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[])
 	extern char console_buffer[];
 
 	if (argc != 2) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
@@ -1012,14 +1031,15 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[])
 
 #ifdef CONFIG_HAS_DATAFLASH
 	if (addr_dataflash(addr)){
-		puts ("Can't modify DataFlash in place. Use cp instead.\n\r");
+		puts("Can't modify DataFlash in place. Use cp instead.\n\r");
 		return 0;
 	}
 #endif
 
 #ifdef CONFIG_BLACKFIN
 	if (addr_bfin_on_chip_mem(addr)) {
-		puts ("Can't modify L1 instruction in place. Use cp instead.\n\r");
+		puts("Can't modify L1 instruction in place. "
+			"Use cp instead.\n\r");
 		return 0;
 	}
 #endif
@@ -1036,7 +1056,7 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[])
 		else
 			printf(" %02x", *((u_char *)addr));
 
-		nbytes = readline (" ? ");
+		nbytes = readline(" ? ");
 		if (nbytes == 0 || (nbytes == 1 && console_buffer[0] == '-')) {
 			/* <CR> pressed as only input, don't modify current
 			 * location and move to next. "-" pressed will go back.
@@ -1082,25 +1102,25 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[])
 
 #ifndef CONFIG_CRC32_VERIFY
 
-int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_crc(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong addr, length;
 	ulong crc;
 	ulong *ptr;
 
 	if (argc < 3) {
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
-	addr = simple_strtoul (argv[1], NULL, 16);
+	addr = simple_strtoul(argv[1], NULL, 16);
 	addr += base_address;
 
-	length = simple_strtoul (argv[2], NULL, 16);
+	length = simple_strtoul(argv[2], NULL, 16);
 
-	crc = crc32 (0, (const uchar *) addr, length);
+	crc = crc32(0, (const uchar *) addr, length);
 
-	printf ("CRC32 for %08lx ... %08lx ==> %08lx\n",
+	printf("CRC32 for %08lx ... %08lx ==> %08lx\n",
 			addr, addr + length - 1, crc);
 
 	if (argc > 3) {
@@ -1113,7 +1133,7 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 #else	/* CONFIG_CRC32_VERIFY */
 
-int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_mem_crc(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong addr, length;
 	ulong crc;
@@ -1125,7 +1145,7 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 	if (argc < 3) {
   usage:
-		printf ("Usage:\n%s\n", cmdtp->usage);
+		printf("Usage:\n%s\n", cmdtp->usage);
 		return 1;
 	}
 
@@ -1147,16 +1167,17 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	crc = crc32(0, (const uchar *) addr, length);
 
 	if (!verify) {
-		printf ("CRC32 for %08lx ... %08lx ==> %08lx\n",
+		printf("CRC32 for %08lx ... %08lx ==> %08lx\n",
 				addr, addr + length - 1, crc);
 		if (ac > 2) {
-			ptr = (ulong *) simple_strtoul (*av++, NULL, 16);
+			ptr = (ulong *) simple_strtoul(*av++, NULL, 16);
 			*ptr = crc;
 		}
 	} else {
 		vcrc = simple_strtoul(*av++, NULL, 16);
 		if (vcrc != crc) {
-			printf ("CRC32 for %08lx ... %08lx ==> %08lx != %08lx ** ERROR **\n",
+			printf("CRC32 for %08lx ... %08lx ==> %08lx != %08lx "
+				"** ERROR **\n",
 					addr, addr + length - 1, crc, vcrc);
 			return 1;
 		}
@@ -1169,9 +1190,9 @@ int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 
 #ifdef CONFIG_CMD_UNZIP
-int  gunzip (void *, int, unsigned char *, unsigned long *);
+int  gunzip(void *, int, unsigned char *, unsigned long *);
 
-int do_unzip ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_unzip(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	unsigned long src, dst;
 	unsigned long src_len = ~0UL, dst_len = ~0UL;
@@ -1186,7 +1207,7 @@ int do_unzip ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 			dst = simple_strtoul(argv[2], NULL, 16);
 			break;
 		default:
-			printf ("Usage:\n%s\n", cmdtp->usage);
+			printf("Usage:\n%s\n", cmdtp->usage);
 			return 1;
 	}
 
@@ -1277,9 +1298,9 @@ U_BOOT_CMD(
 #endif /* CONFIG_LOOPW */
 
 U_BOOT_CMD(
-	mtest,	4,	1,	do_mem_mtest,
-	"mtest	- simple RAM test\n",
-	"[start [end [pattern]]]\n"
+	mtest,	5,	1,	do_mem_mtest,
+	"mtest   - simple RAM test\n",
+	"[start [end [pattern [iterations]]]]\n"
 	"    - simple RAM read/write test\n"
 );
 
-- 
1.5.6.5



More information about the U-Boot mailing list