Hello,
We are using a dm355 evm board and we want to write large files to a SDHC memory card. The demo board running Linux 2.6.32-rc2-davinci (argo-project) and the SD card is used as a block device (/dev/mmcblk0p1) and the host controller use DMA and 4bit mode ( davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode).
The mount command that we used: $ mount -t vfat /dev/mmcblk0p1 /media/mmcblk0p1 -o async
Kingston 2GB ----------------------------------> 2.5 MBytes/s
SanDisk 2GB ----------------------------------> 4.1 MBytes/s
SandDisk (SDHC class 6) 4GB -----------> 4.7 MBytes/s
Transcend (SDHC class 10) 8GB --------> 4.5 MBytes/s
EMTEC (SDHC class 4) 4GB --------------> 3 MBytes/s
EMTEC (SDHC class 6) 16GB ------------> 5 MBytes/s
All the write performance was obtained using the dd command (and the functions write ()).
Thus, we are well below the theoretical write speed of each SD card. What could explain this??
A standard SD card (SanDisk 2GB) faster than a SDHC Card Class 4 (EMTEC 4GB), or SDHC class 6 faster than SDHC class 10 ??? we do not understand this....
On the datasheet (spruee2c.pdf, page 11), the MMC/SD card controller will support the SD Physical Layer Specification V1.1, while most of the SD card that we use are the Specification V2.0 . Is there compatibility issue ??
Yet, the driver high-speed mode function (mmc_switch_hs) is called for switch the compatible SD card on this mode, but without results.
We want to have write speeds higher. Someone has an idea??
Thank you in advance.
Sakho