1 /* 2 * (C) Copyright 2002 3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 /* for now: just dummy functions to satisfy the linker */ 9 10 #include <common.h> 11 12 void __flush_cache(unsigned long start, unsigned long size) 13 { 14 #if defined(CONFIG_ARM1136) 15 void arm1136_cache_flush(void); 16 17 arm1136_cache_flush(); 18 #endif 19 #ifdef CONFIG_ARM926EJS 20 /* test and clean, page 2-23 of arm926ejs manual */ 21 asm("0: mrc p15, 0, r15, c7, c10, 3\n\t" "bne 0b\n" : : : "memory"); 22 /* disable write buffer as well (page 2-22) */ 23 asm("mcr p15, 0, %0, c7, c10, 4" : : "r" (0)); 24 #endif 25 return; 26 } 27 void flush_cache(unsigned long start, unsigned long size) 28 __attribute__((weak, alias("__flush_cache"))); 29 30 /* 31 * Default implementation: 32 * do a range flush for the entire range 33 */ 34 void __flush_dcache_all(void) 35 { 36 flush_cache(0, ~0); 37 } 38 void flush_dcache_all(void) 39 __attribute__((weak, alias("__flush_dcache_all"))); 40 41 42 /* 43 * Default implementation of enable_caches() 44 * Real implementation should be in platform code 45 */ 46 void __enable_caches(void) 47 { 48 puts("WARNING: Caches not enabled\n"); 49 } 50 void enable_caches(void) 51 __attribute__((weak, alias("__enable_caches"))); 52