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