All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Sakoman <steve@sakoman.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] fw_setenv broken?
Date: Thu, 18 Nov 2010 16:13:52 -0800	[thread overview]
Message-ID: <1290125632.2927.1620.camel@quadra> (raw)
In-Reply-To: <20101117160802.5bacf545@udp111988uds.am.freescale.net>

On Wed, 2010-11-17 at 16:08 -0600, Scott Wood wrote:
> On Wed, 17 Nov 2010 22:40:49 +0100
> Wolfgang Denk <wd@denx.de> wrote:
> 
> > Dear Steve Sakoman,
> > 
> > In message <AANLkTimrfQ5+AWfdFy_fueTMH=x=xrkaZGNtK8fiSD48@mail.gmail.com> you wrote:
> > >
> > > readenv: offset = 240000
> > > readenv: nand_read failure = -117
> > > *** Warning - readenv() failed, using default environment
> > > 
> > > I then immediately tried to use the nand read command to read the same
> > > block, and it was successful!
> > 
> > Hm... any chance that - for example - your timers are not working
> > correctly before relocation (maybe because they try to write to the
> > not yet available data segment) ? This could cause timeouts or delays
> > to be too short, so the NAND driver is misbehaving?
> 
> The NAND driver only works after relocation.
> 
> It looks like the problem is that -EUCLEAN is a non-fatal error
> (indicates a correctable ECC error).  The code invoked by the "nand
> read" command succeeds if nand_read() returns either 0 or -EUCLEAN, but
> readenv() is missing this check.

Changing readenv to use nand_read_skip_bad eliminated the -117 (EUCLEAN) failures.

Now I am getting just the -74 (EBADMSG) errors for fw_setenv written environments.

It seems that fw_printenv can always read u-boot written environments, but 99.9%
of the time I get a -74 (EBADMSG) error in u-boot for environments written by fw_setenv:

NAND read from offset 240000 failed -74
*** Warning - readenv() failed, using default environment

If I try to read the environment using the nand read tool I get the same error.

Using fw_printenv always seems to work -- whether u-boot or fw_setenv was the writer.

The code generating both errors is in the nand_do_read_ops function in nand_base.c:

       if (mtd->ecc_stats.failed - stats.failed)
               return -EBADMSG;

       return  mtd->ecc_stats.corrected - stats.corrected ? -EUCLEAN : 0;
}

I understand that the -EUCLEAN error indicates a correctable ECC error.  What does the -EBADMSG error indicate?

This condition doesn't seem to bother the linux driver, but u-boot doesn't like it at all!

Steve

  parent reply	other threads:[~2010-11-19  0:13 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-17 16:30 [U-Boot] fw_setenv broken? Steve Sakoman
2010-11-17 16:56 ` Stefano Babic
2010-11-17 17:39   ` Wolfgang Denk
2010-11-17 17:51     ` Steve Sakoman
2010-11-17 18:13     ` Mike Frysinger
2010-11-17 18:28       ` Wolfgang Denk
2010-11-17 20:05     ` Steve Sakoman
2010-11-17 20:47       ` Wolfgang Denk
2010-11-17 21:29         ` Steve Sakoman
2010-11-17 21:40           ` Wolfgang Denk
2010-11-17 21:55             ` Steve Sakoman
2010-11-17 22:08             ` Scott Wood
2010-11-17 22:48               ` Steve Sakoman
2010-11-17 23:05                 ` Wolfgang Denk
2010-11-19  0:13               ` Steve Sakoman [this message]
2010-11-19  0:20                 ` Scott Wood
2010-11-19  0:33                   ` Steve Sakoman
2010-11-19  5:09                   ` Steve Sakoman

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=1290125632.2927.1620.camel@quadra \
    --to=steve@sakoman.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.