Commit | Line | Data |
---|---|---|
1da177e4 | 1 | /* |
4baa9922 | 2 | * arch/arm/include/asm/proc-fns.h |
1da177e4 LT |
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_PROCFNS_H | |
12 | #define __ASM_PROCFNS_H | |
13 | ||
14 | #ifdef __KERNEL__ | |
15 | ||
1da177e4 LT |
16 | |
17 | /* | |
18 | * Work out if we need multiple CPU support | |
19 | */ | |
20 | #undef MULTI_CPU | |
21 | #undef CPU_NAME | |
22 | ||
23 | /* | |
24 | * CPU_NAME - the prefix for CPU related functions | |
25 | */ | |
26 | ||
4da8b820 RK |
27 | #ifdef CONFIG_CPU_ARM610 |
28 | # ifdef CPU_NAME | |
29 | # undef MULTI_CPU | |
30 | # define MULTI_CPU | |
31 | # else | |
32 | # define CPU_NAME cpu_arm6 | |
1da177e4 | 33 | # endif |
4da8b820 RK |
34 | #endif |
35 | ||
36 | #ifdef CONFIG_CPU_ARM7TDMI | |
37 | # ifdef CPU_NAME | |
38 | # undef MULTI_CPU | |
39 | # define MULTI_CPU | |
40 | # else | |
41 | # define CPU_NAME cpu_arm7tdmi | |
07e0da78 | 42 | # endif |
4da8b820 RK |
43 | #endif |
44 | ||
45 | #ifdef CONFIG_CPU_ARM710 | |
46 | # ifdef CPU_NAME | |
47 | # undef MULTI_CPU | |
48 | # define MULTI_CPU | |
49 | # else | |
50 | # define CPU_NAME cpu_arm7 | |
1da177e4 | 51 | # endif |
4da8b820 RK |
52 | #endif |
53 | ||
54 | #ifdef CONFIG_CPU_ARM720T | |
55 | # ifdef CPU_NAME | |
56 | # undef MULTI_CPU | |
57 | # define MULTI_CPU | |
58 | # else | |
59 | # define CPU_NAME cpu_arm720 | |
1da177e4 | 60 | # endif |
4da8b820 RK |
61 | #endif |
62 | ||
63 | #ifdef CONFIG_CPU_ARM740T | |
64 | # ifdef CPU_NAME | |
65 | # undef MULTI_CPU | |
66 | # define MULTI_CPU | |
67 | # else | |
68 | # define CPU_NAME cpu_arm740 | |
b731c311 | 69 | # endif |
4da8b820 RK |
70 | #endif |
71 | ||
72 | #ifdef CONFIG_CPU_ARM9TDMI | |
73 | # ifdef CPU_NAME | |
74 | # undef MULTI_CPU | |
75 | # define MULTI_CPU | |
76 | # else | |
77 | # define CPU_NAME cpu_arm9tdmi | |
43f5f014 | 78 | # endif |
4da8b820 RK |
79 | #endif |
80 | ||
81 | #ifdef CONFIG_CPU_ARM920T | |
82 | # ifdef CPU_NAME | |
83 | # undef MULTI_CPU | |
84 | # define MULTI_CPU | |
85 | # else | |
86 | # define CPU_NAME cpu_arm920 | |
1da177e4 | 87 | # endif |
4da8b820 RK |
88 | #endif |
89 | ||
90 | #ifdef CONFIG_CPU_ARM922T | |
91 | # ifdef CPU_NAME | |
92 | # undef MULTI_CPU | |
93 | # define MULTI_CPU | |
94 | # else | |
95 | # define CPU_NAME cpu_arm922 | |
1da177e4 | 96 | # endif |
4da8b820 RK |
97 | #endif |
98 | ||
99 | #ifdef CONFIG_CPU_FA526 | |
100 | # ifdef CPU_NAME | |
101 | # undef MULTI_CPU | |
102 | # define MULTI_CPU | |
103 | # else | |
104 | # define CPU_NAME cpu_fa526 | |
28853ac8 | 105 | # endif |
4da8b820 RK |
106 | #endif |
107 | ||
108 | #ifdef CONFIG_CPU_ARM925T | |
109 | # ifdef CPU_NAME | |
110 | # undef MULTI_CPU | |
111 | # define MULTI_CPU | |
112 | # else | |
113 | # define CPU_NAME cpu_arm925 | |
1da177e4 | 114 | # endif |
4da8b820 RK |
115 | #endif |
116 | ||
117 | #ifdef CONFIG_CPU_ARM926T | |
118 | # ifdef CPU_NAME | |
119 | # undef MULTI_CPU | |
120 | # define MULTI_CPU | |
121 | # else | |
122 | # define CPU_NAME cpu_arm926 | |
1da177e4 | 123 | # endif |
4da8b820 RK |
124 | #endif |
125 | ||
126 | #ifdef CONFIG_CPU_ARM940T | |
127 | # ifdef CPU_NAME | |
128 | # undef MULTI_CPU | |
129 | # define MULTI_CPU | |
130 | # else | |
131 | # define CPU_NAME cpu_arm940 | |
d60674eb | 132 | # endif |
4da8b820 RK |
133 | #endif |
134 | ||
135 | #ifdef CONFIG_CPU_ARM946E | |
136 | # ifdef CPU_NAME | |
137 | # undef MULTI_CPU | |
138 | # define MULTI_CPU | |
139 | # else | |
140 | # define CPU_NAME cpu_arm946 | |
f37f46eb | 141 | # endif |
4da8b820 RK |
142 | #endif |
143 | ||
144 | #ifdef CONFIG_CPU_SA110 | |
145 | # ifdef CPU_NAME | |
146 | # undef MULTI_CPU | |
147 | # define MULTI_CPU | |
148 | # else | |
149 | # define CPU_NAME cpu_sa110 | |
1da177e4 | 150 | # endif |
4da8b820 RK |
151 | #endif |
152 | ||
153 | #ifdef CONFIG_CPU_SA1100 | |
154 | # ifdef CPU_NAME | |
155 | # undef MULTI_CPU | |
156 | # define MULTI_CPU | |
157 | # else | |
158 | # define CPU_NAME cpu_sa1100 | |
1da177e4 | 159 | # endif |
4da8b820 RK |
160 | #endif |
161 | ||
162 | #ifdef CONFIG_CPU_ARM1020 | |
163 | # ifdef CPU_NAME | |
164 | # undef MULTI_CPU | |
165 | # define MULTI_CPU | |
166 | # else | |
167 | # define CPU_NAME cpu_arm1020 | |
1da177e4 | 168 | # endif |
4da8b820 RK |
169 | #endif |
170 | ||
171 | #ifdef CONFIG_CPU_ARM1020E | |
172 | # ifdef CPU_NAME | |
173 | # undef MULTI_CPU | |
174 | # define MULTI_CPU | |
175 | # else | |
176 | # define CPU_NAME cpu_arm1020e | |
1da177e4 | 177 | # endif |
4da8b820 RK |
178 | #endif |
179 | ||
180 | #ifdef CONFIG_CPU_ARM1022 | |
181 | # ifdef CPU_NAME | |
182 | # undef MULTI_CPU | |
183 | # define MULTI_CPU | |
184 | # else | |
185 | # define CPU_NAME cpu_arm1022 | |
1da177e4 | 186 | # endif |
4da8b820 RK |
187 | #endif |
188 | ||
189 | #ifdef CONFIG_CPU_ARM1026 | |
190 | # ifdef CPU_NAME | |
191 | # undef MULTI_CPU | |
192 | # define MULTI_CPU | |
193 | # else | |
194 | # define CPU_NAME cpu_arm1026 | |
1da177e4 | 195 | # endif |
4da8b820 RK |
196 | #endif |
197 | ||
198 | #ifdef CONFIG_CPU_XSCALE | |
199 | # ifdef CPU_NAME | |
200 | # undef MULTI_CPU | |
201 | # define MULTI_CPU | |
202 | # else | |
203 | # define CPU_NAME cpu_xscale | |
1da177e4 | 204 | # endif |
4da8b820 RK |
205 | #endif |
206 | ||
207 | #ifdef CONFIG_CPU_XSC3 | |
208 | # ifdef CPU_NAME | |
209 | # undef MULTI_CPU | |
210 | # define MULTI_CPU | |
211 | # else | |
212 | # define CPU_NAME cpu_xsc3 | |
23bdf86a | 213 | # endif |
4da8b820 RK |
214 | #endif |
215 | ||
216 | #ifdef CONFIG_CPU_MOHAWK | |
217 | # ifdef CPU_NAME | |
218 | # undef MULTI_CPU | |
219 | # define MULTI_CPU | |
220 | # else | |
221 | # define CPU_NAME cpu_mohawk | |
49cbe786 | 222 | # endif |
4da8b820 RK |
223 | #endif |
224 | ||
225 | #ifdef CONFIG_CPU_FEROCEON | |
226 | # ifdef CPU_NAME | |
227 | # undef MULTI_CPU | |
228 | # define MULTI_CPU | |
229 | # else | |
230 | # define CPU_NAME cpu_feroceon | |
e50d6409 | 231 | # endif |
4da8b820 RK |
232 | #endif |
233 | ||
234 | #ifdef CONFIG_CPU_V6 | |
235 | # ifdef CPU_NAME | |
236 | # undef MULTI_CPU | |
237 | # define MULTI_CPU | |
238 | # else | |
239 | # define CPU_NAME cpu_v6 | |
1da177e4 | 240 | # endif |
4da8b820 RK |
241 | #endif |
242 | ||
243 | #ifdef CONFIG_CPU_V7 | |
244 | # ifdef CPU_NAME | |
245 | # undef MULTI_CPU | |
246 | # define MULTI_CPU | |
247 | # else | |
248 | # define CPU_NAME cpu_v7 | |
bbe88886 | 249 | # endif |
1da177e4 LT |
250 | #endif |
251 | ||
252 | #ifndef __ASSEMBLY__ | |
253 | ||
254 | #ifndef MULTI_CPU | |
10debfd2 | 255 | #include <asm/cpu-single.h> |
1da177e4 | 256 | #else |
10debfd2 | 257 | #include <asm/cpu-multi32.h> |
1da177e4 LT |
258 | #endif |
259 | ||
260 | #include <asm/memory.h> | |
261 | ||
002547b4 RK |
262 | #ifdef CONFIG_MMU |
263 | ||
1da177e4 LT |
264 | #define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm) |
265 | ||
266 | #define cpu_get_pgd() \ | |
267 | ({ \ | |
268 | unsigned long pg; \ | |
269 | __asm__("mrc p15, 0, %0, c2, c0, 0" \ | |
270 | : "=r" (pg) : : "cc"); \ | |
271 | pg &= ~0x3fff; \ | |
272 | (pgd_t *)phys_to_virt(pg); \ | |
273 | }) | |
274 | ||
002547b4 RK |
275 | #endif |
276 | ||
1da177e4 LT |
277 | #endif /* __ASSEMBLY__ */ |
278 | #endif /* __KERNEL__ */ | |
279 | #endif /* __ASM_PROCFNS_H */ |