
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.