[U-Boot] DWMMC crontroller in Exynos4412

Przemyslaw Marczak
2015-10-01T11:24:03Z

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-s3c.c)
>>>
>>> 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,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com