From: Ian Campbell <ijc@hellion.org.uk>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 04/14] sunxi: dram: Code cleanup and comments for the CKE delay handling
Date: Fri, 25 Jul 2014 08:27:17 +0100 [thread overview]
Message-ID: <1406273237.29480.44.camel@dagon.hellion.org.uk> (raw)
In-Reply-To: <20140725044146.6e103645@i7>
On Fri, 2014-07-25 at 04:41 +0300, Siarhei Siamashka wrote:
> On Mon, 21 Jul 2014 19:51:50 +0100
> Ian Campbell <ijc@hellion.org.uk> wrote:
>
> > On Fri, 2014-07-18 at 19:22 +0300, Siarhei Siamashka wrote:
> > > Before driving the CKE pin (Clock Enable) high, the DDR3 spec requires
> > > to wait for additional 500 us after the RESET pin is de-asserted.
> > >
> > > The DRAM controller takes care of this delay by itself, using a
> > > configurable counter in the SDR_IDCR register. This works in the same
> > > way on sun4i/sun5i/sun7i hardware (even the default register value
> > > 0x00c80064 is identical). Except that the counter is ticking a bit
> > > slower on sun7i (3 DRAM clock cycles instead of 2), resulting in
> > > longer actual delays for the same settings.
> > >
> > > This patch keeps the old code and only removes the CONFIG_SUN7I ifdef.
> > > But maybe we should drop all of this and just add 'udelay(500)' after
> > > the DDR3 reset without bothering to play with these undocumented
> > > registers.
> >
> > I'm happy to go with whichever you think is better.
>
> If the total DRAM initialization time in u-boot is not really critical
> (all the delays are only fractions of millisecond), then I would
> probably go with the "cargo cult" approach and actually apply the
> delays in both places ('udelay(500)' after the DDR3 reset and keep
> the maximum delay in the SDR_IDCR register too).
Makes sense to me.
If someone later decides they really care about boot time to this degree
then they can implement the SDR_IDCR thing, hopefully with the aid of a
logic analyser, as you say.
Ian.
next prev parent reply other threads:[~2014-07-25 7:27 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-18 16:22 [U-Boot] [PATCH 00/14] sunxi: Allwinner A10/A13/A20 DRAM controller fixes Siarhei Siamashka
2014-07-18 16:22 ` [U-Boot] [PATCH 01/14] sunxi: dram: Remove useless 'dramc_scan_dll_para()' function Siarhei Siamashka
2014-07-21 18:42 ` Ian Campbell
2014-07-18 16:22 ` [U-Boot] [PATCH 02/14] sunxi: dram: Remove broken super-standby remnants Siarhei Siamashka
2014-07-21 18:45 ` Ian Campbell
2014-07-18 16:22 ` [U-Boot] [PATCH 03/14] sunxi: dram: Respect the DDR3 reset timing requirements Siarhei Siamashka
2014-07-21 18:46 ` Ian Campbell
2014-07-18 16:22 ` [U-Boot] [PATCH 04/14] sunxi: dram: Code cleanup and comments for the CKE delay handling Siarhei Siamashka
2014-07-21 18:51 ` Ian Campbell
2014-07-25 1:41 ` Siarhei Siamashka
2014-07-25 7:27 ` Ian Campbell [this message]
2014-07-18 16:22 ` [U-Boot] [PATCH 05/14] sunxi: dram: Code cleanup for the impedance calibration Siarhei Siamashka
2014-07-21 19:20 ` Ian Campbell
2014-07-25 3:44 ` [U-Boot] [linux-sunxi] " Siarhei Siamashka
2014-07-25 7:30 ` Ian Campbell
2014-07-18 16:22 ` [U-Boot] [PATCH 06/14] sunxi: dram: Configurable MBUS clock speed (use PLL5 or PLL6) Siarhei Siamashka
2014-07-21 19:31 ` Ian Campbell
2014-07-25 4:00 ` Siarhei Siamashka
2014-07-25 7:31 ` Ian Campbell
2014-07-18 16:22 ` [U-Boot] [PATCH 07/14] sunxi: dram: Use divisor P=1 for PLL5 Siarhei Siamashka
2014-07-21 19:35 ` Ian Campbell
2014-07-18 16:22 ` [U-Boot] [PATCH 08/14] sunxi: dram: Improve DQS gate data training error handling Siarhei Siamashka
2014-07-21 19:36 ` Ian Campbell
2014-07-18 16:23 ` [U-Boot] [PATCH 09/14] sunxi: dram: Add a helper function 'mctl_get_number_of_lanes' Siarhei Siamashka
2014-07-21 19:41 ` Ian Campbell
2014-07-25 4:26 ` Siarhei Siamashka
2014-07-25 7:33 ` Ian Campbell
2014-07-18 16:23 ` [U-Boot] [PATCH 10/14] sunxi: dram: Configurable DQS gating window mode and delay Siarhei Siamashka
2014-07-18 16:23 ` [U-Boot] [PATCH 11/14] sunxi: dram: Support sun4i (Allwinner A10) and sun5i (Allwinner A13) Siarhei Siamashka
2014-07-21 19:49 ` Ian Campbell
2014-07-18 16:23 ` [U-Boot] [PATCH 12/14] sunxi: dram: Drop DDR2 support and assume only single rank DDR3 memory Siarhei Siamashka
2014-07-21 19:51 ` Ian Campbell
2014-07-25 4:36 ` Siarhei Siamashka
2014-07-18 16:23 ` [U-Boot] [PATCH 13/14] sunxi: dram: Derive write recovery delay from DRAM clock speed Siarhei Siamashka
2014-07-21 19:52 ` Ian Campbell
2014-07-18 16:23 ` [U-Boot] [PATCH 14/14] sunxi: dram: Autodetect DDR3 bus width and density Siarhei Siamashka
2014-07-21 19:54 ` Ian Campbell
2014-07-19 10:59 ` [U-Boot] [PATCH 00/14] sunxi: Allwinner A10/A13/A20 DRAM controller fixes Hans de Goede
2014-07-21 19:58 ` Ian Campbell
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=1406273237.29480.44.camel@dagon.hellion.org.uk \
--to=ijc@hellion.org.uk \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox