[U-Boot] [PATCH] dm: mmc: socfpga: call dwmci_probe()
Marek Vasut
marex at denx.de
Fri Mar 9 18:13:30 UTC 2018
On 03/09/2018 09:24 AM, Jaehoon Chung wrote:
> Dear Patrick,
>
> On 03/09/2018 03:51 PM, Patrick Brünn wrote:
>>> From: Patrick Brünn
>>> Sent: Donnerstag, 8. März 2018 06:39
>>>> From: Jaehoon Chung [mailto:jh80.chung at samsung.com]
>>>> Sent: Donnerstag, 8. März 2018 04:57
>>>> On 03/08/2018 12:12 PM, Marek Vasut wrote:
>>>>> On 03/08/2018 03:17 AM, Jaehoon Chung wrote:
>>>>>> On 03/06/2018 05:07 PM, linux-kernel-dev at beckhoff.com wrote:
>>>>>>> From: Patrick Bruenn <p.bruenn at beckhoff.com>
>>>>>>>
>>>>>>> On a socfpga_cyclone5 based board the SD card, was never powered
>>> up.
>>>> For
>>>>>>> other dw_mmc based SoCs dwmci_probe() is called in the platform
>>>> specific
>>>>>>> probe(). It seems this call is missing for socfpga_dw_mmc.
>>>>>>>
>>>>>>> With this change DWMCI_PWREN is set by dmwci_init().
>>>>>>>
>>>>>>> Signed-off-by: Patrick Bruenn <p.bruenn at beckhoff.com>
>>>>>>
>>>>>> Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>
>>>>>>
>>>>>> Will apply this patch before releasing v2018.03.
>>>>>> (I have a problem about accessing git.denx.de. After fixing my problem,
>>>> will resend email about applying.)
>>>>>
>>>>> DWMMC works on SoCFPGA for me (tested on rc4), so I don't understand
>>>> what this patch is trying to fix. I'd prefer if you did not hastily apply this.
>>>>
>>>> It's my misunderstanding. When i checked more. I think that Marek is right.
>>>> Thanks Marek for pointing out.
>>>>
>>> Okay, but do you have any hint what I am doing wrong? My board (cx8100 not
>>> mainline, yet) is based on socfpga_cyclone5. And on my board "
>>> dwmci_writel(host, DWMCI_PWREN, 1);" is never called, because
>>> dwmci_init() is never called.
>>> As far as I can see with CONFIG_DM_MMC enabled dwmci_init() should be
>>> called by dwmci_probe().
>>>
>>> exynos and rockchip do call dwmci_probe() within
>>> exynos/rockchip_dwmmc_probe().
>>> but socfpga_dwmmc_probe() is missing this call. So I looked deeper but found
>>> no place for socfpga platform to call dwmci_probe() or dwmci_init().
>>> What am I missing?
>>>
>> I got an idea, what might be the difference between my board and your boards.
>> I suspect you use U-BOOT SPL without CONFIG_DM_MMC set, so
>> dwmci_init() is called indirectly by mmc_start_init().
>
> Right, it's difference with CONFIG_DM_MMC. I had checked this.
>
>> Now, when your main U-Boot (with CONFIG_DM_MMC) is launched,
>> everything is already configured and it isn't necessary to call dwmci_init() again.
>> On my board the Altera MPL is used (and I can't replace it). Which seems to
>> disable DWMCI_PWREN before launching U-Boot.
>> If my assumption is correct, I still think it is a U-Boot bug to assume code like in
>> dwmci_init() was already run before U-Boot gets in control.
>> Besides exynos/rockchip_dw_mmc don't have this precondition requirement.
>>
>> Please take your time to look deeper into this issue, before deciding anything.
>> I don't think we need to rush this into the next release, as normal mainline
>> boards are "accidently" not affected.
>
> Sure. I will check this patch. Before applying this, will check more carefully.
> I agreed about Marek's opinion "did not hastily apply this."
> And i think that your approach also is right.
Please queue for -next , NOT this release.
More information about the U-Boot
mailing list