[U-Boot] [PATCH v2] arm1136: Fix enable_caches()

Albert ARIBAUD albert.u.boot at aribaud.net
Fri Oct 5 20:23:14 CEST 2012


 Benoît,

On Thu, 4 Oct 2012 22:04:02 +0200 (CEST), Benoît Thébaudeau
<benoit.thebaudeau at advansee.com> wrote:

> enable_caches() did not enable icache if CONFIG_SYS_ICACHE_OFF was not defined
> but CONFIG_SYS_DCACHE_OFF was.
> 
> Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau at advansee.com>
> Cc: Albert Aribaud <albert.u.boot at aribaud.net>
> ---
> This patch supersedes http://patchwork.ozlabs.org/patch/177263/ .
> 
> Changes for v2:
>  - Move enable_caches() outside of the main #if in order to fix this icache
>    issue rather than doing only #if cosmetic cleanup.
> 
>  .../arch/arm/cpu/arm1136/cpu.c                     |   22 +++++++++++---------
>  1 file changed, 12 insertions(+), 10 deletions(-)
> 
> diff --git u-boot-arm-1dfc916.orig/arch/arm/cpu/arm1136/cpu.c u-boot-arm-1dfc916/arch/arm/cpu/arm1136/cpu.c
> index b98e3d9..32a4c24 100644
> --- u-boot-arm-1dfc916.orig/arch/arm/cpu/arm1136/cpu.c
> +++ u-boot-arm-1dfc916/arch/arm/cpu/arm1136/cpu.c
> @@ -141,16 +141,6 @@ void flush_cache(unsigned long start, unsigned long size)
>  	flush_dcache_range(start, start + size);
>  }
>  
> -void enable_caches(void)
> -{
> -#ifndef CONFIG_SYS_ICACHE_OFF
> -	icache_enable();
> -#endif
> -#ifndef CONFIG_SYS_DCACHE_OFF
> -	dcache_enable();
> -#endif
> -}
> -
>  #else /* #ifndef CONFIG_SYS_DCACHE_OFF */
>  void invalidate_dcache_all(void)
>  {
> @@ -172,3 +162,15 @@ void flush_cache(unsigned long start, unsigned long size)
>  {
>  }
>  #endif /* #ifndef CONFIG_SYS_DCACHE_OFF */
> +
> +#if !defined(CONFIG_SYS_ICACHE_OFF) || !defined(CONFIG_SYS_DCACHE_OFF)
> +void enable_caches(void)
> +{
> +#ifndef CONFIG_SYS_ICACHE_OFF
> +	icache_enable();
> +#endif
> +#ifndef CONFIG_SYS_DCACHE_OFF
> +	dcache_enable();
> +#endif
> +}
> +#endif
> 

Applied to u-boot-arm/next, thanks!

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list