
Hello Humberto,
On 09/28/2015 03:27 PM, Humberto López León wrote:
Hi Przemyslaw,
With the information you gave me I managed to implement an important part of SDHCI controller. Currently the driver detects the SD card correctly but I have a problem with writing operations. With the help of linux command dd I found that the driver reads correctly but fails when trying to write. I studied implementations of SDHCI controller in the Linux kernel and the U-boot, but there are things I do not understand.
You have a document that explains how works the SDHCI controller ?
Please register at Jedec.org, and get this:
https://www.jedec.org/standards-documents/results/JESD84-B451
for eMMC 4.51, there are also older versions.
For SD card:
https://www.sdcard.org/downloads/pls/index.html
Try to find: SDCardStandardv1.9.pdf on the internet :)
I've also been working on the implementation of DWMMC controller to manage the eMMC in ODROID-X2 (Exynos4412). Currently this driver detects the eMMC card but fails to calculate the capacity of the card. The read and write operations are not yet implemented.
You have a document that explains how works the DWMMC controller?
Thank you for your help!! Humberto
Which U-Boot version do you use? There was an issue in the mainline with device-tree, which results in eMMC/SD card detection issue. I think, that in few days my patches with fixes can be merged.
On 08/27/2015 02:47 AM, Przemyslaw Marczak wrote:
Hi Humberto,
On 08/26/2015 07:24 PM, Humberto López León wrote:
Hi Przemyslaw,
On 08/26/2015 10:12 AM, Przemyslaw Marczak wrote:
Hi Humberto,
On 08/26/2015 03:40 PM, Humberto López León wrote:
Hi community,
thank you all for answering my questions.
On 08/26/2015 02:53 AM, Przemyslaw Marczak wrote:
Hi,
On 08/26/2015 08:23 AM, Jaehoon Chung wrote: > On 08/26/2015 11:26 AM, Simon Glass wrote: >> +Samsung people >> >> Hi, >> >> On 25 August 2015 at 13:10, Humberto López León humberto@uclv.cu >> wrote: >>> Hi Simon, >>> I'm working on implementing a driver for SD/MMC cards in the >>> framework >>> GenodeOS. I think you could help me with your experience in this >>> type of >>> implementation in the u-boot. >>> The hardware platform on which the driver will work is a ODROID-x2 >>> (exynos4412). I use the DWMMC contoller, but I'm not sure if this >>> is the >>> right controller to handle SD/MMC cards in Exynos4412 SoC. The >>> SDHCI >>> controller is most appropriate? > > If you're using exynos4412 board, you can choose sdhci or dwmmc > controller for eMMC, not SD/SDIO. > And in my experiment, dwmmc controller is more appropriate than > sdhci.(ex, performance) >
It depends which mmc channel is used. In Exynos4412, there are 5 channels, but some channel configurations shares GPIO pins:
- MMC0 - sdhci
- MMC1 - sdhci, or MMC0 8-bit
- MMC2 - sdhci - Odroid SD card, 4-bit mode
- MMC3 - sdhci - or MMC2 8-bit
- MMC4 - dwmmc, uses MMC0 pins for 4-bit, and MMC0-1 for 8-bit mode
Odroid is using MMC2(sdhci) and MMC0/4(sdhci or dwmmc).
So for eMMC cards you can use the dwmmc, and as Jaehoon wrote it is recommended for the better performance, but for SD card you must use sdhci controller.
This information is valuable to me, but now I would help if you tell me where I can find the code of SDHCI controller for the SD card of Exynos4412 in U-boat 2015.04-rc2 for a implementationtation reference. I was reviewing the file exynos_dw_mmc.c as reference of DWMMC driver, but now I have no idea what the file where the SDHCI driver for the exynos4412 is implemented.
Thank you very much for your collaboration.
Please check those files:
- drivers/mmc/s5p_sdhci.c
- drivers/mmc/sdhci.c
But, isn't the kernel a better reference for you?
Thanks for your time to answer my questions. I have reviewed the implementation of SDHCI controller in the Linux kernel for Odroid (https://github.com/hardkernel/linux/blob/odroid-3.0.y/), but have not been able to identify the specific implementation that is used for handling of SD cards in exynos4412. You know in what file this controller is implemented? I think the file should be drivers/mmc/host/sdhci-s3c.c (https://github.com/hardkernel/linux/blob/odroid-3.0.y/drivers/mmc/host/sdhci...)
but I'm not sure. What do you think?
Thanks again.
Humberto
Yes, this is the right file. Also remember about the pinmux setting for sd/mmc. In U-Boot: arch/arm/mach-exynos/pinmux.c In kernel: drivers/pinctrl/pinctrl-exynos.c
Best regards,
Best regards,