ARM: vf610: Enable caches
authorStefan Agner <stefan@agner.ch>
Wed, 25 Mar 2015 05:35:56 +0000 (11:05 +0530)
committerStefan Agner <stefan@agner.ch>
Tue, 14 Apr 2015 07:08:09 +0000 (09:08 +0200)
Enables caches which provides a rather huge speedup of the boot loader.
Also mark the on-chip RAM as cachable since this is the area U-Boot runs
from.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
arch/arm/cpu/armv7/vf610/generic.c

index 3bdc2211e7953c6e74a4ce6de98da71261ed984e..1bb9b8ed1d0ae7fb0409b516b146441812be177f 100644 (file)
@@ -342,3 +342,19 @@ int get_clocks(void)
 #endif
        return 0;
 }
+
+#ifndef CONFIG_SYS_DCACHE_OFF
+void enable_caches(void)
+{
+#if defined(CONFIG_SYS_ARM_CACHE_WRITETHROUGH)
+       enum dcache_option option = DCACHE_WRITETHROUGH;
+#else
+       enum dcache_option option = DCACHE_WRITEBACK;
+#endif
+       dcache_enable();
+       icache_enable();
+
+    /* Enable caching on OCRAM */
+       mmu_set_region_dcache_behaviour(IRAM_BASE_ADDR, IRAM_SIZE, option);
+}
+#endif