public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] NAND feature update
Date: Sat, 21 Oct 2006 12:32:24 +0200	[thread overview]
Message-ID: <200610211232.24780.sr@denx.de> (raw)
In-Reply-To: <20061019022942.GA12357@orphique>

Hi Ladis,

On Thursday 19 October 2006 04:29, Ladislav Michl wrote:
> Here is updated patch, regenerated against top of git tree. Please give
> it a try.
> 
> Signed-off-by: Ladislav Michl <ladis@linux-mips.org>

Does not apply clean anymore. Could you please fix this and resubmit. Thanks.

And here already some comments:

<snip>

> @@ -83,50 +92,70 @@ static int nand_dump(nand_info_t *nand, 
>  
>  /* ------------------------------------------------------------------------- */
>  
> -static void
> -arg_off_size(int argc, char *argv[], ulong *off, ulong *size, ulong totsize)
> +static int str2long(char *p, ulong *num)

Please either remove this small helper function are make it inline.

<snip>

> @@ -181,7 +210,7 @@ int do_nand(cmd_tbl_t * cmdtp, int flag,
>  		return 0;
>  	}
>  
> -	if (strcmp(cmd, "bad") != 0 && strcmp(cmd, "erase") != 0 &&
> +	if (strcmp(cmd, "bad") != 0 && strncmp(cmd, "erase", 3) != 0 &&

Please don't change the check on "erase" here. The string should match
completely and not only the first 3 chars.

>  	    strncmp(cmd, "dump", 4) != 0 &&
>  	    strncmp(cmd, "read", 4) != 0 && strncmp(cmd, "write", 5) != 0 &&
>  	    strcmp(cmd, "scrub") != 0 && strcmp(cmd, "markbad") != 0 &&
> @@ -205,35 +234,15 @@ int do_nand(cmd_tbl_t * cmdtp, int flag,
>  		return 0;
>  	}
>  
> -	if (strcmp(cmd, "erase") == 0 || strcmp(cmd, "scrub") == 0) {
> +	if (strncmp(cmd, "erase", 3) == 0 || strcmp(cmd, "scrub") == 0) {

Again.

>  		nand_erase_options_t opts;
>  		int clean = argc >= 3 && !strcmp("clean", argv[2]);
> -		int rest_argc = argc - 2;
> -		char **rest_argv = argv + 2;
> +		int o = clean ? 3 : 2;
>  		int scrub = !strcmp(cmd, "scrub");
>  
> -		if (clean) {
> -			rest_argc--;
> -			rest_argv++;
> -		}
> -
> -		if (rest_argc == 0) {
> -
> -			printf("\nNAND %s: device %d whole chip\n",
> -			       cmd,
> -			       nand_curr_device);
> -
> -			off = size = 0;
> -		} else {
> -			arg_off_size(rest_argc, rest_argv, &off, &size,
> -				     nand->size);
> -
> -			if (off == 0 && size == 0)
> -				return 1;
> -
> -			printf("\nNAND %s: device %d offset 0x%x, size 0x%x\n",
> -			       cmd, nand_curr_device, off, size);
> -		}
> +		printf("\nNAND %s: ", scrub ? "scrub" : "erase");
> +		if (arg_off_size(argc - o, argv + o, nand, &off, &size) != 0)
> +			return 1;

This seems quite obscure (at least to Wolfgang and me ;-)). Could you please
either make the code a little more "readable", or at least add some comments
here. Thanks.

>  
>  		memset(&opts, 0, sizeof(opts));
>  		opts.offset = off;
> @@ -242,23 +251,23 @@ int do_nand(cmd_tbl_t * cmdtp, int flag,
>  		opts.quiet  = quiet;
>  
>  		if (scrub) {
> -			printf("Warning: "
> -			       "scrub option will erase all factory set "
> -			       "bad blocks!\n"
> -			       "	 "
> -			       "There is no reliable way to recover them.\n"
> -			       "	 "
> -			       "Use this command only for testing purposes "
> -			       "if you\n"
> -			       "	 "
> -			       "are sure of what you are doing!\n"
> -			       "\nReally scrub this NAND flash? <y/N>\n"
> -				);
> +			puts("Warning: "
> +			     "scrub option will erase all factory set "
> +			     "bad blocks!\n"
> +			     "         "
> +			     "There is no reliable way to recover them.\n"
> +			     "         "
> +			     "Use this command only for testing purposes "
> +			     "if you\n"
> +			     "         "
> +			     "are sure of what you are doing!\n"
> +			     "\nReally scrub this NAND flash? <y/N>\n"
> +			    );

Indentation with TAB's please.

<snip>

> @@ -404,9 +408,9 @@ int do_nand(cmd_tbl_t * cmdtp, int flag,
>  		       }
>  		} else {
>  			if (!nand_lock(nand, tight)) {
> -				printf ("NAND flash successfully locked\n");
> +				puts("NAND flash successfully locked\n");
>  			} else {
> -				printf ("Error locking NAND flash. \n");
> +				puts("Error locking NAND flash. \n");

Please remove the space after the ".". Thanks.

>  				return 1;
>  			}
>  		}
> @@ -414,19 +418,14 @@ int do_nand(cmd_tbl_t * cmdtp, int flag,
>  	}
>  
>  	if (strcmp(cmd, "unlock") == 0) {
> -		if (argc == 2) {
> -			off = 0;
> -			size = nand->size;
> -		} else {
> -			arg_off_size(argc - 2, argv + 2, &off, &size,
> -				     nand->size);
> -		}
> +		if (arg_off_size(argc - 2, argv + 2, nand, &off, &size) < 0)
> +			return 1;
>  
>  		if (!nand_unlock(nand, off, size)) {
> -			printf("NAND flash successfully unlocked\n");
> +			puts("NAND flash successfully unlocked\n");
>  		} else {
> -			printf("Error unlocking NAND flash. "
> -			       "Write and erase will probably fail\n");
> +			puts("Error unlocking NAND flash. "

Please remove the space after the ".". Thanks.

Best regards,
Stefan

  reply	other threads:[~2006-10-21 10:32 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-20 22:14 [U-Boot-Users] [PATCH] NAND feature update Ladislav Michl
2006-10-19  2:29 ` Ladislav Michl
2006-10-21 10:32   ` Stefan Roese [this message]
2006-10-21 18:12     ` Wolfgang Denk
2006-10-23  8:21     ` Ladislav Michl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200610211232.24780.sr@denx.de \
    --to=sr@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox