diff options
| author | Wolfgang Denk <wd@pollux.denx.de> | 2006-11-30 18:02:20 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2006-11-30 18:02:20 +0100 | 
| commit | dd520bf314c7add4183c5191692180f576f96b60 (patch) | |
| tree | cf491729e5ca4a222a7fd7fe7205e5157de05f77 /common/cmd_nand.c | |
| parent | ab07b6c221da99442b6c93986ca30607c6289bf0 (diff) | |
| download | olio-uboot-2014.01-dd520bf314c7add4183c5191692180f576f96b60.tar.xz olio-uboot-2014.01-dd520bf314c7add4183c5191692180f576f96b60.zip | |
Code cleanup.
Diffstat (limited to 'common/cmd_nand.c')
| -rw-r--r-- | common/cmd_nand.c | 280 | 
1 files changed, 142 insertions, 138 deletions
| diff --git a/common/cmd_nand.c b/common/cmd_nand.c index 7286726f1..b011b5e3d 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -684,178 +684,182 @@ extern int nand_write_oob(struct nand_chip *nand, size_t ofs,  				size_t len, size_t *retlen, const u_char *buf); -int do_nand (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +int do_nand (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])  { -    int rcode = 0; - -    switch (argc) { -    case 0: -    case 1: -	printf ("Usage:\n%s\n", cmdtp->usage); -	return 1; -    case 2: -	if (strcmp(argv[1],"info") == 0) { -		int i; +	int rcode = 0; -		putc ('\n'); +	switch (argc) { +	case 0: +	case 1: +		printf ("Usage:\n%s\n", cmdtp->usage); +		return 1; +	case 2: +		if (strcmp (argv[1], "info") == 0) { +			int i; -		for (i=0; i<CFG_MAX_NAND_DEVICE; ++i) { -			if(nand_dev_desc[i].ChipID == NAND_ChipID_UNKNOWN) -				continue; /* list only known devices */ -			printf ("Device %d: ", i); -			nand_print(&nand_dev_desc[i]); -		} -		return 0; +			putc ('\n'); -	} else if (strcmp(argv[1],"device") == 0) { -		if ((curr_device < 0) || (curr_device >= CFG_MAX_NAND_DEVICE)) { -			puts ("\nno devices available\n"); -			return 1; -		} -		printf ("\nDevice %d: ", curr_device); -		nand_print(&nand_dev_desc[curr_device]); -		return 0; +			for (i = 0; i < CFG_MAX_NAND_DEVICE; ++i) { +				if (nand_dev_desc[i].ChipID == +				    NAND_ChipID_UNKNOWN) +					continue;	/* list only known devices */ +				printf ("Device %d: ", i); +				nand_print (&nand_dev_desc[i]); +			} +			return 0; -	} else if (strcmp(argv[1],"bad") == 0) { -		if ((curr_device < 0) || (curr_device >= CFG_MAX_NAND_DEVICE)) { -			puts ("\nno devices available\n"); -			return 1; -		} -		printf ("\nDevice %d bad blocks:\n", curr_device); -		nand_print_bad(&nand_dev_desc[curr_device]); -		return 0; +		} else if (strcmp (argv[1], "device") == 0) { +			if ((curr_device < 0) +			    || (curr_device >= CFG_MAX_NAND_DEVICE)) { +				puts ("\nno devices available\n"); +				return 1; +			} +			printf ("\nDevice %d: ", curr_device); +			nand_print (&nand_dev_desc[curr_device]); +			return 0; -	} -	printf ("Usage:\n%s\n", cmdtp->usage); -	return 1; -    case 3: -	if (strcmp(argv[1],"device") == 0) { -		int dev = (int)simple_strtoul(argv[2], NULL, 10); +		} else if (strcmp (argv[1], "bad") == 0) { +			if ((curr_device < 0) +			    || (curr_device >= CFG_MAX_NAND_DEVICE)) { +				puts ("\nno devices available\n"); +				return 1; +			} +			printf ("\nDevice %d bad blocks:\n", curr_device); +			nand_print_bad (&nand_dev_desc[curr_device]); +			return 0; -		printf ("\nDevice %d: ", dev); -		if (dev >= CFG_MAX_NAND_DEVICE) { -			puts ("unknown device\n"); -			return 1;  		} -		nand_print(&nand_dev_desc[dev]); -		/*nand_print (dev);*/ +		printf ("Usage:\n%s\n", cmdtp->usage); +		return 1; +	case 3: +		if (strcmp (argv[1], "device") == 0) { +			int dev = (int) simple_strtoul (argv[2], NULL, 10); -		if (nand_dev_desc[dev].ChipID == NAND_ChipID_UNKNOWN) { -			return 1; -		} +			printf ("\nDevice %d: ", dev); +			if (dev >= CFG_MAX_NAND_DEVICE) { +				puts ("unknown device\n"); +				return 1; +			} +			nand_print (&nand_dev_desc[dev]); +			/*nand_print (dev); */ + +			if (nand_dev_desc[dev].ChipID == NAND_ChipID_UNKNOWN) { +				return 1; +			} -		curr_device = dev; +			curr_device = dev; -		puts ("... is now current device\n"); +			puts ("... is now current device\n"); -		return 0; -	} -	else if (strcmp(argv[1],"erase") == 0 && strcmp(argv[2], "clean") == 0) { -		struct nand_chip* nand = &nand_dev_desc[curr_device]; -		ulong off = 0; -		ulong size = nand->totlen; -		int ret; +			return 0; +		} else if (strcmp (argv[1], "erase") == 0 +			   && strcmp (argv[2], "clean") == 0) { +			struct nand_chip *nand = &nand_dev_desc[curr_device]; +			ulong off = 0; +			ulong size = nand->totlen; +			int ret; -		printf ("\nNAND erase: device %d offset %ld, size %ld ... ", -			curr_device, off, size); +			printf ("\nNAND erase: device %d offset %ld, size %ld ... ", curr_device, off, size); -		ret = nand_legacy_erase (nand, off, size, 1); +			ret = nand_legacy_erase (nand, off, size, 1); -		printf("%s\n", ret ? "ERROR" : "OK"); +			printf ("%s\n", ret ? "ERROR" : "OK"); -		return ret; -	} +			return ret; +		} -	printf ("Usage:\n%s\n", cmdtp->usage); -	return 1; -    default: -	/* at least 4 args */ +		printf ("Usage:\n%s\n", cmdtp->usage); +		return 1; +	default: +		/* at least 4 args */ -	if (strncmp(argv[1], "read", 4) == 0 || -	    strncmp(argv[1], "write", 5) == 0) { -		ulong addr = simple_strtoul(argv[2], NULL, 16); -		ulong off  = simple_strtoul(argv[3], NULL, 16); -		ulong size = simple_strtoul(argv[4], NULL, 16); -		int cmd    = (strncmp(argv[1], "read", 4) == 0) ? +		if (strncmp (argv[1], "read", 4) == 0 || +		    strncmp (argv[1], "write", 5) == 0) { +			ulong addr = simple_strtoul (argv[2], NULL, 16); +			ulong off = simple_strtoul (argv[3], NULL, 16); +			ulong size = simple_strtoul (argv[4], NULL, 16); +			int cmd = (strncmp (argv[1], "read", 4) == 0) ?  				NANDRW_READ : NANDRW_WRITE; -		int ret, total; -		char* cmdtail = strchr(argv[1], '.'); +			int ret, total; +			char *cmdtail = strchr (argv[1], '.'); -		if (cmdtail && !strncmp(cmdtail, ".oob", 2)) { -			/* read out-of-band data */ -			if (cmd & NANDRW_READ) { -				ret = nand_read_oob(nand_dev_desc + curr_device, -						    off, size, (size_t *)&total, -						    (u_char*)addr); -			} -			else { -				ret = nand_write_oob(nand_dev_desc + curr_device, -						     off, size, (size_t *)&total, -						     (u_char*)addr); +			if (cmdtail && !strncmp (cmdtail, ".oob", 2)) { +				/* read out-of-band data */ +				if (cmd & NANDRW_READ) { +					ret = nand_read_oob (nand_dev_desc + curr_device, +							     off, size, (size_t *) & total, +							     (u_char *) addr); +				} else { +					ret = nand_write_oob (nand_dev_desc + curr_device, +							      off, size, (size_t *) & total, +							      (u_char *) addr); +				} +				return ret; +			} else if (cmdtail && !strncmp (cmdtail, ".jffs2", 2)) +				cmd |= NANDRW_JFFS2;	/* skip bad blocks */ +			else if (cmdtail && !strncmp (cmdtail, ".jffs2s", 2)) { +				cmd |= NANDRW_JFFS2;	/* skip bad blocks (on read too) */ +				if (cmd & NANDRW_READ) +					cmd |= NANDRW_JFFS2_SKIP;	/* skip bad blocks (on read too) */  			} -			return ret; -		} -		else if (cmdtail && !strncmp(cmdtail, ".jffs2", 2)) -			cmd |= NANDRW_JFFS2;	/* skip bad blocks */ -		else if (cmdtail && !strncmp(cmdtail, ".jffs2s", 2)) { -			cmd |= NANDRW_JFFS2;	/* skip bad blocks (on read too) */ -			if (cmd & NANDRW_READ) -				cmd |= NANDRW_JFFS2_SKIP;	/* skip bad blocks (on read too) */ -		}  #ifdef SXNI855T -		/* need ".e" same as ".j" for compatibility with older units */ -		else if (cmdtail && !strcmp(cmdtail, ".e")) -			cmd |= NANDRW_JFFS2;	/* skip bad blocks */ +			/* need ".e" same as ".j" for compatibility with older units */ +			else if (cmdtail && !strcmp (cmdtail, ".e")) +				cmd |= NANDRW_JFFS2;	/* skip bad blocks */  #endif  #ifdef CFG_NAND_SKIP_BAD_DOT_I -		/* need ".i" same as ".jffs2s" for compatibility with older units (esd) */ -		/* ".i" for image -> read skips bad block (no 0xff) */ -		else if (cmdtail && !strcmp(cmdtail, ".i")) { -			cmd |= NANDRW_JFFS2;	/* skip bad blocks (on read too) */ -			if (cmd & NANDRW_READ) -				cmd |= NANDRW_JFFS2_SKIP;	/* skip bad blocks (on read too) */ -		} +			/* need ".i" same as ".jffs2s" for compatibility with older units (esd) */ +			/* ".i" for image -> read skips bad block (no 0xff) */ +			else if (cmdtail && !strcmp (cmdtail, ".i")) { +				cmd |= NANDRW_JFFS2;	/* skip bad blocks (on read too) */ +				if (cmd & NANDRW_READ) +					cmd |= NANDRW_JFFS2_SKIP;	/* skip bad blocks (on read too) */ +			}  #endif /* CFG_NAND_SKIP_BAD_DOT_I */ -		else if (cmdtail) { -			printf ("Usage:\n%s\n", cmdtp->usage); -			return 1; -		} +			else if (cmdtail) { +				printf ("Usage:\n%s\n", cmdtp->usage); +				return 1; +			} -		printf ("\nNAND %s: device %d offset %ld, size %ld ...\n", -			(cmd & NANDRW_READ) ? "read" : "write", -			curr_device, off, size); +			printf ("\nNAND %s: device %d offset %ld, size %ld ...\n", +				(cmd & NANDRW_READ) ? "read" : "write", +				curr_device, off, size); -		ret = nand_legacy_rw(nand_dev_desc + curr_device, cmd, off, size, -			     (size_t *)&total, (u_char*)addr); +			ret = nand_legacy_rw (nand_dev_desc + curr_device, +					      cmd, off, size, +					      (size_t *) & total, +					      (u_char *) addr); -		printf (" %d bytes %s: %s\n", total, -			(cmd & NANDRW_READ) ? "read" : "written", -			ret ? "ERROR" : "OK"); +			printf (" %d bytes %s: %s\n", total, +				(cmd & NANDRW_READ) ? "read" : "written", +				ret ? "ERROR" : "OK"); -		return ret; -	} else if (strcmp(argv[1],"erase") == 0 && -		   (argc == 4 || strcmp("clean", argv[2]) == 0)) { -		int clean = argc == 5; -		ulong off = simple_strtoul(argv[2 + clean], NULL, 16); -		ulong size = simple_strtoul(argv[3 + clean], NULL, 16); -		int ret; +			return ret; +		} else if (strcmp (argv[1], "erase") == 0 && +			   (argc == 4 || strcmp ("clean", argv[2]) == 0)) { +			int clean = argc == 5; +			ulong off = +				simple_strtoul (argv[2 + clean], NULL, 16); +			ulong size = +				simple_strtoul (argv[3 + clean], NULL, 16); +			int ret; -		printf ("\nNAND erase: device %d offset %ld, size %ld ...\n", -			curr_device, off, size); +			printf ("\nNAND erase: device %d offset %ld, size %ld ...\n", +				curr_device, off, size); -		ret = nand_legacy_erase (nand_dev_desc + curr_device, -					off, size, clean); +			ret = nand_legacy_erase (nand_dev_desc + curr_device, +						 off, size, clean); -		printf("%s\n", ret ? "ERROR" : "OK"); +			printf ("%s\n", ret ? "ERROR" : "OK"); -		return ret; -	} else { -		printf ("Usage:\n%s\n", cmdtp->usage); -		rcode = 1; -	} +			return ret; +		} else { +			printf ("Usage:\n%s\n", cmdtp->usage); +			rcode = 1; +		} -	return rcode; -    } +		return rcode; +	}  }  U_BOOT_CMD( |