ARM (ARM11): add data cache support, test on Qong board
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
Signed-off-by Heiko Schocher <[email protected]>
---
- 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
@@ -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
@@ -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
@@ -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