From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Thompson Date: Wed, 09 Dec 2009 09:43:19 +0000 Subject: [U-Boot] [PATCH RFC] NAND: Improve read performance from Large Page NAND devices In-Reply-To: <20091208220602.8796A19F3F@gemini.denx.de> References: <4B1E71D9.6080802@ge.com> <20091208220602.8796A19F3F@gemini.denx.de> Message-ID: <4B1F7137.3080306@ge.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.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 > > 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.