From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Ricard Wanderlof <ricard.wanderlof@axis.com>
Cc: Linux mtd <linux-mtd@lists.infradead.org>
Subject: Re: [PATCH 1/4] of: Add device tree bindings for Evatronix
Date: Fri, 28 Oct 2016 18:20:22 +0200 [thread overview]
Message-ID: <20161028182022.7643c4ea@bbrezillon> (raw)
In-Reply-To: <alpine.DEB.2.02.1610281725060.9986@lnxricardw1.se.axis.com>
On Fri, 28 Oct 2016 18:01:44 +0200
Ricard Wanderlof <ricard.wanderlof@axis.com> wrote:
> On Fri, 28 Oct 2016, Boris Brezillon wrote:
>
> > > One thing I would have liked to have is to have the actual timing mode
> > > number in the nand_data_interface struct, for controllers like in my case
> > > where it's problematic to take the numeric timing values and map them to
> > > register values, and the timing register values need to be pre-computed.
> >
> > What do you mean by pre-computed? If you're able to pre-compute the
> > timings, why can't you do that at runtime?
>
> The short answer in this case is because the timing values were delivered
> by our ASIC integration vendor, partly after running simulations to verify
> the exact timing using the actual silicon layout. That is why I originally
> wanted to put those timing register values directly in the DT, becuase
> they are in practice part of the specifications for the actual ASIC. In
> essence, we looked at the flash chips we wanted to use with the ASIC, and
> realized they all conformed to ONFi mode 2. Our vendor then provided us
> with mode 2 timing values that they guaranteed would work with the chip.
> (In addition, mode 0 is used during initial boot so minimize the
> likeleyhood that something would go wrong, given that the boot loader is
> in a ROM.) Especially given that there was no mtd timing setup
> infrastructure at the time, we had no interest in how the values were
> derived, or to support more modes.
>
> Another issue is how to model the internal delays within the ASIC between
> the NAND controller IP and the pads, which are also part of the equation.
>
> I don't know if our case is unique, but at least it is an example of a
> situation in which runtime calculation of the timing register values is
> problematic.
Okay. I guess we could add the associated ONFI timing mode to the
nand_data_interface struct (it would represent the closest one if the
NAND is not ONFI and some vendor specific implementation decided to
tweak the timing values).
>
> > > There might be other reasons where the driver might want to know the mode
> > > number.
> >
> > Do you have real examples?
>
> No, it just seemed like a reasonable concept, given that
> nand_init_data_interface() actually does this mapping anyway, so it might
> as well inform chip->setup_data_interface() about it, since the
> information is right there anyway.
>
> > We could pass the ONFI timing mode here, but some timings are not
> > defined using this mode (like tCCS), and I'm not sure we have the same
> > mapping between ONFI and JEDEC modes. The other thing is that I wanted
> > to leave the door open for vendor specific timing definitions which do
> > not exactly match one of the timing mode defined in the ONFI spec.
> >
> > That's why I didn't bother exposing the ONFI timing mode to the NAND
> > controller ->setup_data_interface() implementation.
>
> Ok, so the reason is really future expansion, where ONFi modes 0..5 may
> not be the only modes to be configured. Fair enough.
Yep.
prev parent reply other threads:[~2016-10-28 16:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-02 7:47 [PATCH 1/4] of: Add device tree bindings for Evatronix Ricard Wanderlof
2016-06-03 14:22 ` Boris Brezillon
2016-06-07 15:01 ` Ricard Wanderlof
2016-06-08 15:50 ` Boris Brezillon
2016-06-10 15:35 ` Ricard Wanderlof
2016-06-10 15:54 ` Boris Brezillon
2016-06-10 16:46 ` Ricard Wanderlof
2016-06-10 17:03 ` Boris Brezillon
2016-06-10 17:14 ` Ricard Wanderlof
2016-10-26 11:27 ` Ricard Wanderlof
2016-10-26 11:52 ` Boris Brezillon
2016-10-26 12:02 ` Boris Brezillon
2016-10-26 12:31 ` Ricard Wanderlof
2016-10-26 13:05 ` Boris Brezillon
2016-10-28 14:35 ` Ricard Wanderlof
2016-10-28 14:44 ` Boris Brezillon
2016-10-28 16:01 ` Ricard Wanderlof
2016-10-28 16:20 ` Boris Brezillon [this message]
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=20161028182022.7643c4ea@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=linux-mtd@lists.infradead.org \
--cc=ricard.wanderlof@axis.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).