at v6.19 151 lines 3.0 kB view raw
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * arch/arm/include/asm/glue-cache.h 4 * 5 * Copyright (C) 1999-2002 Russell King 6 */ 7#ifndef ASM_GLUE_CACHE_H 8#define ASM_GLUE_CACHE_H 9 10#include <asm/glue.h> 11 12/* 13 * Cache Model 14 * =========== 15 */ 16#undef _CACHE 17#undef MULTI_CACHE 18 19#if defined(CONFIG_CPU_CACHE_V4) 20# ifdef _CACHE 21# define MULTI_CACHE 1 22# else 23# define _CACHE v4 24# endif 25#endif 26 27#if defined(CONFIG_CPU_ARM920T) || defined(CONFIG_CPU_ARM922T) || \ 28 defined(CONFIG_CPU_ARM925T) || defined(CONFIG_CPU_ARM1020) || \ 29 defined(CONFIG_CPU_ARM1026) 30# define MULTI_CACHE 1 31#endif 32 33#if defined(CONFIG_CPU_FA526) 34# ifdef _CACHE 35# define MULTI_CACHE 1 36# else 37# define _CACHE fa 38# endif 39#endif 40 41#if defined(CONFIG_CPU_ARM926T) 42# ifdef _CACHE 43# define MULTI_CACHE 1 44# else 45# define _CACHE arm926 46# endif 47#endif 48 49#if defined(CONFIG_CPU_ARM940T) 50# ifdef _CACHE 51# define MULTI_CACHE 1 52# else 53# define _CACHE arm940 54# endif 55#endif 56 57#if defined(CONFIG_CPU_ARM946E) 58# ifdef _CACHE 59# define MULTI_CACHE 1 60# else 61# define _CACHE arm946 62# endif 63#endif 64 65#if defined(CONFIG_CPU_CACHE_V4WB) 66# ifdef _CACHE 67# define MULTI_CACHE 1 68# else 69# define _CACHE v4wb 70# endif 71#endif 72 73#if defined(CONFIG_CPU_XSCALE) 74# ifdef _CACHE 75# define MULTI_CACHE 1 76# else 77# define _CACHE xscale 78# endif 79#endif 80 81#if defined(CONFIG_CPU_XSC3) 82# ifdef _CACHE 83# define MULTI_CACHE 1 84# else 85# define _CACHE xsc3 86# endif 87#endif 88 89#if defined(CONFIG_CPU_MOHAWK) 90# ifdef _CACHE 91# define MULTI_CACHE 1 92# else 93# define _CACHE mohawk 94# endif 95#endif 96 97#if defined(CONFIG_CPU_FEROCEON) 98# define MULTI_CACHE 1 99#endif 100 101#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) 102# ifdef _CACHE 103# define MULTI_CACHE 1 104# else 105# define _CACHE v6 106# endif 107#endif 108 109#if defined(CONFIG_CPU_V7) 110# ifdef _CACHE 111# define MULTI_CACHE 1 112# else 113# define _CACHE v7 114# endif 115#endif 116 117#if defined(CONFIG_CACHE_B15_RAC) 118# define MULTI_CACHE 1 119#endif 120 121#ifdef CONFIG_CPU_CACHE_NOP 122# define MULTI_CACHE 1 123#endif 124 125#if defined(CONFIG_CPU_V7M) 126# define MULTI_CACHE 1 127#endif 128 129#if !defined(_CACHE) && !defined(MULTI_CACHE) 130#error Unknown cache maintenance model 131#endif 132 133#ifndef MULTI_CACHE 134#define __cpuc_flush_icache_all __glue(_CACHE,_flush_icache_all) 135#define __cpuc_flush_kern_all __glue(_CACHE,_flush_kern_cache_all) 136/* This function only has a dedicated assembly callback on the v7 cache */ 137#ifdef CONFIG_CPU_CACHE_V7 138#define __cpuc_flush_kern_louis __glue(_CACHE,_flush_kern_cache_louis) 139#else 140#define __cpuc_flush_kern_louis __glue(_CACHE,_flush_kern_cache_all) 141#endif 142#define __cpuc_flush_user_all __glue(_CACHE,_flush_user_cache_all) 143#define __cpuc_flush_user_range __glue(_CACHE,_flush_user_cache_range) 144#define __cpuc_coherent_kern_range __glue(_CACHE,_coherent_kern_range) 145#define __cpuc_coherent_user_range __glue(_CACHE,_coherent_user_range) 146#define __cpuc_flush_dcache_area __glue(_CACHE,_flush_kern_dcache_area) 147 148#define dmac_flush_range __glue(_CACHE,_dma_flush_range) 149#endif 150 151#endif