Skip to contentSkip to conversation

ARM (ARM11): add data cache support, test on Qong board

PATCH New Heiko Schocher 1 participant 1 message Aug 11, 2010 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

PATCH 5/26 ARM (ARM11): add data cache support, test on Qong board

Add data cache support for arm1136 systems.

Enable "cache" command on Qong board and test performance.

Test 1: Loading 127 MB of data from NAND flash into RAM:

Instr. Cache off on on
Data Cache off off on
--------------------------------------------------
QONG (ARM11) 177s 95s 43s = x 4.1

Test 2: uncompressing a gzipped image from RAM to RAM
(size compressed: 6.5 MiB, uncompressed: 35 MiB):

Instr. Cache off on on
Data Cache off off on
--------------------------------------------------
QONG (ARM11) 1.54s 0.95s 0.18s = x 8.6

---
- changes since v1:
- changed commit message
- moved cache patches before relocation patches

 arch/arm/cpu/arm1136/start.S |    5 +++++
 arch/arm/lib/cache.c         |    2 +-
 include/configs/qong.h       |    1 +
 3 files changed, 7 insertions(+), 1 deletions(-)
arch/arm/cpu/arm1136/start.S +5 -0
index 41eb82d..1c58abd 100644
@@ -439,6 +439,11 @@ fiq:
 	.align 5
 .global arm1136_cache_flush
 arm1136_cache_flush:
+#if !defined(CONFIG_SYS_NO_ICACHE)
 		mcr	p15, 0, r1, c7, c5, 0	@ invalidate I cache
+#endif
+#if !defined(CONFIG_SYS_NO_DCACHE)
+		mcr	p15, 0, r1, c7, c14, 0	@ invalidate D cache
+#endif
 		mov	pc, lr			@ back to caller
 #endif	/* CONFIG_PRELOADER */
arch/arm/lib/cache.c +1 -1
index 3684cad..55b633e 100644
@@ -27,7 +27,7 @@
 
 void  flush_cache (unsigned long dummy1, unsigned long dummy2)
 {
-#ifdef CONFIG_OMAP2420
+#if defined(CONFIG_OMAP2420) || defined(CONFIG_ARM1136)
 	void arm1136_cache_flush(void);
 
 	arm1136_cache_flush();
include/configs/qong.h +1 -0
index 100fa3f..4735b5e 100644
@@ -104,6 +104,7 @@
 
 #include <config_cmd_default.h>
 
+#define CONFIG_CMD_CACHE
 #define CONFIG_CMD_PING
 #define CONFIG_CMD_DHCP
 #define CONFIG_CMD_NET
Signature · 5 lines
1.6.2.5

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany