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
enable_caches(void)14 void enable_caches(void)
15 {
16 dcache_enable();
17 }
18
disable_caches(void)19 void disable_caches(void)
20 {
21 dcache_disable();
22 }
23 #endif
24
25 #ifndef CONFIG_SYS_L2CACHE_OFF
v7_outer_cache_enable(void)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
v7_outer_cache_disable(void)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