xref: /openbmc/u-boot/arch/arc/include/asm/cache.h (revision c60bfe9b)
1 /*
2  * Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
3  *
4  * SPDX-License-Identifier:	GPL-2.0+
5  */
6 
7 #ifndef __ASM_ARC_CACHE_H
8 #define __ASM_ARC_CACHE_H
9 
10 #include <config.h>
11 
12 /*
13  * As of today we may handle any L1 cache line length right in software.
14  * For that essentially cache line length is a variable not constant.
15  * And to satisfy users of ARCH_DMA_MINALIGN we just use largest line length
16  * that may exist in either L1 or L2 (AKA SLC) caches on ARC.
17  */
18 #define ARCH_DMA_MINALIGN	128
19 
20 #if defined(ARC_MMU_ABSENT)
21 #define CONFIG_ARC_MMU_VER 0
22 #elif defined(CONFIG_ARC_MMU_V2)
23 #define CONFIG_ARC_MMU_VER 2
24 #elif defined(CONFIG_ARC_MMU_V3)
25 #define CONFIG_ARC_MMU_VER 3
26 #elif defined(CONFIG_ARC_MMU_V4)
27 #define CONFIG_ARC_MMU_VER 4
28 #endif
29 
30 #ifndef __ASSEMBLY__
31 
32 void cache_init(void);
33 void flush_n_invalidate_dcache_all(void);
34 void sync_n_cleanup_cache_all(void);
35 
36 static const inline int is_ioc_enabled(void)
37 {
38 	return IS_ENABLED(CONFIG_ARC_DBG_IOC_ENABLE);
39 }
40 
41 #endif /* __ASSEMBLY__ */
42 
43 #endif /* __ASM_ARC_CACHE_H */
44