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.marc...@samsung.com>
> Cc: Minkyu Kang <mk7.k...@samsung.com>
> Cc: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com>
> Cc: Albert ARIBAUD <albert.u.b...@aribaud.net>
> Cc: Tom Rini <tr...@ti.com>
> ---
>  arch/arm/lib/reset.c | 7 +++++++
>  include/common.h     | 1 +
>  2 files changed, 8 insertions(+)
> 
> diff --git a/arch/arm/lib/reset.c b/arch/arm/lib/reset.c
> index 7a03580..3b39466 100644
> --- a/arch/arm/lib/reset.c
> +++ b/arch/arm/lib/reset.c
> @@ -23,6 +23,11 @@
>  
>  #include <common.h>
>  
> +void __reset_misc(void) {}
> +
> +void reset_misc(void)
> +     __attribute((weak, alias("__reset_misc")));
> +
>  int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
>  {
>       puts ("resetting ...\n");
> @@ -30,6 +35,8 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * 
> const argv[])
>       udelay (50000);                         /* wait 50 ms */
>  
>       disable_interrupts();
> +
> +     reset_misc();
>       reset_cpu(0);
>  
>       /*NOTREACHED*/
> diff --git a/include/common.h b/include/common.h
> index 232136c..04bab78 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -629,6 +629,7 @@ int       checkicache   (void);
>  int  checkdcache   (void);
>  void upmconfig     (unsigned int, unsigned int *, unsigned int);
>  ulong        get_tbclk     (void);
> +void reset_misc    (void);
>  void reset_cpu     (ulong addr);
>  #if defined (CONFIG_OF_LIBFDT) && defined (CONFIG_OF_BOARD_SETUP)
>  void ft_cpu_setup(void *blob, bd_t *bd);
> 

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.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to