I've been doing a series of microSD performance tests, and have found
that the 2 ADATA cards I purchased fail with the linux-omap kernel on
both Overo and Beagleboard.
Is anyone else using this brand? Any issues?
FWIW, the cards I have are 4GB and 8GB, Class 6 from newegg.com
Details of the issue are outlined on the linux-omap list:
From what I have seen so far it looks as if the problem starts when U-
boot is finish and the kernel starts to use 4 bit data transfers.
The 1 bit data transfer interface seems to work OK other wise you
would not get the kernel loaded. Have a few more brands of microSD
being delivered to-day, so will do some more testing later in the week
and will add the results to my orignal post. The ADATA cards where
the first ones I tried to use, so I was getting quite frustrated when
they did not work for me. It is interesting that you have have them
fail on two different types of boards.
The U-boot I am testing with uses 4 bit transfers, so that is not the issue.
I'll try to look at this more closely later this week when I receive
an mmc "extender" card so I can probe the power/signal lines, but I
suspect that it is perhaps related to one of the following:
- supply voltage setup. u-boot uses 3.0v, haven't checked linux. In another
thread Gerald suggests that the supply should be set to 3.15V
- timing setup differences between u-boot and linux
- introduction of write command - x-load/u-boot are read only
I also noticed that there is clock speed difference as well. In the Kernel is jumps to 48MHz. It is lower in the UBoot but I don’t recall the exact frequency. I wonder what impact, if anything, happens to the card when the voltage is taken to 3.15V in the Kernel from the 3V in UBoot and when the clock frequency is taken higher.
The u-boot mmc driver sets the bus width/clock frequency based upon
the capabilities reported by the card.
You can see what settings u-boot is using with the mmcinfo command:
Device: OMAP SD/MMC
Manufacturer ID: 1d
Tran Speed: 25000000
Rd Block Len: 512
High Capacity: Yes
Bus Width: 4-bit
The above settings are what is reported for the ADATA 8GB Class 6
card. IIRC, 25MHz and 4 bit was used for all of the cards I tested.
So it may well be that the kernel's 48Mhz @ 3.0V is too aggressive for