flash read performance

Andre Puschmann
2008-10-29T08:40:09Z

Hi list,

I am currently trying to improve the flash read performance of my
platform. It's a gumstix verdex board with a pxa270 running at 400MHz.
My flash is a 16MB NOR Intel StrataFlash P30 (128P30T) and it's
operating in the _normal_ asynchronous mode. In my opinion the read
performance is very poor, only around 1.2 to 1.4 MB/s depending on the
blocksize. I think it should be possible to get much higher transfer rates.

In Linux, I ran my tests with dd like this (copy 10MB):
time dd if=/dev/mtd5 of=/dev/null bs=16k count=640
640+0 records in
640+0 records out
real 0m 7.17s
user 0m 0.00s
sys 0m 7.17s

Running top in another console brings up, that the CPU load is very high
during copy. I am not sure if the system is doing some sort of busy
waiting or something like that? However, it should be possible to do a
copy without having such a high load.

Mem: 17684K used, 45144K free, 0K shrd, 0K buff, 11164K cached
CPU: 0% usr 100% sys 0% nice 0% idle 0% io 0% irq 0% softirq
Load average: 0.10 0.17 0.09
PID PPID USER STAT VSZ %MEM %CPU COMMAND
259 258 root R 1100 2% 95% dd if /dev/mtd5 of /dev/null
bs 16k co

I guess a number of people are using a similar/comparable setup. So some
kind of user benchmark would be nice.
I am sure this needs some more investigation, but any comment/hint is
more than welcome.

Best regards,
Andre