[U-Boot] [PATCH] The cache flush using coprocessor must be in lib_arm/cache-cp15.c

Kim, Heung Jun riverful at gmail.com
Thu May 28 10:51:10 CEST 2009


Hi? I'm about to suggest one more thing related to "change cpu.c under
cpu/arm_cortexa8 dir to common code.".

asm ("mcr p15, 0, %0, c7, c5, 0": :"r" (0));

It's the common feature all over the arm core, not only arm cortex A8.
The common cache function is defined in the lib_arm/cache-cp15.c as you
know. So, It's seems the better method that cache_flush() is moved to
lib_arm/cache-cp15.c

Signed-off-by: HeungJun, Kim <riverful.kim at samsung.com>
---
 cpu/arm_cortexa8/cpu.c |    4 ----
 lib_arm/cache-cp15.c   |    5 +++++
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/cpu/arm_cortexa8/cpu.c b/cpu/arm_cortexa8/cpu.c
index 3e1780b..329febb 100644
--- a/cpu/arm_cortexa8/cpu.c
+++ b/cpu/arm_cortexa8/cpu.c
@@ -154,7 +154,3 @@ void l2cache_disable()
 	}
 }

-static void cache_flush(void)
-{
-	asm ("mcr p15, 0, %0, c7, c5, 0": :"r" (0));
-}
diff --git a/lib_arm/cache-cp15.c b/lib_arm/cache-cp15.c
index 62ed54f..face9b2 100644
--- a/lib_arm/cache-cp15.c
+++ b/lib_arm/cache-cp15.c
@@ -53,6 +53,11 @@ static void cache_disable(uint32_t cache_bit)
 	cp_delay();
 	set_cr(reg & ~cache_bit);
 }
+
+static void cache_flush(void)
+{
+	asm ("mcr p15, 0, %0, c7, c5, 0": :"r" (0));
+}
 #endif

 #ifdef CONFIG_SYS_NO_ICACHE
-- 
1.5.6.3


More information about the U-Boot mailing list