[U-Boot] DWMMC crontroller in Exynos4412

Humberto López León
2015-09-28T13:27:15Z

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 ?

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

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,