xref: /openbmc/u-boot/arch/arm/mach-s5pc1xx/cache.c (revision 9d466f2f)
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