All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marek.vasut@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] what to do when the uboot can not mark the phisical bad block of nand flash?
Date: Fri, 25 Nov 2011 09:51:17 +0100	[thread overview]
Message-ID: <201111250951.17247.marek.vasut@gmail.com> (raw)
In-Reply-To: <6a01cea6.1a2e2.133d5caa742.Coremail.liaohengquan1986@163.com>

> Hi, guys                I got a problem. I move a part of source code of
> linux/driver/mtd/nand to the u-boot. But I found that the u-boot can not
> mark the phsical bad block . when I run nand_erase() or nand_scrub(), it
> return error num as below: linux/driver/mtd/nand/nand_base.c
>     2589            chip->erase_cmd(mtd, page & chip->pagemask);     2590  
>               status = chip->waitfunc(mtd, chip); 2592                 /*
>     2593                 * See if operation failed and additional status
> checks are 2594                 * available
>     2595                 */
>     2596                 if ((status & NAND_STATUS_FAIL) &&
> (chip->errstat)) 2597                         status = chip->errstat(mtd,
> chip, FL_ERASING, 2598                                               
> status, page); 2600                 /* See if block erase succeeded */
>     2601                 if (status & NAND_STATUS_FAIL) {
>     2602                         DEBUG(MTD_DEBUG_LEVEL0, "%s: Failed erase,
> " 2603                                         "page 0x%08x\n", __func__,
> page); 2604                         instr->state = MTD_ERASE_FAILED;
>     2605                         instr->fail_addr =
>     2606                                 ((loff_t)page <<
> chip->page_shift); 2607                         goto erase_exit;
>     2608                 }
>         you can find that if block erase is failed(status==-1), it only
> mark the instr(we will not use the instr later), and go to the erase_exit.
> So there is no code to mark the oob of the phisical bad block, neither add
> it to the bad block table. so ,I add the code of writing oob of the
> phisical bad block when it is erased failed, such as below:
> chip->erase_cmd(mtd, page & chip->pagemask);2589
> 
> - Ignored:
>     2590                 status = chip->waitfunc(mtd, chip);
>     2592                 /*
>     2593                 * See if operation failed and additional status
> checks are 2594                 * available
>     2595                 */
>     2596                 if ((status & NAND_STATUS_FAIL) &&
> (chip->errstat)) 2597                         status = chip->errstat(mtd,
> chip, FL_ERASING, 2598                                               
> status, page); 2600                 /* See if block erase succeeded */
>     2601                 if (status & NAND_STATUS_FAIL) {
>     2602                         DEBUG(MTD_DEBUG_LEVEL0, "%s: Failed erase,
> " 2603                                         "page 0x%08x\n", __func__,
> page); 2604                         instr->state = MTD_ERASE_FAILED;
>     2605                         instr->fail_addr =
>     2606                                 ((loff_t)page <<
> chip->page_shift); nand_write_oob(addr);
>     2607                         goto erase_exit;
>     2608                 }
> 
>        Guys, what do you think of it , and what would you to if you  got
> this problem.

Can you please fix your mailer and send this stuff again? It's really hard to 
decode what you're asking please.

M

  reply	other threads:[~2011-11-25  8:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-24 13:36 [U-Boot] what to do when the uboot can not mark the phisical bad block of nand flash? liaohengquan1986
2011-11-25  8:51 ` Marek Vasut [this message]
     [not found] ` <18a422dc.11f19.133df8c393d.Coremail.liaohengquan1986@163.com>
2011-11-26 11:43   ` Marek Vasut
     [not found]   ` <55115875.ca03.133efb6f79a.Coremail.liaohengquan1986@163.com>
2011-11-29 14:31     ` Marek Vasut

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=201111250951.17247.marek.vasut@gmail.com \
    --to=marek.vasut@gmail.com \
    --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.