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

Benoît Thébaudeau benoit.thebaudeau at advansee.com
Thu Oct 4 22:04:02 CEST 2012


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


More information about the U-Boot mailing list