armv7: Adding cpu specific cache managmenent
authorMathieu J. Poirier <mathieu.poirier@linaro.org>
Tue, 31 Jul 2012 08:59:32 +0000 (08:59 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 1 Sep 2012 12:58:20 +0000 (14:58 +0200)
Some CPU (i.e u8500) need more cache management before launching
the Linux kernel.

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: John Rigby <john.rigby@linaro.org>
arch/arm/cpu/armv7/cpu.c

index c6fa8ef13617636a8c879cccbae626bf6ee8c2e1..f01989fbf58005d09a1ae09ef64d9d2994c7a53b 100644 (file)
@@ -36,6 +36,7 @@
 #include <asm/system.h>
 #include <asm/cache.h>
 #include <asm/armv7.h>
+#include <linux/compiler.h>
 
 void save_boot_params_default(u32 r0, u32 r1, u32 r2, u32 r3)
 {
@@ -44,6 +45,8 @@ void save_boot_params_default(u32 r0, u32 r1, u32 r2, u32 r3)
 void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3)
        __attribute__((weak, alias("save_boot_params_default")));
 
+void __weak cpu_cache_initialization(void){}
+
 int cleanup_before_linux(void)
 {
        /*
@@ -81,5 +84,10 @@ int cleanup_before_linux(void)
         */
        invalidate_dcache_all();
 
+       /*
+        * Some CPU need more cache attention before starting the kernel.
+        */
+       cpu_cache_initialization();
+
        return 0;
 }