
Hi Alexander,
On Thu, May 06, 2010 at 03:33:53PM +0200, Alexander Stein wrote: [...]
IIRC 400kBytes/second is the initial speed for SD cards on SPI. The card itself responds which max speed it can handle. Which could be adjusted later (up to 25MHz or even more).
the initial speed is 400 kBits/second, because there may be some (few) cards that could not handle more.
I backported this spi_mmc driver to 2.6.10 (yes, even older) and it is slow, nevertheless. I don't know how SPI is done in u-boot, but maybe the system interrupts in linux like ethernet and timer slow SPI transfer down.
Thanks for the confirmation! I just found a page from the blackfin linux project: http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:drivers:spi_mmc which suggests better values (using dd with bs=512 should be similar to what bonnie does in the block tests?). A hint I got from this page was to disable SPI DMA (which was also enabled on my coldfire), and this improved the situation to get around 115 kBytes/second.
Strange enough enabling DMA decreases performance, there still seems to be room for improvement. I will try to see if I can spot differences in the blackfin kernel that I could back-port - although I already saw there are many differences when back-porting the locking part.
Best regards, Wolfgang