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