All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot]  nand: current mainline show "new" startup output
Date: Mon, 13 Feb 2012 09:18:08 +0100	[thread overview]
Message-ID: <4F38C740.4050409@denx.de> (raw)

Hello Christian, Scott,

current mainline code of U-Boot:

commit 9a3aae22edf1eda6326cc51c28631ca5c23b7706
Author: Christian Riesch <christian.riesch@omicron.at>
Date:   Thu Feb 2 00:44:42 2012 +0000

    arm, davinci: Add support for the Calimain board from OMICRON electronics

    This patch adds support for the Calimain board from
    OMICRON electronics GmbH. The board features a Texas Instruments AM1808
    SoC, 128 MB DDR2 memory, and 64 MB NOR flash memory connected to CS2 and
    CS3.

    Signed-off-by: Christian Riesch <christian.riesch@omicron.at>

shows now on startup the following printfs on the enbw_cmc board:



U-Boot 2011.12-00331-ga400f85 (Feb 13 2012 - 08:49:17)

I2C:   ready
[...]
NAND:  Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
nand_read_bbt: Bad block at 0x000002980000
nand_read_bbt: Bad block at 0x000003240000
128 MiB
MMC:   davinci: 0

Found with "git bisect" the reason:

[hs at pollux u-boot]$ git bisect good
2a8e0fc8b3dc31a3c571e439fbf04b882c8986be is the first bad commit
commit 2a8e0fc8b3dc31a3c571e439fbf04b882c8986be
Author: Christian Hitz <christian.hitz@aizo.com>
Date:   Wed Oct 12 09:32:02 2011 +0200

    nand: Merge changes from Linux nand driver

    [backport from linux commit 02f8c6aee8df3cdc935e9bdd4f2d020306035dbe]

    This patch synchronizes the nand driver with the Linux 3.0 state.

    Signed-off-by: Christian Hitz <christian.hitz@aizo.com>
    Cc: Scott Wood <scottwood@freescale.com>
    [scottwood at freescale.com: minor fixes]
    Signed-off-by: Scott Wood <scottwood@freescale.com>

:040000 040000 5ab34f43b64379528b9ef2652c8481fdab1a927a b453a49035e179dfb5f31c3164a1b7d3d62d66d6 M      drivers
:040000 040000 b59a7f3136da038b4b49c48cd0958e140a09ed66 a8fd298715a562fda0a350e6f732c1072ca7d410 M      include
[hs at pollux u-boot]$

Looking in this patch, it seems to me, this is the "reason":

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 758b53f..ed2640c 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
[...]
@@ -2992,9 +3145,10 @@ int nand_scan_tail(struct mtd_info *mtd)

        /* Check, if we should skip the bad block table scan */
        if (chip->options & NAND_SKIP_BBTSCAN)
-               chip->options |= NAND_BBT_SCANNED;
+               return 0;

-       return 0;
+       /* Build bad block table */
+       return chip->scan_bbt(mtd);
 }

 /**

... This printfs in the startoutput are suboptimal ... maybe we apply
the following patch:

diff --git a/drivers/mtd/nand/nand_bbt.c b/drivers/mtd/nand/nand_bbt.c
index 2b730e0..bf12df8 100644
--- a/drivers/mtd/nand/nand_bbt.c
+++ b/drivers/mtd/nand/nand_bbt.c
@@ -259,10 +259,10 @@ static int read_bbt(struct mtd_info *mtd, uint8_t *buf, int page, int num,
                                        mtd->ecc_stats.bbtblocks++;
                                        continue;
                                }
-                               /* Leave it for now, if its matured we can move this
-                                * message to MTD_DEBUG_LEVEL0 */
-                               printk(KERN_DEBUG "nand_read_bbt: Bad block at 0x%012llx\n",
-                                      (loff_t)((offs << 2) + (act >> 1)) << this->bbt_erase_shift);
+                               MTDDEBUG(MTD_DEBUG_LEVEL0, "nand_read_bbt: " \
+                                       "Bad block at 0x%012llx\n",
+                                       (loff_t)((offs << 2) + (act >> 1))
+                                       << this->bbt_erase_shift);
                                /* Factory marked bad or worn out ? */
                                if (tmp == 0)
                                        this->bbt[offs + (act >> 3)] |= 0x3 << (act & 0x06);
@@ -651,8 +651,9 @@ static int search_bbt(struct mtd_info *mtd, uint8_t *buf, struct nand_bbt_descr
                if (td->pages[i] == -1)
                        printk(KERN_WARNING "Bad block table not found for chip %d\n", i);
                else
-                       printk(KERN_DEBUG "Bad block table found at page %d, version 0x%02X\n", td->pages[i],
-                              td->version[i]);
+                       MTDDEBUG(MTD_DEBUG_LEVEL0, "Bad block table found " \
+                               "at page %d, version 0x%02X\n", td->pages[i],
+                               td->version[i]);
        }
        return 0;
 }

If this patch is OK, I can send it ...

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

             reply	other threads:[~2012-02-13  8:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-13  8:18 Heiko Schocher [this message]
2012-02-13 17:06 ` [U-Boot] nand: current mainline show "new" startup output Scott Wood
2012-02-14  6:38   ` Heiko Schocher
2012-02-14 17:12     ` Scott Wood

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=4F38C740.4050409@denx.de \
    --to=hs@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.