From mboxrd@z Thu Jan 1 00:00:00 1970 From: Przemyslaw Marczak Date: Thu, 08 Oct 2015 10:33:15 +0200 Subject: [U-Boot] DWMMC crontroller in Exynos4412 In-Reply-To: <56158593.6050506@uclv.cu> References: <55DCBD93.5050404@uclv.cu> <55DD5B63.4040108@samsung.com> <55DD6282.5090607@samsung.com> <55DDC1B6.2030603@uclv.cu> <55DDC94A.2090302@samsung.com> <55DDF64A.5020804@uclv.cu> <55DEB286.80200@samsung.com> <56094033.40006@uclv.cu> <560D17D3.60001@samsung.com> <56158593.6050506@uclv.cu> Message-ID: <56162A4B.7030804@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Humberto, On 10/07/2015 10:50 PM, Humberto L?pez Le?n wrote: > Hi Przemyslaw, > > the version of the U-boot on which you made the corrections in the SDHCI > controller is at > https://github.com/hardkernel/u-boot/commits/odroid-v2015.10? > > Regards, > Humberto > The U-Boot from your link is a Hardkernel's version, and it's very old. Please check the mainline/master tree. On the top, there are few changes, which fixes the sdhci/mmc issue on Exynos. The problem was in device tree "reg" property parsing. The mainline config for U3/X2 is "odroid_defconfig". Best regards -- Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak at samsung.com > On 10/01/2015 07:24 AM, Przemyslaw Marczak wrote: >> 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 >>>>>>>>>> >>>>>>>>>> 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, > >