[U-Boot] [PATCH RFC] NAND: Improve read performance from Large Page NAND devices

Nick Thompson
2009-12-09T11:43:44Z

On 09/12/09 11:02, 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>
>
> Also tested on Canyonlands (460EX); here I actually see a slightj
> improvement (5.5% faster, i. e. time to read 126 MB from NAND goes
> down from 28.8 to 27.2 seconds (4.4 -> 4.6 MiB/s).
>
> Tested-by: Wolfgang Denk <wd@denx.de>

Hi Wolfgang,

Thanks again.

It seems the raw page data transfer rate is quite low on that board.
The patch saves time between page data transfers, so the percentage
improvement seen is better if you can get the page data out quicker.

The default read_buf (and write_buf) in nand_base.c are safe, but slow.
I put in davinci specific optimised versions (DMA or multibyte read
ticks might be used) to double my raw transfer rate. Without that, my
measurements would show ~15% improvement only.

In total on da830evm I'm getting a >300% speed improvement. 1.69MB/s
changes to 6.99MB/s. (5.31MB/s without this patch.)

Nick.