1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * arch/arm/include/asm/glue-proc.h 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 1997-1999 Russell King 6*4882a593Smuzhiyun * Copyright (C) 2000 Deep Blue Solutions Ltd 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun #ifndef ASM_GLUE_PROC_H 9*4882a593Smuzhiyun #define ASM_GLUE_PROC_H 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #include <asm/glue.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun /* 14*4882a593Smuzhiyun * Work out if we need multiple CPU support 15*4882a593Smuzhiyun */ 16*4882a593Smuzhiyun #undef MULTI_CPU 17*4882a593Smuzhiyun #undef CPU_NAME 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun /* 20*4882a593Smuzhiyun * CPU_NAME - the prefix for CPU related functions 21*4882a593Smuzhiyun */ 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM7TDMI 24*4882a593Smuzhiyun # ifdef CPU_NAME 25*4882a593Smuzhiyun # undef MULTI_CPU 26*4882a593Smuzhiyun # define MULTI_CPU 27*4882a593Smuzhiyun # else 28*4882a593Smuzhiyun # define CPU_NAME cpu_arm7tdmi 29*4882a593Smuzhiyun # endif 30*4882a593Smuzhiyun #endif 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM720T 33*4882a593Smuzhiyun # ifdef CPU_NAME 34*4882a593Smuzhiyun # undef MULTI_CPU 35*4882a593Smuzhiyun # define MULTI_CPU 36*4882a593Smuzhiyun # else 37*4882a593Smuzhiyun # define CPU_NAME cpu_arm720 38*4882a593Smuzhiyun # endif 39*4882a593Smuzhiyun #endif 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM740T 42*4882a593Smuzhiyun # ifdef CPU_NAME 43*4882a593Smuzhiyun # undef MULTI_CPU 44*4882a593Smuzhiyun # define MULTI_CPU 45*4882a593Smuzhiyun # else 46*4882a593Smuzhiyun # define CPU_NAME cpu_arm740 47*4882a593Smuzhiyun # endif 48*4882a593Smuzhiyun #endif 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM9TDMI 51*4882a593Smuzhiyun # ifdef CPU_NAME 52*4882a593Smuzhiyun # undef MULTI_CPU 53*4882a593Smuzhiyun # define MULTI_CPU 54*4882a593Smuzhiyun # else 55*4882a593Smuzhiyun # define CPU_NAME cpu_arm9tdmi 56*4882a593Smuzhiyun # endif 57*4882a593Smuzhiyun #endif 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM920T 60*4882a593Smuzhiyun # ifdef CPU_NAME 61*4882a593Smuzhiyun # undef MULTI_CPU 62*4882a593Smuzhiyun # define MULTI_CPU 63*4882a593Smuzhiyun # else 64*4882a593Smuzhiyun # define CPU_NAME cpu_arm920 65*4882a593Smuzhiyun # endif 66*4882a593Smuzhiyun #endif 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM922T 69*4882a593Smuzhiyun # ifdef CPU_NAME 70*4882a593Smuzhiyun # undef MULTI_CPU 71*4882a593Smuzhiyun # define MULTI_CPU 72*4882a593Smuzhiyun # else 73*4882a593Smuzhiyun # define CPU_NAME cpu_arm922 74*4882a593Smuzhiyun # endif 75*4882a593Smuzhiyun #endif 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun #ifdef CONFIG_CPU_FA526 78*4882a593Smuzhiyun # ifdef CPU_NAME 79*4882a593Smuzhiyun # undef MULTI_CPU 80*4882a593Smuzhiyun # define MULTI_CPU 81*4882a593Smuzhiyun # else 82*4882a593Smuzhiyun # define CPU_NAME cpu_fa526 83*4882a593Smuzhiyun # endif 84*4882a593Smuzhiyun #endif 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM925T 87*4882a593Smuzhiyun # ifdef CPU_NAME 88*4882a593Smuzhiyun # undef MULTI_CPU 89*4882a593Smuzhiyun # define MULTI_CPU 90*4882a593Smuzhiyun # else 91*4882a593Smuzhiyun # define CPU_NAME cpu_arm925 92*4882a593Smuzhiyun # endif 93*4882a593Smuzhiyun #endif 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM926T 96*4882a593Smuzhiyun # ifdef CPU_NAME 97*4882a593Smuzhiyun # undef MULTI_CPU 98*4882a593Smuzhiyun # define MULTI_CPU 99*4882a593Smuzhiyun # else 100*4882a593Smuzhiyun # define CPU_NAME cpu_arm926 101*4882a593Smuzhiyun # endif 102*4882a593Smuzhiyun #endif 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM940T 105*4882a593Smuzhiyun # ifdef CPU_NAME 106*4882a593Smuzhiyun # undef MULTI_CPU 107*4882a593Smuzhiyun # define MULTI_CPU 108*4882a593Smuzhiyun # else 109*4882a593Smuzhiyun # define CPU_NAME cpu_arm940 110*4882a593Smuzhiyun # endif 111*4882a593Smuzhiyun #endif 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM946E 114*4882a593Smuzhiyun # ifdef CPU_NAME 115*4882a593Smuzhiyun # undef MULTI_CPU 116*4882a593Smuzhiyun # define MULTI_CPU 117*4882a593Smuzhiyun # else 118*4882a593Smuzhiyun # define CPU_NAME cpu_arm946 119*4882a593Smuzhiyun # endif 120*4882a593Smuzhiyun #endif 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun #ifdef CONFIG_CPU_SA110 123*4882a593Smuzhiyun # ifdef CPU_NAME 124*4882a593Smuzhiyun # undef MULTI_CPU 125*4882a593Smuzhiyun # define MULTI_CPU 126*4882a593Smuzhiyun # else 127*4882a593Smuzhiyun # define CPU_NAME cpu_sa110 128*4882a593Smuzhiyun # endif 129*4882a593Smuzhiyun #endif 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun #ifdef CONFIG_CPU_SA1100 132*4882a593Smuzhiyun # ifdef CPU_NAME 133*4882a593Smuzhiyun # undef MULTI_CPU 134*4882a593Smuzhiyun # define MULTI_CPU 135*4882a593Smuzhiyun # else 136*4882a593Smuzhiyun # define CPU_NAME cpu_sa1100 137*4882a593Smuzhiyun # endif 138*4882a593Smuzhiyun #endif 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM1020 141*4882a593Smuzhiyun # ifdef CPU_NAME 142*4882a593Smuzhiyun # undef MULTI_CPU 143*4882a593Smuzhiyun # define MULTI_CPU 144*4882a593Smuzhiyun # else 145*4882a593Smuzhiyun # define CPU_NAME cpu_arm1020 146*4882a593Smuzhiyun # endif 147*4882a593Smuzhiyun #endif 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM1020E 150*4882a593Smuzhiyun # ifdef CPU_NAME 151*4882a593Smuzhiyun # undef MULTI_CPU 152*4882a593Smuzhiyun # define MULTI_CPU 153*4882a593Smuzhiyun # else 154*4882a593Smuzhiyun # define CPU_NAME cpu_arm1020e 155*4882a593Smuzhiyun # endif 156*4882a593Smuzhiyun #endif 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM1022 159*4882a593Smuzhiyun # ifdef CPU_NAME 160*4882a593Smuzhiyun # undef MULTI_CPU 161*4882a593Smuzhiyun # define MULTI_CPU 162*4882a593Smuzhiyun # else 163*4882a593Smuzhiyun # define CPU_NAME cpu_arm1022 164*4882a593Smuzhiyun # endif 165*4882a593Smuzhiyun #endif 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun #ifdef CONFIG_CPU_ARM1026 168*4882a593Smuzhiyun # ifdef CPU_NAME 169*4882a593Smuzhiyun # undef MULTI_CPU 170*4882a593Smuzhiyun # define MULTI_CPU 171*4882a593Smuzhiyun # else 172*4882a593Smuzhiyun # define CPU_NAME cpu_arm1026 173*4882a593Smuzhiyun # endif 174*4882a593Smuzhiyun #endif 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun #ifdef CONFIG_CPU_XSCALE 177*4882a593Smuzhiyun # ifdef CPU_NAME 178*4882a593Smuzhiyun # undef MULTI_CPU 179*4882a593Smuzhiyun # define MULTI_CPU 180*4882a593Smuzhiyun # else 181*4882a593Smuzhiyun # define CPU_NAME cpu_xscale 182*4882a593Smuzhiyun # endif 183*4882a593Smuzhiyun #endif 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun #ifdef CONFIG_CPU_XSC3 186*4882a593Smuzhiyun # ifdef CPU_NAME 187*4882a593Smuzhiyun # undef MULTI_CPU 188*4882a593Smuzhiyun # define MULTI_CPU 189*4882a593Smuzhiyun # else 190*4882a593Smuzhiyun # define CPU_NAME cpu_xsc3 191*4882a593Smuzhiyun # endif 192*4882a593Smuzhiyun #endif 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun #ifdef CONFIG_CPU_MOHAWK 195*4882a593Smuzhiyun # ifdef CPU_NAME 196*4882a593Smuzhiyun # undef MULTI_CPU 197*4882a593Smuzhiyun # define MULTI_CPU 198*4882a593Smuzhiyun # else 199*4882a593Smuzhiyun # define CPU_NAME cpu_mohawk 200*4882a593Smuzhiyun # endif 201*4882a593Smuzhiyun #endif 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun #ifdef CONFIG_CPU_FEROCEON 204*4882a593Smuzhiyun # ifdef CPU_NAME 205*4882a593Smuzhiyun # undef MULTI_CPU 206*4882a593Smuzhiyun # define MULTI_CPU 207*4882a593Smuzhiyun # else 208*4882a593Smuzhiyun # define CPU_NAME cpu_feroceon 209*4882a593Smuzhiyun # endif 210*4882a593Smuzhiyun #endif 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) 213*4882a593Smuzhiyun # ifdef CPU_NAME 214*4882a593Smuzhiyun # undef MULTI_CPU 215*4882a593Smuzhiyun # define MULTI_CPU 216*4882a593Smuzhiyun # else 217*4882a593Smuzhiyun # define CPU_NAME cpu_v6 218*4882a593Smuzhiyun # endif 219*4882a593Smuzhiyun #endif 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun #ifdef CONFIG_CPU_V7M 222*4882a593Smuzhiyun # ifdef CPU_NAME 223*4882a593Smuzhiyun # undef MULTI_CPU 224*4882a593Smuzhiyun # define MULTI_CPU 225*4882a593Smuzhiyun # else 226*4882a593Smuzhiyun # define CPU_NAME cpu_v7m 227*4882a593Smuzhiyun # endif 228*4882a593Smuzhiyun #endif 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun #ifdef CONFIG_CPU_PJ4B 231*4882a593Smuzhiyun # ifdef CPU_NAME 232*4882a593Smuzhiyun # undef MULTI_CPU 233*4882a593Smuzhiyun # define MULTI_CPU 234*4882a593Smuzhiyun # else 235*4882a593Smuzhiyun # define CPU_NAME cpu_pj4b 236*4882a593Smuzhiyun # endif 237*4882a593Smuzhiyun #endif 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun #ifdef CONFIG_CPU_V7 240*4882a593Smuzhiyun /* 241*4882a593Smuzhiyun * Cortex-A9 needs a different suspend/resume function, so we need 242*4882a593Smuzhiyun * multiple CPU support for ARMv7 anyway. 243*4882a593Smuzhiyun */ 244*4882a593Smuzhiyun # undef MULTI_CPU 245*4882a593Smuzhiyun # define MULTI_CPU 246*4882a593Smuzhiyun #endif 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun #ifndef MULTI_CPU 249*4882a593Smuzhiyun #define cpu_proc_init __glue(CPU_NAME,_proc_init) 250*4882a593Smuzhiyun #define cpu_proc_fin __glue(CPU_NAME,_proc_fin) 251*4882a593Smuzhiyun #define cpu_reset __glue(CPU_NAME,_reset) 252*4882a593Smuzhiyun #define cpu_do_idle __glue(CPU_NAME,_do_idle) 253*4882a593Smuzhiyun #define cpu_dcache_clean_area __glue(CPU_NAME,_dcache_clean_area) 254*4882a593Smuzhiyun #define cpu_do_switch_mm __glue(CPU_NAME,_switch_mm) 255*4882a593Smuzhiyun #define cpu_set_pte_ext __glue(CPU_NAME,_set_pte_ext) 256*4882a593Smuzhiyun #define cpu_suspend_size __glue(CPU_NAME,_suspend_size) 257*4882a593Smuzhiyun #define cpu_do_suspend __glue(CPU_NAME,_do_suspend) 258*4882a593Smuzhiyun #define cpu_do_resume __glue(CPU_NAME,_do_resume) 259*4882a593Smuzhiyun #endif 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun #endif 262