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

Nick Thompson
2009-12-09T09:43:19Z

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.