2018-05-06 17:58:06 -04:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2014-02-04 12:56:13 +04:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __ASM_ARC_CACHE_H
|
|
|
|
#define __ASM_ARC_CACHE_H
|
|
|
|
|
|
|
|
#include <config.h>
|
|
|
|
|
2015-12-14 17:14:46 +03:00
|
|
|
/*
|
|
|
|
* As of today we may handle any L1 cache line length right in software.
|
|
|
|
* For that essentially cache line length is a variable not constant.
|
|
|
|
* And to satisfy users of ARCH_DMA_MINALIGN we just use largest line length
|
|
|
|
* that may exist in either L1 or L2 (AKA SLC) caches on ARC.
|
|
|
|
*/
|
|
|
|
#define ARCH_DMA_MINALIGN 128
|
2014-02-04 12:56:13 +04:00
|
|
|
|
2019-01-22 19:37:15 +03:00
|
|
|
/* CONFIG_SYS_CACHELINE_SIZE is used a lot in drivers */
|
|
|
|
#define CONFIG_SYS_CACHELINE_SIZE ARCH_DMA_MINALIGN
|
|
|
|
|
2015-01-13 18:35:46 +03:00
|
|
|
#if defined(ARC_MMU_ABSENT)
|
|
|
|
#define CONFIG_ARC_MMU_VER 0
|
|
|
|
#elif defined(CONFIG_ARC_MMU_V2)
|
2015-02-03 13:58:11 +03:00
|
|
|
#define CONFIG_ARC_MMU_VER 2
|
|
|
|
#elif defined(CONFIG_ARC_MMU_V3)
|
|
|
|
#define CONFIG_ARC_MMU_VER 3
|
2015-01-13 18:35:46 +03:00
|
|
|
#elif defined(CONFIG_ARC_MMU_V4)
|
|
|
|
#define CONFIG_ARC_MMU_VER 4
|
2015-02-03 13:58:11 +03:00
|
|
|
#endif
|
|
|
|
|
2015-03-30 13:36:04 +03:00
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
|
2015-05-18 16:56:26 +03:00
|
|
|
void cache_init(void);
|
2018-03-21 15:58:50 +03:00
|
|
|
void flush_n_invalidate_dcache_all(void);
|
2018-03-21 15:59:02 +03:00
|
|
|
void sync_n_cleanup_cache_all(void);
|
2015-03-30 13:36:04 +03:00
|
|
|
|
2018-03-21 15:58:59 +03:00
|
|
|
static const inline int is_ioc_enabled(void)
|
|
|
|
{
|
|
|
|
return IS_ENABLED(CONFIG_ARC_DBG_IOC_ENABLE);
|
|
|
|
}
|
|
|
|
|
2020-03-11 15:00:43 +03:00
|
|
|
/*
|
|
|
|
* We export SLC control functions to use them in platform configuration code.
|
|
|
|
* They maust not be used in any generic code!
|
|
|
|
*/
|
|
|
|
void slc_enable(void);
|
|
|
|
void slc_disable(void);
|
|
|
|
|
2015-03-30 13:36:04 +03:00
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
|
2014-02-04 12:56:13 +04:00
|
|
|
#endif /* __ASM_ARC_CACHE_H */
|