[U-Boot] [PATCH v3 06/11] arm:reset: call the reset_misc() before the cpu reset

Przemyslaw Marczak
2014-07-02T10:27:41Z

Hello Minkyu,

On 07/02/2014 09:03 AM, Minkyu Kang wrote:
> On 01/07/14 23:36, Przemyslaw Marczak wrote:
>> Hello Minkyu,
>>
>> On 06/27/2014 01:34 PM, Przemyslaw Marczak wrote:
>>> On 06/27/2014 11:40 AM, Minkyu Kang wrote:
>>>> Dear Przemyslaw Marczak,
>>>>
>>>> On 26/06/14 23:15, Przemyslaw Marczak wrote:
>>>>> On an Odroid U3 board, the SOC is unable to reset the eMMC card
>>>>> in the DWMMC mode by the cpu software reset. Manual reset of the card
>>>>> by switching proper gpio pin - fixes this issue.
>>>>>
>>>>> Such solution needs to add a call to pre reset function.
>>>>> This is done by the reset_misc() function, which is called before
>>>>> reset_cpu().
>>>>> The function reset_misc() is a weak function.
>>>>>
>>>>> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
>>>>> Cc: Minkyu Kang <mk7.kang@samsung.com>
>>>>> Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
>>>>> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
>>>>> Cc: Tom Rini <trini@ti.com>
>>>>> ---
>>>>> arch/arm/lib/reset.c | 7 +++++++
>>>>> include/common.h | 1 +
>>>>> 2 files changed, 8 insertions(+)
>>>>
>>>> I'm not sure that we really need to add this function to arm common.
>>>> We can do this in reset_cpu (arch/arm/cpu/armv7/exynos/soc.c).
>>>> But if other SoCs also need to add such things then, it can be added
>>>> as arm common.
>>>>
>>>> Thanks,
>>>> Minkyu Kang.
>>>>
>>>
>>> No one used this before, so probably better is to move it into exynos
>>> soc.c code.
>>>
>>> Thank you,
>>
>> I'm working on a next patch set version. And the idea with calling reset_misc() from soc.c is quite bad. Function reset_cpu() is actually dedicated only for cpu software reset - as its name suggest.
>> So I prefer leave the reset_misc call inside do_reset().
>
> Sorry. I didn't understand the reason.
> Could you please explain more in detail?
>
> Thanks,
> Minkyu Kang.
>
I mean that we should take in to account the function names, e.g.:
- do_reset() - do the all reset needed things, and call:
- reset_misc() - reset/prepare various devices before the CPU reset
- reset_cpu() - do the CPU software reset only

The particular Odroid reset procedure is more board specific than SOC
specific, and this is why it is implemented in board file.
So I think that the place of call to reset_misc() in common code is good.

Thanks
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com