All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Tyser <ptyser@xes-inc.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] nand_base: Add timeout for NAND reset command
Date: Wed, 04 Feb 2009 14:22:52 -0600	[thread overview]
Message-ID: <1233778972.7067.261.camel@localhost.localdomain> (raw)
In-Reply-To: <4989F25A.6090400@freescale.com>

On Wed, 2009-02-04 at 13:54 -0600, Scott Wood wrote:
> Peter Tyser wrote:
> > +/*
> > + * CONFIG_SYS_NAND_RESET_CNT is used as a timeout mechanism when resetting
> > + * a flash.  NAND flash is initialized prior to interrupts so standard timers
> > + * can't be used.  CONFIG_SYS_NAND_RESET_CNT should be set to a value
> > + * which is greater than (max NAND reset time / NAND status read time).
> > + * A conservative default of 200000 (500 us / 25 ns) is used as a default.
> > + */
> > +#ifndef CONFIG_SYS_NAND_RESET_CNT
> > +#define CONFIG_SYS_NAND_RESET_CNT 200000
> > +#endif
> 
> Where does 25 ns come from?  Should the timeout be in terms of real time 
> rather than iterations (we use get_ticks() for this purpose in 
> fsl_elbc_nand.c)?

The 25ns was calculated based on the addition of trp and trhoh from the
Micron MT29F8G08 datasheet.  Based on the timing diagram for a "Read
Status" cycle I thought this would be the minimum cycle time needed to
read the chip's status.  Other chips (ST, Samsung) I glanced at had > 25
ns read status times as well.

I had tried using get_timer() (I believe nand_wait() would have been
perfect to use), but that didn't work due to interrupts being disabled
when NAND is probed.  I didn't consider using get_ticks()...  That seems
much better.  Is get_ticks() available for all platforms when NAND is
initialized?

Assuming get_ticks() is available for all platforms, would you prefer I:
1. re-do the patch using get_ticks()
2. update nand_wait() to use get_ticks instead of get_timer() and use it

Thanks,
Peter

  reply	other threads:[~2009-02-04 20:22 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-04 19:47 [U-Boot] [PATCH] nand_base: Add timeout for NAND reset command Peter Tyser
2009-02-04 19:54 ` Scott Wood
2009-02-04 20:22   ` Peter Tyser [this message]
2009-02-04 20:45     ` Scott Wood
2009-02-04 21:22       ` Wolfgang Denk
2009-02-04 21:29         ` Peter Tyser
2009-02-04 21:53           ` Wolfgang Denk
2009-02-04 21:31         ` Scott Wood
2009-02-04 21:54           ` Wolfgang Denk
2009-02-05 16:33             ` Peter Tyser
2009-02-05 16:37               ` Scott Wood
2009-02-06 23:30 ` 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=1233778972.7067.261.camel@localhost.localdomain \
    --to=ptyser@xes-inc.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.