HDPARM output for SD card seems to be slow on i.MX6 Sabresd

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

HDPARM output for SD card seems to be slow on i.MX6 Sabresd

3,660 Views
vincentchou
Contributor IV

Hi!  friends,

Could anyone share their experience on the speed of SD access speed on the existing SD card ports on i.MX6 Sabresd?  It seems I could only achieve 19MB/s.  The output is

========

/dev/mmcblk1: (Local UHSI ultra high speed SD card)

Timing buffered disk reads:   58 MB in  3.00 seconds =  19.31 MB/sec

========

Is there any method I could tune the speed to a more reasonable one?  I put a Ultra High Speed SD card (Transcend) with a 85MB/s listed on the package; however, I could only get 19.31 MB/s.  If I use a stand SD card,it achieves 14MB/s.  Is this normal?

Vincent

15 Replies

1,332 Views
vincentchou
Contributor IV

Thanks!  We shall take a closer look at the SABRE-AI board. 

0 Kudos

1,332 Views
vincentchou
Contributor IV

Hi!  Leo,

In that case, if we want to achieve UHS-I speed on our i.MX6 design, should we use the SD card circuitry on Sabre-AI instead?  Could we maintain the support of XD on the same card slot as well? 

Vincent

0 Kudos

1,332 Views
vincentchou
Contributor IV

Hi!  Leo,

I checked the circuitry on Sabre-AI and discovered it may requires a special version of i.MX6 with a change of internal FUSE content. 

============

CPU Card Identification for Software

MX6 fuses OCOTP_GP1[15:8]

SABRE-AI rev C = 0x14

============

Does that mean we could not use this type of circuit with standard i.MX6 in our design?

Vincent

0 Kudos

1,332 Views
LeonardoSandova
Specialist I

Vincent, I will post your question internally. I don't have a answer right now.

0 Kudos

1,332 Views
vincentchou
Contributor IV

Hi!  Leo, I shall wait for your info.  Thanks a lot!

0 Kudos

1,332 Views
TaniaMartinez
Contributor III

Hello Vincent,

Yes, you will need implement the Auto Board circuit. This works with the I.Mx6 with not auto qualification too.


6Q_Auto_VSELECT.png

1,332 Views
vincentchou
Contributor IV

Hi!  Tania,

Could we apply the same circuitry on all four SDIO ports on SABRESD board of i.MX6 EVB?  Could this be used with the consumer grade of i.MX6 cpu?  I was suspecious about this is because the following comments on the SABRE-AI board schematic

=============

CPU Card Identification for Software

MX6 fuses OCOTP_GP1[15:8]

SABRE-AI rev C = 0x14

=============

catches my attention.  If we design such a circuit with the standard i.MX6Q or i.MX6D, then should we apply some FUSE commands on the CPU first?  Could you also provide the mechanism of this circuit so we could know how to modify our SD driver code?  Thanks!

Vincent

0 Kudos

1,332 Views
TaniaMartinez
Contributor III

Vincent,

This is the IOMUX pin configuration you will see on the reference manual. The Vselect option is implemented to USDHC-3 and USDHC-4 only. Yes, you will implement this solution on I.Mx6Q/D consumer grade. If you check the consumer datasheet you will found one reference on chapter 4.11.4.4.

SD-mmc iomux.PNG.png

1,332 Views
vincentchou
Contributor IV

Hi!  Tania,

Thanks!  The info is quite useful!  We shall start our design based on SABRE-AI board instead. 

Vincent

0 Kudos

1,332 Views
TaniaMartinez
Contributor III

Only one comment, on the Sabre AI schematics we add a comment on SDa_RST_B(SD3_RST) circuitry. Take on consideration it.sabre ai.PNG.png

1,332 Views
LeonardoSandova
Specialist I

Vincent, only Sabre AUTO boards support this type of cards. These have a circuit which does a voltage drop (from 3.3 to 1.8 V) so SD with behave as UHS-I. Last time I test on a 95MB/s card, I observed write speeds around 50MB/s. I tested on a 3.0.35 kernel version.

1,332 Views
EricNelson
Senior Contributor II

Thanks for the clarification Leonardo.

0 Kudos

1,332 Views
vincentchou
Contributor IV

Hi!  Eric,

Thanks!  I just wonder how we could achieve the maximum I/O throughput when I plug in a UHS-I card into the slot.  Is there any hardware change we could apply in order to achieve an even higher speed?

Vincent

0 Kudos

1,332 Views
EricNelson
Senior Contributor II

Hi Vincent,

I believe there are patches in the more recent kernels (3.10+) to support higher speeds and DDR (transfer on both edges of the clock), but the last time I tested, main-line Linux didn't support this for either UHS cards or eMMC on i.MX6. You might want to check the linux-arm-kernel mailing list for patches to enable it.

Note that the higher clock rates require switching the voltages on the SD card interface, which is only supported on some designs. None of our boards currently support this, but I believe the SABRE-SD does, through the Freescale PMIC.

0 Kudos

1,332 Views
EricNelson
Senior Contributor II

Hi Vincent,

This is about right because the current clocking of the SD cards is 50MHz.


I'm seeing ~18.5 MiB/s read speeds on a SanDisk USDHC card, and

~46 MiB/s on eMMC (8-bit bus width), and

~100 MiB/s on a SATA SSD (Crucial 32 GB).

0 Kudos