From cba4b1809f043bf85c806e5a4e342f62bd5ded45 Mon Sep 17 00:00:00 2001 From: Aneesh V Date: Tue, 16 Aug 2011 04:33:05 +0000 Subject: arm: do not force d-cache enable on all boards c2dd0d45540397704de9b13287417d21049d34c6 added dcache_enable() to board_init_r(). This enables d-cache for all ARM boards. As a result some of the arm boards that are not cache-ready are broken. Revert this change and allow platform code to take the decision on d-cache enabling. Also add some documentation for cache usage in ARM. Signed-off-by: Aneesh V --- arch/arm/lib/board.c | 8 +++----- arch/arm/lib/cache.c | 12 ++++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'arch/arm/lib') diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c index c899839..a7fb251 100644 --- a/arch/arm/lib/board.c +++ b/arch/arm/lib/board.c @@ -452,11 +452,9 @@ void board_init_r(gd_t *id, ulong dest_addr) gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */ monitor_flash_len = _end_ofs; - /* - * Enable D$: - * I$, if needed, must be already enabled in start.S - */ - dcache_enable(); + + /* Enable caches */ + enable_caches(); debug("monitor flash len: %08lX\n", monitor_flash_len); board_init(); /* Setup chipselects */ diff --git a/arch/arm/lib/cache.c b/arch/arm/lib/cache.c index 92b61a2..b545fb7 100644 --- a/arch/arm/lib/cache.c +++ b/arch/arm/lib/cache.c @@ -53,3 +53,15 @@ void __flush_dcache_all(void) } void flush_dcache_all(void) __attribute__((weak, alias("__flush_dcache_all"))); + + +/* + * Default implementation of enable_caches() + * Real implementation should be in platform code + */ +void __enable_caches(void) +{ + puts("WARNING: Caches not enabled\n"); +} +void enable_caches(void) + __attribute__((weak, alias("__enable_caches"))); -- cgit v1.1