diff mbox

[U-Boot] cmd/nand.c: Debug additional helpful NAND info

Message ID 1476072508-8349-1-git-send-email-engkhalil86@gmail.com
State Changes Requested
Delegated to: Scott Wood
Headers show

Commit Message

Ahmed Samir Khalil Oct. 10, 2016, 4:08 a.m. UTC
While dealing with large chips (e.g. page: 4KB, OOB:224),
 we found it helpful to get these additional NAND info by
 enabling the DEBUG macro instead of full tracing every time
 and consuming time. Especially about the currently in use
 scheme for testing & development.

Signed-off-by: Ahmed Samir Khalil <engkhalil86@gmail.com>
---
 cmd/nand.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Crystal Wood Nov. 15, 2016, 6:18 a.m. UTC | #1
On Mon, 2016-10-10 at 06:08 +0200, Ahmed Samir Khalil wrote:
> While dealing with large chips (e.g. page: 4KB, OOB:224),
>  we found it helpful to get these additional NAND info by
>  enabling the DEBUG macro instead of full tracing every time
>  and consuming time. Especially about the currently in use
>  scheme for testing & development.
> 
> Signed-off-by: Ahmed Samir Khalil <engkhalil86@gmail.com>
> ---
>  cmd/nand.c | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/cmd/nand.c b/cmd/nand.c
> index c16ec77..ec7f1df 100644
> --- a/cmd/nand.c
> +++ b/cmd/nand.c
> @@ -283,6 +283,9 @@ usage:
>  
>  static void nand_print_and_set_info(int idx)
>  {
> +#ifdef DEBUG
> +	unsigned int i;
> +#endif
>  	struct mtd_info *mtd = nand_info[idx];
>  	struct nand_chip *chip = mtd_to_nand(mtd);
>  
> @@ -298,6 +301,29 @@ static void nand_print_and_set_info(int idx)
>  	printf("  options     0x%8x\n", chip->options);
>  	printf("  bbt options 0x%8x\n", chip->bbt_options);
>  
> +#ifdef DEBUG
> +	printf("  Chip delay  %7d us\n", chip->chip_delay);
> +	printf("  ECC bytes   %8d b\n", nand->ecclayout->eccbytes);
> +	printf("  OOB available %6d b\n\n", nand->ecclayout->oobavail);
> +
> +	printf("  OOB free = {\n");
> +	for (i=0; i < nand->ecclayout->oobfree[i].length; i++) {
> +		if( !(nand->ecclayout->oobfree[i].offset<0) )
> +			printf("	{.offset=%d, ", nand->ecclayout-
> >oobfree[i].offset);
> +
> +		if( !(nand->ecclayout->oobfree[i].length<0) )
> +			printf(".length=%d}, \n", nand->ecclayout-
> >oobfree[i].length);
> +	}

Please use standard U-Boot coding style.

-Scott
diff mbox

Patch

diff --git a/cmd/nand.c b/cmd/nand.c
index c16ec77..ec7f1df 100644
--- a/cmd/nand.c
+++ b/cmd/nand.c
@@ -283,6 +283,9 @@  usage:
 
 static void nand_print_and_set_info(int idx)
 {
+#ifdef DEBUG
+	unsigned int i;
+#endif
 	struct mtd_info *mtd = nand_info[idx];
 	struct nand_chip *chip = mtd_to_nand(mtd);
 
@@ -298,6 +301,29 @@  static void nand_print_and_set_info(int idx)
 	printf("  options     0x%8x\n", chip->options);
 	printf("  bbt options 0x%8x\n", chip->bbt_options);
 
+#ifdef DEBUG
+	printf("  Chip delay  %7d us\n", chip->chip_delay);
+	printf("  ECC bytes   %8d b\n", nand->ecclayout->eccbytes);
+	printf("  OOB available %6d b\n\n", nand->ecclayout->oobavail);
+
+	printf("  OOB free = {\n");
+	for (i=0; i < nand->ecclayout->oobfree[i].length; i++) {
+		if( !(nand->ecclayout->oobfree[i].offset<0) )
+			printf("	{.offset=%d, ", nand->ecclayout->oobfree[i].offset);
+
+		if( !(nand->ecclayout->oobfree[i].length<0) )
+			printf(".length=%d}, \n", nand->ecclayout->oobfree[i].length);
+	}
+
+	printf("  };\n\n");
+	printf("  ECC positions = {\n");
+	for (i=0; i < MTD_MAX_ECCPOS_ENTRIES_LARGE; i++) {
+		if(nand->ecclayout->eccpos[i]>0)
+			printf("%d, ", nand->ecclayout->eccpos[i]);
+	}
+	printf("\n  };\n\n");
+#endif
+
 	/* Set geometry info */
 	setenv_hex("nand_writesize", mtd->writesize);
 	setenv_hex("nand_oobsize", mtd->oobsize);