From: Ira W. Snyder <iws@ovro.caltech.edu>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/3 v2] 83xx: Default to using DMA to initialize SDRAM
Date: Thu, 9 Jul 2009 08:58:24 -0700 [thread overview]
Message-ID: <20090709155823.GA29383@ovro.caltech.edu> (raw)
In-Reply-To: <20090709005850.GA17044@ovro.caltech.edu>
On Wed, Jul 08, 2009 at 05:58:50PM -0700, Ira W. Snyder wrote:
> On Wed, Jul 08, 2009 at 07:32:26PM -0500, Peter Tyser wrote:
> > On Thu, 2009-07-09 at 08:24 +0800, Liu Dave-R63238 wrote:
> > > > When SDRAM ECC is enabled and CONFIG_ECC_INIT_VIA_DDRCONTROLLER is not
> > > > defined use DMA to set SDRAM to a known state. Previously a
> > > > sequence of
> > > > 64-bit stores was used.
> > >
> > > IIRC, the DMA init SDRAM is slower than the 64bit stores.
> > > It is why I added these code here.
> > >
> > > I suggest to keep the way.
> >
> > According to Ira, the DMA method was faster than the cpu method:
> > "It makes the DMA initialization normal speed again. The DMA in the for
> > loop takes the longest (as expected).
> >
> > So yes, strangely it (enabling the icache) makes a HUGE difference. The
> > total time is <3 seconds now. It is now faster than the previous CPU
> > method."
> >
> >
> > Logically the DMA method should be faster, and Ira's results seem to
> > reinforce this. I don't have an 83xx board to test on, so let me know
> > if others have different results than Ira.
> >
>
> I didn't check the SDRAM init time with code, only by a rough estimate.
> (Counting "one one-thousand, two one-thousand..."). I can add back the
> time measuring code, and be really sure which one is faster.
>
> Both the DMA and CPU methods are definitely on the same order of
> magnitude. The time taken by the CFI flash driver is MUCH longer than
> the SDRAM initialization. I wonder, should the icache be enabled for
> that as well?
>
> I'll do some more testing when I get back to the office tomorrow.
>
Ok, I've added back the get_tbms() code, and created a routine to
initialize ECC with the CPU. I've inlined my patch below, just for
reference.
DMA 945ms
CPU 581ms
As an interesting comparison, I also benchmarked the method of using the
DDR controller to initialize ECC.
DDRC 129ms
So there you have it. Dave Liu is correct, the CPU method is faster,
though definitely on the same order of magnitude with the
icache_enable()/icache_disable() patch.
I may stick with the DDRC method on my board, the difference is just
amazing. The flash init still takes up most of the boot process,
however.
Peter, feel free to fold the patch below into your own work.
Ira
next prev parent reply other threads:[~2009-07-09 15:58 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-09 0:11 [U-Boot] [PATCH 0/3 v2] DMA ECC update Peter Tyser
2009-07-09 0:11 ` [U-Boot] [PATCH 1/3 v2] 83xx: Default to using DMA to initialize SDRAM Peter Tyser
2009-07-09 0:24 ` [U-Boot] [PATCH 1/3 v2] 83xx: Default to using DMA to initializeSDRAM Liu Dave-R63238
2009-07-09 0:32 ` Peter Tyser
2009-07-09 0:43 ` Liu Dave-R63238
2009-07-09 12:39 ` Jerry Van Baren
2009-07-09 12:51 ` Jerry Van Baren
2009-07-09 0:58 ` Ira W. Snyder
2009-07-09 15:58 ` Ira W. Snyder [this message]
2009-07-09 17:00 ` [U-Boot] [PATCH 1/3 v2] 83xx: Default to using DMA to initialize SDRAM Jerry Van Baren
2009-07-14 9:22 ` Wolfgang Denk
2009-07-14 14:41 ` Kumar Gala
2009-07-14 14:42 ` Peter Tyser
2009-07-14 15:21 ` Wolfgang Denk
2009-07-14 17:32 ` Kim Phillips
2009-07-14 18:37 ` Peter Tyser
2009-07-09 0:11 ` [U-Boot] [PATCH 2/3 v2] 83xx: Add CONFIG_MEM_INIT_VALUE for boards with ECC Peter Tyser
2009-07-09 0:11 ` [U-Boot] [PATCH 3/3 v2] fsl_dma: Fix SDRAM initial value Peter Tyser
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=20090709155823.GA29383@ovro.caltech.edu \
--to=iws@ovro.caltech.edu \
--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