All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Thompson <nick.thompson@ge.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH RFC] NAND: Improve read performance from Large Page NAND devices
Date: Wed, 09 Dec 2009 09:43:19 +0000	[thread overview]
Message-ID: <4B1F7137.3080306@ge.com> (raw)
In-Reply-To: <20091208220602.8796A19F3F@gemini.denx.de>

On 08/12/09 22:06, Wolfgang Denk wrote:
> Dear Nick Thompson,
> 
> In message <4B1E71D9.6080802@ge.com> you wrote:
>> Improve read performance from Large Page NAND devices.
>>
>> This patch produces a ~31% improvement in oob_first read speed (on a
>> 300MHz ARM9). The time for a mid-buffer 2k page read is now 293us,
>> 6.99MB/s (was 385us, 5.31MB/s). oob_first is probably the best case
>> improvement.
>>
>> Signed-off-by: Nick Thompson <nick.thompson@ge.com>
> 
> I tested this on mpc5121ads (sector size 128 KiB) and sequoia (sector
> size 16 KiB).
> 
> The patch applied not cleanly against "master" (but was easy to fix).
> 
> However, I did not notice any changes to the speed for a "nand read"
> at all.
> 
> Is this not the right flash types, or not thr right type of test?
> 
> Best regards,
> 
> Wolfgang Denk
> 

Hi Wolfgang,

Thanks for testing this. I think this has worked as I would have hoped.
Your test is fine. I use "nand read" and make measurements on a mixed
signal 'scope.

On the mpc5121ads, mpc5121_nfc.c is used which defines its own command
function. This function always waits for read commands to complete and
the config file doesn't define the CONFIG_NAND_READ_CMD_NO_WAIT config
(and in this case it can't) so the read should behave more or less
identically.

[Possibly the command function could be changed to not wait for read
to complete...]

On Sequoia, ndfc.c is used which appears to use the default command
functions. If the sector size is 16kBytes I assume this is a small page
NAND device and you should see no change at all. If it was a large page
device you would also see no difference, unless the config file set
CONFIG_NAND_READ_CMD_NO_WAIT, in which case the read_page function for
H/W ECC, should fetch the next page in parallel to doing ECC correction,
leading to an improvement in performance.

All in all your tests was very successful, and though I left you
disappointed this time, from my point of view I'm very pleased :)

Thanks,
Nick.

  reply	other threads:[~2009-12-09  9:43 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-08 15:33 [U-Boot] [PATCH RFC] NAND: Improve read performance from Large Page NAND devices Nick Thompson
2009-12-08 22:06 ` Wolfgang Denk
2009-12-09  9:43   ` Nick Thompson [this message]
2009-12-09 11:02   ` Wolfgang Denk
2009-12-09 11:43     ` Nick Thompson
2010-01-16  1:51       ` Josh Gelinske
2010-01-18 12:48         ` Nick Thompson
2010-01-18 15:16           ` Josh Gelinske
  -- strict thread matches above, loose matches on Subject: below --
2009-11-25 13:57 Nick Thompson
2009-12-01  0:55 ` Scott Wood
2009-12-01 10:13   ` Nick Thompson
2009-12-01 11:34     ` Nick Thompson
2009-12-01 18:43       ` Scott Wood
2009-12-01 18:38     ` 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=4B1F7137.3080306@ge.com \
    --to=nick.thompson@ge.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.