1 /* 2 * Copyright (C) 2014 Samsung Electronics 3 * Minkyu Kang <mk7.kang@samsung.com> 4 * Robert Baldyga <r.baldyga@samsung.com> 5 * 6 * based on arch/arm/cpu/armv7/omap3/cache.S 7 * 8 * SPDX-License-Identifier: GPL-2.0+ 9 */ 10 11 #include <common.h> 12 13 #ifndef CONFIG_SYS_DCACHE_OFF 14 void enable_caches(void) 15 { 16 dcache_enable(); 17 } 18 19 void disable_caches(void) 20 { 21 dcache_disable(); 22 } 23 #endif 24 25 #ifndef CONFIG_SYS_L2CACHE_OFF 26 void v7_outer_cache_enable(void) 27 { 28 __asm( 29 "push {r0, r1, r2, lr}\n\t" 30 "mrc 15, 0, r3, cr1, cr0, 1\n\t" 31 "orr r3, r3, #2\n\t" 32 "mcr 15, 0, r3, cr1, cr0, 1\n\t" 33 "pop {r1, r2, r3, pc}" 34 ); 35 } 36 37 void v7_outer_cache_disable(void) 38 { 39 __asm( 40 "push {r0, r1, r2, lr}\n\t" 41 "mrc 15, 0, r3, cr1, cr0, 1\n\t" 42 "bic r3, r3, #2\n\t" 43 "mcr 15, 0, r3, cr1, cr0, 1\n\t" 44 "pop {r1, r2, r3, pc}" 45 ); 46 } 47 #endif 48