diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2005-10-12 01:55:09 -0400 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2005-10-12 19:49:45 -0400 |
commit | 4920960f577edcb0a5ef03823a53911cca5875e1 (patch) | |
tree | c37bb1a8b02f54e3a5012bac7f726208e6fc488e | |
parent | 7e130edf712ac054aecf643f9d3d0142a9679e6a (diff) |
powerpc: consolidate cputable.c
Also simplify arch/ppc64/kernel/Makefile
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
-rw-r--r-- | arch/powerpc/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/cputable.c (renamed from arch/ppc/kernel/cputable.c) | 413 | ||||
-rw-r--r-- | arch/ppc/kernel/Makefile | 4 | ||||
-rw-r--r-- | arch/ppc64/kernel/Makefile | 85 | ||||
-rw-r--r-- | arch/ppc64/kernel/cputable.c | 260 | ||||
-rw-r--r-- | include/asm-powerpc/cputable.h | 3 |
6 files changed, 329 insertions, 438 deletions
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index 931795380978..f03f6d4ffaa6 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile | |||
@@ -10,7 +10,7 @@ CFLAGS_prom_init.o += -fPIC | |||
10 | CFLAGS_btext.o += -fPIC | 10 | CFLAGS_btext.o += -fPIC |
11 | endif | 11 | endif |
12 | 12 | ||
13 | obj-y := semaphore.o | 13 | obj-y := semaphore.o cputable.o |
14 | obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o | 14 | obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o |
15 | obj-$(CONFIG_POWER4) += idle_power4.o | 15 | obj-$(CONFIG_POWER4) += idle_power4.o |
16 | 16 | ||
diff --git a/arch/ppc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 207d4dd059d9..214f3b088edf 100644 --- a/arch/ppc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -1,8 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * arch/ppc/kernel/cputable.c | ||
3 | * | ||
4 | * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org) | 2 | * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org) |
5 | * | 3 | * |
4 | * Modifications for ppc64: | ||
5 | * Copyright (C) 2003 Dave Engebretsen <engebret@us.ibm.com> | ||
6 | * | ||
6 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
8 | * as published by the Free Software Foundation; either version | 9 | * as published by the Free Software Foundation; either version |
@@ -20,7 +21,22 @@ | |||
20 | #include <asm/cputable.h> | 21 | #include <asm/cputable.h> |
21 | 22 | ||
22 | struct cpu_spec* cur_cpu_spec = NULL; | 23 | struct cpu_spec* cur_cpu_spec = NULL; |
24 | #ifdef CONFIG_PPC64 | ||
25 | EXPORT_SYMBOL(cur_cpu_spec); | ||
26 | #endif | ||
23 | 27 | ||
28 | /* NOTE: | ||
29 | * Unlike ppc32, ppc64 will only call this once for the boot CPU, it's | ||
30 | * the responsibility of the appropriate CPU save/restore functions to | ||
31 | * eventually copy these settings over. Those save/restore aren't yet | ||
32 | * part of the cputable though. That has to be fixed for both ppc32 | ||
33 | * and ppc64 | ||
34 | */ | ||
35 | #ifdef CONFIG_PPC64 | ||
36 | extern void __setup_cpu_power3(unsigned long offset, struct cpu_spec* spec); | ||
37 | extern void __setup_cpu_power4(unsigned long offset, struct cpu_spec* spec); | ||
38 | extern void __setup_cpu_be(unsigned long offset, struct cpu_spec* spec); | ||
39 | #else | ||
24 | extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec); | 40 | extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec); |
25 | extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec); | 41 | extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec); |
26 | extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec); | 42 | extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec); |
@@ -29,35 +45,264 @@ extern void __setup_cpu_750fx(unsigned long offset, struct cpu_spec* spec); | |||
29 | extern void __setup_cpu_7400(unsigned long offset, struct cpu_spec* spec); | 45 | extern void __setup_cpu_7400(unsigned long offset, struct cpu_spec* spec); |
30 | extern void __setup_cpu_7410(unsigned long offset, struct cpu_spec* spec); | 46 | extern void __setup_cpu_7410(unsigned long offset, struct cpu_spec* spec); |
31 | extern void __setup_cpu_745x(unsigned long offset, struct cpu_spec* spec); | 47 | extern void __setup_cpu_745x(unsigned long offset, struct cpu_spec* spec); |
48 | #endif /* CONFIG_PPC32 */ | ||
32 | extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec); | 49 | extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec); |
33 | 50 | ||
34 | #define CLASSIC_PPC (!defined(CONFIG_8xx) && !defined(CONFIG_4xx) && \ | ||
35 | !defined(CONFIG_POWER3) && !defined(CONFIG_POWER4) && \ | ||
36 | !defined(CONFIG_BOOKE)) | ||
37 | |||
38 | /* This table only contains "desktop" CPUs, it need to be filled with embedded | 51 | /* This table only contains "desktop" CPUs, it need to be filled with embedded |
39 | * ones as well... | 52 | * ones as well... |
40 | */ | 53 | */ |
41 | #define COMMON_PPC (PPC_FEATURE_32 | PPC_FEATURE_HAS_FPU | \ | 54 | #define COMMON_USER (PPC_FEATURE_32 | PPC_FEATURE_HAS_FPU | \ |
42 | PPC_FEATURE_HAS_MMU) | 55 | PPC_FEATURE_HAS_MMU) |
56 | #define COMMON_USER_PPC64 (COMMON_USER | PPC_FEATURE_64) | ||
57 | |||
43 | 58 | ||
44 | /* We only set the spe features if the kernel was compiled with | 59 | /* We only set the spe features if the kernel was compiled with |
45 | * spe support | 60 | * spe support |
46 | */ | 61 | */ |
47 | #ifdef CONFIG_SPE | 62 | #ifdef CONFIG_SPE |
48 | #define PPC_FEATURE_SPE_COMP PPC_FEATURE_HAS_SPE | 63 | #define PPC_FEATURE_SPE_COMP PPC_FEATURE_HAS_SPE |
49 | #else | 64 | #else |
50 | #define PPC_FEATURE_SPE_COMP 0 | 65 | #define PPC_FEATURE_SPE_COMP 0 |
51 | #endif | 66 | #endif |
52 | 67 | ||
53 | struct cpu_spec cpu_specs[] = { | 68 | struct cpu_spec cpu_specs[] = { |
69 | #ifdef CONFIG_PPC64 | ||
70 | { /* Power3 */ | ||
71 | .pvr_mask = 0xffff0000, | ||
72 | .pvr_value = 0x00400000, | ||
73 | .cpu_name = "POWER3 (630)", | ||
74 | .cpu_features = CPU_FTRS_POWER3, | ||
75 | .cpu_user_features = COMMON_USER_PPC64, | ||
76 | .icache_bsize = 128, | ||
77 | .dcache_bsize = 128, | ||
78 | .num_pmcs = 8, | ||
79 | .cpu_setup = __setup_cpu_power3, | ||
80 | #ifdef CONFIG_OPROFILE | ||
81 | .oprofile_cpu_type = "ppc64/power3", | ||
82 | .oprofile_model = &op_model_rs64, | ||
83 | #endif | ||
84 | }, | ||
85 | { /* Power3+ */ | ||
86 | .pvr_mask = 0xffff0000, | ||
87 | .pvr_value = 0x00410000, | ||
88 | .cpu_name = "POWER3 (630+)", | ||
89 | .cpu_features = CPU_FTRS_POWER3, | ||
90 | .cpu_user_features = COMMON_USER_PPC64, | ||
91 | .icache_bsize = 128, | ||
92 | .dcache_bsize = 128, | ||
93 | .num_pmcs = 8, | ||
94 | .cpu_setup = __setup_cpu_power3, | ||
95 | #ifdef CONFIG_OPROFILE | ||
96 | .oprofile_cpu_type = "ppc64/power3", | ||
97 | .oprofile_model = &op_model_rs64, | ||
98 | #endif | ||
99 | }, | ||
100 | { /* Northstar */ | ||
101 | .pvr_mask = 0xffff0000, | ||
102 | .pvr_value = 0x00330000, | ||
103 | .cpu_name = "RS64-II (northstar)", | ||
104 | .cpu_features = CPU_FTRS_RS64, | ||
105 | .cpu_user_features = COMMON_USER_PPC64, | ||
106 | .icache_bsize = 128, | ||
107 | .dcache_bsize = 128, | ||
108 | .num_pmcs = 8, | ||
109 | .cpu_setup = __setup_cpu_power3, | ||
110 | #ifdef CONFIG_OPROFILE | ||
111 | .oprofile_cpu_type = "ppc64/rs64", | ||
112 | .oprofile_model = &op_model_rs64, | ||
113 | #endif | ||
114 | }, | ||
115 | { /* Pulsar */ | ||
116 | .pvr_mask = 0xffff0000, | ||
117 | .pvr_value = 0x00340000, | ||
118 | .cpu_name = "RS64-III (pulsar)", | ||
119 | .cpu_features = CPU_FTRS_RS64, | ||
120 | .cpu_user_features = COMMON_USER_PPC64, | ||
121 | .icache_bsize = 128, | ||
122 | .dcache_bsize = 128, | ||
123 | .num_pmcs = 8, | ||
124 | .cpu_setup = __setup_cpu_power3, | ||
125 | #ifdef CONFIG_OPROFILE | ||
126 | .oprofile_cpu_type = "ppc64/rs64", | ||
127 | .oprofile_model = &op_model_rs64, | ||
128 | #endif | ||
129 | }, | ||
130 | { /* I-star */ | ||
131 | .pvr_mask = 0xffff0000, | ||
132 | .pvr_value = 0x00360000, | ||
133 | .cpu_name = "RS64-III (icestar)", | ||
134 | .cpu_features = CPU_FTRS_RS64, | ||
135 | .cpu_user_features = COMMON_USER_PPC64, | ||
136 | .icache_bsize = 128, | ||
137 | .dcache_bsize = 128, | ||
138 | .num_pmcs = 8, | ||
139 | .cpu_setup = __setup_cpu_power3, | ||
140 | #ifdef CONFIG_OPROFILE | ||
141 | .oprofile_cpu_type = "ppc64/rs64", | ||
142 | .oprofile_model = &op_model_rs64, | ||
143 | #endif | ||
144 | }, | ||
145 | { /* S-star */ | ||
146 | .pvr_mask = 0xffff0000, | ||
147 | .pvr_value = 0x00370000, | ||
148 | .cpu_name = "RS64-IV (sstar)", | ||
149 | .cpu_features = CPU_FTRS_RS64, | ||
150 | .cpu_user_features = COMMON_USER_PPC64, | ||
151 | .icache_bsize = 128, | ||
152 | .dcache_bsize = 128, | ||
153 | .num_pmcs = 8, | ||
154 | .cpu_setup = __setup_cpu_power3, | ||
155 | #ifdef CONFIG_OPROFILE | ||
156 | .oprofile_cpu_type = "ppc64/rs64", | ||
157 | .oprofile_model = &op_model_rs64, | ||
158 | #endif | ||
159 | }, | ||
160 | { /* Power4 */ | ||
161 | .pvr_mask = 0xffff0000, | ||
162 | .pvr_value = 0x00350000, | ||
163 | .cpu_name = "POWER4 (gp)", | ||
164 | .cpu_features = CPU_FTRS_POWER4, | ||
165 | .cpu_user_features = COMMON_USER_PPC64, | ||
166 | .icache_bsize = 128, | ||
167 | .dcache_bsize = 128, | ||
168 | .num_pmcs = 8, | ||
169 | .cpu_setup = __setup_cpu_power4, | ||
170 | #ifdef CONFIG_OPROFILE | ||
171 | .oprofile_cpu_type = "ppc64/power4", | ||
172 | .oprofile_model = &op_model_rs64, | ||
173 | #endif | ||
174 | }, | ||
175 | { /* Power4+ */ | ||
176 | .pvr_mask = 0xffff0000, | ||
177 | .pvr_value = 0x00380000, | ||
178 | .cpu_name = "POWER4+ (gq)", | ||
179 | .cpu_features = CPU_FTRS_POWER4, | ||
180 | .cpu_user_features = COMMON_USER_PPC64, | ||
181 | .icache_bsize = 128, | ||
182 | .dcache_bsize = 128, | ||
183 | .num_pmcs = 8, | ||
184 | .cpu_setup = __setup_cpu_power4, | ||
185 | #ifdef CONFIG_OPROFILE | ||
186 | .oprofile_cpu_type = "ppc64/power4", | ||
187 | .oprofile_model = &op_model_power4, | ||
188 | #endif | ||
189 | }, | ||
190 | { /* PPC970 */ | ||
191 | .pvr_mask = 0xffff0000, | ||
192 | .pvr_value = 0x00390000, | ||
193 | .cpu_name = "PPC970", | ||
194 | .cpu_features = CPU_FTRS_PPC970, | ||
195 | .cpu_user_features = COMMON_USER_PPC64 | | ||
196 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
197 | .icache_bsize = 128, | ||
198 | .dcache_bsize = 128, | ||
199 | .num_pmcs = 8, | ||
200 | .cpu_setup = __setup_cpu_ppc970, | ||
201 | #ifdef CONFIG_OPROFILE | ||
202 | .oprofile_cpu_type = "ppc64/970", | ||
203 | .oprofile_model = &op_model_power4, | ||
204 | #endif | ||
205 | }, | ||
206 | #endif /* CONFIG_PPC64 */ | ||
207 | #if defined(CONFIG_PPC64) || defined(CONFIG_POWER4) | ||
208 | { /* PPC970FX */ | ||
209 | .pvr_mask = 0xffff0000, | ||
210 | .pvr_value = 0x003c0000, | ||
211 | .cpu_name = "PPC970FX", | ||
212 | #ifdef CONFIG_PPC32 | ||
213 | .cpu_features = CPU_FTRS_970_32, | ||
214 | #else | ||
215 | .cpu_features = CPU_FTRS_PPC970, | ||
216 | #endif | ||
217 | .cpu_user_features = COMMON_USER_PPC64 | | ||
218 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
219 | .icache_bsize = 128, | ||
220 | .dcache_bsize = 128, | ||
221 | .num_pmcs = 8, | ||
222 | .cpu_setup = __setup_cpu_ppc970, | ||
223 | #ifdef CONFIG_OPROFILE | ||
224 | .oprofile_cpu_type = "ppc64/970", | ||
225 | .oprofile_model = &op_model_power4, | ||
226 | #endif | ||
227 | }, | ||
228 | #endif /* defined(CONFIG_PPC64) || defined(CONFIG_POWER4) */ | ||
229 | #ifdef CONFIG_PPC64 | ||
230 | { /* PPC970MP */ | ||
231 | .pvr_mask = 0xffff0000, | ||
232 | .pvr_value = 0x00440000, | ||
233 | .cpu_name = "PPC970MP", | ||
234 | .cpu_features = CPU_FTRS_PPC970, | ||
235 | .cpu_user_features = COMMON_USER_PPC64 | | ||
236 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
237 | .icache_bsize = 128, | ||
238 | .dcache_bsize = 128, | ||
239 | .cpu_setup = __setup_cpu_ppc970, | ||
240 | #ifdef CONFIG_OPROFILE | ||
241 | .oprofile_cpu_type = "ppc64/970", | ||
242 | .oprofile_model = &op_model_power4, | ||
243 | #endif | ||
244 | }, | ||
245 | { /* Power5 */ | ||
246 | .pvr_mask = 0xffff0000, | ||
247 | .pvr_value = 0x003a0000, | ||
248 | .cpu_name = "POWER5 (gr)", | ||
249 | .cpu_features = CPU_FTRS_POWER5, | ||
250 | .cpu_user_features = COMMON_USER_PPC64, | ||
251 | .icache_bsize = 128, | ||
252 | .dcache_bsize = 128, | ||
253 | .num_pmcs = 6, | ||
254 | .cpu_setup = __setup_cpu_power4, | ||
255 | #ifdef CONFIG_OPROFILE | ||
256 | .oprofile_cpu_type = "ppc64/power5", | ||
257 | .oprofile_model = &op_model_power4, | ||
258 | #endif | ||
259 | }, | ||
260 | { /* Power5 */ | ||
261 | .pvr_mask = 0xffff0000, | ||
262 | .pvr_value = 0x003b0000, | ||
263 | .cpu_name = "POWER5 (gs)", | ||
264 | .cpu_features = CPU_FTRS_POWER5, | ||
265 | .cpu_user_features = COMMON_USER_PPC64, | ||
266 | .icache_bsize = 128, | ||
267 | .dcache_bsize = 128, | ||
268 | .num_pmcs = 6, | ||
269 | .cpu_setup = __setup_cpu_power4, | ||
270 | #ifdef CONFIG_OPROFILE | ||
271 | .oprofile_cpu_type = "ppc64/power5", | ||
272 | .oprofile_model = &op_model_power4, | ||
273 | #endif | ||
274 | }, | ||
275 | { /* BE DD1.x */ | ||
276 | .pvr_mask = 0xffff0000, | ||
277 | .pvr_value = 0x00700000, | ||
278 | .cpu_name = "Cell Broadband Engine", | ||
279 | .cpu_features = CPU_FTRS_CELL, | ||
280 | .cpu_user_features = COMMON_USER_PPC64 | | ||
281 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
282 | .icache_bsize = 128, | ||
283 | .dcache_bsize = 128, | ||
284 | .cpu_setup = __setup_cpu_be, | ||
285 | }, | ||
286 | { /* default match */ | ||
287 | .pvr_mask = 0x00000000, | ||
288 | .pvr_value = 0x00000000, | ||
289 | .cpu_name = "POWER4 (compatible)", | ||
290 | .cpu_features = CPU_FTRS_COMPATIBLE, | ||
291 | .cpu_user_features = COMMON_USER_PPC64, | ||
292 | .icache_bsize = 128, | ||
293 | .dcache_bsize = 128, | ||
294 | .num_pmcs = 6, | ||
295 | .cpu_setup = __setup_cpu_power4, | ||
296 | } | ||
297 | #endif /* CONFIG_PPC64 */ | ||
298 | #ifdef CONFIG_PPC32 | ||
54 | #if CLASSIC_PPC | 299 | #if CLASSIC_PPC |
55 | { /* 601 */ | 300 | { /* 601 */ |
56 | .pvr_mask = 0xffff0000, | 301 | .pvr_mask = 0xffff0000, |
57 | .pvr_value = 0x00010000, | 302 | .pvr_value = 0x00010000, |
58 | .cpu_name = "601", | 303 | .cpu_name = "601", |
59 | .cpu_features = CPU_FTRS_PPC601, | 304 | .cpu_features = CPU_FTRS_PPC601, |
60 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_601_INSTR | | 305 | .cpu_user_features = COMMON_USER | PPC_FEATURE_601_INSTR | |
61 | PPC_FEATURE_UNIFIED_CACHE, | 306 | PPC_FEATURE_UNIFIED_CACHE, |
62 | .icache_bsize = 32, | 307 | .icache_bsize = 32, |
63 | .dcache_bsize = 32, | 308 | .dcache_bsize = 32, |
@@ -67,7 +312,7 @@ struct cpu_spec cpu_specs[] = { | |||
67 | .pvr_value = 0x00030000, | 312 | .pvr_value = 0x00030000, |
68 | .cpu_name = "603", | 313 | .cpu_name = "603", |
69 | .cpu_features = CPU_FTRS_603, | 314 | .cpu_features = CPU_FTRS_603, |
70 | .cpu_user_features = COMMON_PPC, | 315 | .cpu_user_features = COMMON_USER, |
71 | .icache_bsize = 32, | 316 | .icache_bsize = 32, |
72 | .dcache_bsize = 32, | 317 | .dcache_bsize = 32, |
73 | .cpu_setup = __setup_cpu_603 | 318 | .cpu_setup = __setup_cpu_603 |
@@ -77,7 +322,7 @@ struct cpu_spec cpu_specs[] = { | |||
77 | .pvr_value = 0x00060000, | 322 | .pvr_value = 0x00060000, |
78 | .cpu_name = "603e", | 323 | .cpu_name = "603e", |
79 | .cpu_features = CPU_FTRS_603, | 324 | .cpu_features = CPU_FTRS_603, |
80 | .cpu_user_features = COMMON_PPC, | 325 | .cpu_user_features = COMMON_USER, |
81 | .icache_bsize = 32, | 326 | .icache_bsize = 32, |
82 | .dcache_bsize = 32, | 327 | .dcache_bsize = 32, |
83 | .cpu_setup = __setup_cpu_603 | 328 | .cpu_setup = __setup_cpu_603 |
@@ -87,7 +332,7 @@ struct cpu_spec cpu_specs[] = { | |||
87 | .pvr_value = 0x00070000, | 332 | .pvr_value = 0x00070000, |
88 | .cpu_name = "603ev", | 333 | .cpu_name = "603ev", |
89 | .cpu_features = CPU_FTRS_603, | 334 | .cpu_features = CPU_FTRS_603, |
90 | .cpu_user_features = COMMON_PPC, | 335 | .cpu_user_features = COMMON_USER, |
91 | .icache_bsize = 32, | 336 | .icache_bsize = 32, |
92 | .dcache_bsize = 32, | 337 | .dcache_bsize = 32, |
93 | .cpu_setup = __setup_cpu_603 | 338 | .cpu_setup = __setup_cpu_603 |
@@ -97,7 +342,7 @@ struct cpu_spec cpu_specs[] = { | |||
97 | .pvr_value = 0x00040000, | 342 | .pvr_value = 0x00040000, |
98 | .cpu_name = "604", | 343 | .cpu_name = "604", |
99 | .cpu_features = CPU_FTRS_604, | 344 | .cpu_features = CPU_FTRS_604, |
100 | .cpu_user_features = COMMON_PPC, | 345 | .cpu_user_features = COMMON_USER, |
101 | .icache_bsize = 32, | 346 | .icache_bsize = 32, |
102 | .dcache_bsize = 32, | 347 | .dcache_bsize = 32, |
103 | .num_pmcs = 2, | 348 | .num_pmcs = 2, |
@@ -108,7 +353,7 @@ struct cpu_spec cpu_specs[] = { | |||
108 | .pvr_value = 0x00090000, | 353 | .pvr_value = 0x00090000, |
109 | .cpu_name = "604e", | 354 | .cpu_name = "604e", |
110 | .cpu_features = CPU_FTRS_604, | 355 | .cpu_features = CPU_FTRS_604, |
111 | .cpu_user_features = COMMON_PPC, | 356 | .cpu_user_features = COMMON_USER, |
112 | .icache_bsize = 32, | 357 | .icache_bsize = 32, |
113 | .dcache_bsize = 32, | 358 | .dcache_bsize = 32, |
114 | .num_pmcs = 4, | 359 | .num_pmcs = 4, |
@@ -119,7 +364,7 @@ struct cpu_spec cpu_specs[] = { | |||
119 | .pvr_value = 0x00090000, | 364 | .pvr_value = 0x00090000, |
120 | .cpu_name = "604r", | 365 | .cpu_name = "604r", |
121 | .cpu_features = CPU_FTRS_604, | 366 | .cpu_features = CPU_FTRS_604, |
122 | .cpu_user_features = COMMON_PPC, | 367 | .cpu_user_features = COMMON_USER, |
123 | .icache_bsize = 32, | 368 | .icache_bsize = 32, |
124 | .dcache_bsize = 32, | 369 | .dcache_bsize = 32, |
125 | .num_pmcs = 4, | 370 | .num_pmcs = 4, |
@@ -130,7 +375,7 @@ struct cpu_spec cpu_specs[] = { | |||
130 | .pvr_value = 0x000a0000, | 375 | .pvr_value = 0x000a0000, |
131 | .cpu_name = "604ev", | 376 | .cpu_name = "604ev", |
132 | .cpu_features = CPU_FTRS_604, | 377 | .cpu_features = CPU_FTRS_604, |
133 | .cpu_user_features = COMMON_PPC, | 378 | .cpu_user_features = COMMON_USER, |
134 | .icache_bsize = 32, | 379 | .icache_bsize = 32, |
135 | .dcache_bsize = 32, | 380 | .dcache_bsize = 32, |
136 | .num_pmcs = 4, | 381 | .num_pmcs = 4, |
@@ -141,7 +386,7 @@ struct cpu_spec cpu_specs[] = { | |||
141 | .pvr_value = 0x00084202, | 386 | .pvr_value = 0x00084202, |
142 | .cpu_name = "740/750", | 387 | .cpu_name = "740/750", |
143 | .cpu_features = CPU_FTRS_740_NOTAU, | 388 | .cpu_features = CPU_FTRS_740_NOTAU, |
144 | .cpu_user_features = COMMON_PPC, | 389 | .cpu_user_features = COMMON_USER, |
145 | .icache_bsize = 32, | 390 | .icache_bsize = 32, |
146 | .dcache_bsize = 32, | 391 | .dcache_bsize = 32, |
147 | .num_pmcs = 4, | 392 | .num_pmcs = 4, |
@@ -152,7 +397,7 @@ struct cpu_spec cpu_specs[] = { | |||
152 | .pvr_value = 0x00080100, | 397 | .pvr_value = 0x00080100, |
153 | .cpu_name = "750CX", | 398 | .cpu_name = "750CX", |
154 | .cpu_features = CPU_FTRS_750, | 399 | .cpu_features = CPU_FTRS_750, |
155 | .cpu_user_features = COMMON_PPC, | 400 | .cpu_user_features = COMMON_USER, |
156 | .icache_bsize = 32, | 401 | .icache_bsize = 32, |
157 | .dcache_bsize = 32, | 402 | .dcache_bsize = 32, |
158 | .num_pmcs = 4, | 403 | .num_pmcs = 4, |
@@ -163,7 +408,7 @@ struct cpu_spec cpu_specs[] = { | |||
163 | .pvr_value = 0x00082200, | 408 | .pvr_value = 0x00082200, |
164 | .cpu_name = "750CX", | 409 | .cpu_name = "750CX", |
165 | .cpu_features = CPU_FTRS_750, | 410 | .cpu_features = CPU_FTRS_750, |
166 | .cpu_user_features = COMMON_PPC, | 411 | .cpu_user_features = COMMON_USER, |
167 | .icache_bsize = 32, | 412 | .icache_bsize = 32, |
168 | .dcache_bsize = 32, | 413 | .dcache_bsize = 32, |
169 | .num_pmcs = 4, | 414 | .num_pmcs = 4, |
@@ -174,7 +419,7 @@ struct cpu_spec cpu_specs[] = { | |||
174 | .pvr_value = 0x00082210, | 419 | .pvr_value = 0x00082210, |
175 | .cpu_name = "750CXe", | 420 | .cpu_name = "750CXe", |
176 | .cpu_features = CPU_FTRS_750, | 421 | .cpu_features = CPU_FTRS_750, |
177 | .cpu_user_features = COMMON_PPC, | 422 | .cpu_user_features = COMMON_USER, |
178 | .icache_bsize = 32, | 423 | .icache_bsize = 32, |
179 | .dcache_bsize = 32, | 424 | .dcache_bsize = 32, |
180 | .num_pmcs = 4, | 425 | .num_pmcs = 4, |
@@ -185,7 +430,7 @@ struct cpu_spec cpu_specs[] = { | |||
185 | .pvr_value = 0x00083214, | 430 | .pvr_value = 0x00083214, |
186 | .cpu_name = "750CXe", | 431 | .cpu_name = "750CXe", |
187 | .cpu_features = CPU_FTRS_750, | 432 | .cpu_features = CPU_FTRS_750, |
188 | .cpu_user_features = COMMON_PPC, | 433 | .cpu_user_features = COMMON_USER, |
189 | .icache_bsize = 32, | 434 | .icache_bsize = 32, |
190 | .dcache_bsize = 32, | 435 | .dcache_bsize = 32, |
191 | .num_pmcs = 4, | 436 | .num_pmcs = 4, |
@@ -196,7 +441,7 @@ struct cpu_spec cpu_specs[] = { | |||
196 | .pvr_value = 0x00083000, | 441 | .pvr_value = 0x00083000, |
197 | .cpu_name = "745/755", | 442 | .cpu_name = "745/755", |
198 | .cpu_features = CPU_FTRS_750, | 443 | .cpu_features = CPU_FTRS_750, |
199 | .cpu_user_features = COMMON_PPC, | 444 | .cpu_user_features = COMMON_USER, |
200 | .icache_bsize = 32, | 445 | .icache_bsize = 32, |
201 | .dcache_bsize = 32, | 446 | .dcache_bsize = 32, |
202 | .num_pmcs = 4, | 447 | .num_pmcs = 4, |
@@ -207,7 +452,7 @@ struct cpu_spec cpu_specs[] = { | |||
207 | .pvr_value = 0x70000100, | 452 | .pvr_value = 0x70000100, |
208 | .cpu_name = "750FX", | 453 | .cpu_name = "750FX", |
209 | .cpu_features = CPU_FTRS_750FX1, | 454 | .cpu_features = CPU_FTRS_750FX1, |
210 | .cpu_user_features = COMMON_PPC, | 455 | .cpu_user_features = COMMON_USER, |
211 | .icache_bsize = 32, | 456 | .icache_bsize = 32, |
212 | .dcache_bsize = 32, | 457 | .dcache_bsize = 32, |
213 | .num_pmcs = 4, | 458 | .num_pmcs = 4, |
@@ -218,7 +463,7 @@ struct cpu_spec cpu_specs[] = { | |||
218 | .pvr_value = 0x70000200, | 463 | .pvr_value = 0x70000200, |
219 | .cpu_name = "750FX", | 464 | .cpu_name = "750FX", |
220 | .cpu_features = CPU_FTRS_750FX2, | 465 | .cpu_features = CPU_FTRS_750FX2, |
221 | .cpu_user_features = COMMON_PPC, | 466 | .cpu_user_features = COMMON_USER, |
222 | .icache_bsize = 32, | 467 | .icache_bsize = 32, |
223 | .dcache_bsize = 32, | 468 | .dcache_bsize = 32, |
224 | .num_pmcs = 4, | 469 | .num_pmcs = 4, |
@@ -229,7 +474,7 @@ struct cpu_spec cpu_specs[] = { | |||
229 | .pvr_value = 0x70000000, | 474 | .pvr_value = 0x70000000, |
230 | .cpu_name = "750FX", | 475 | .cpu_name = "750FX", |
231 | .cpu_features = CPU_FTRS_750FX, | 476 | .cpu_features = CPU_FTRS_750FX, |
232 | .cpu_user_features = COMMON_PPC, | 477 | .cpu_user_features = COMMON_USER, |
233 | .icache_bsize = 32, | 478 | .icache_bsize = 32, |
234 | .dcache_bsize = 32, | 479 | .dcache_bsize = 32, |
235 | .num_pmcs = 4, | 480 | .num_pmcs = 4, |
@@ -240,7 +485,7 @@ struct cpu_spec cpu_specs[] = { | |||
240 | .pvr_value = 0x70020000, | 485 | .pvr_value = 0x70020000, |
241 | .cpu_name = "750GX", | 486 | .cpu_name = "750GX", |
242 | .cpu_features = CPU_FTRS_750GX, | 487 | .cpu_features = CPU_FTRS_750GX, |
243 | .cpu_user_features = COMMON_PPC, | 488 | .cpu_user_features = COMMON_USER, |
244 | .icache_bsize = 32, | 489 | .icache_bsize = 32, |
245 | .dcache_bsize = 32, | 490 | .dcache_bsize = 32, |
246 | .num_pmcs = 4, | 491 | .num_pmcs = 4, |
@@ -251,7 +496,7 @@ struct cpu_spec cpu_specs[] = { | |||
251 | .pvr_value = 0x00080000, | 496 | .pvr_value = 0x00080000, |
252 | .cpu_name = "740/750", | 497 | .cpu_name = "740/750", |
253 | .cpu_features = CPU_FTRS_740, | 498 | .cpu_features = CPU_FTRS_740, |
254 | .cpu_user_features = COMMON_PPC, | 499 | .cpu_user_features = COMMON_USER, |
255 | .icache_bsize = 32, | 500 | .icache_bsize = 32, |
256 | .dcache_bsize = 32, | 501 | .dcache_bsize = 32, |
257 | .num_pmcs = 4, | 502 | .num_pmcs = 4, |
@@ -262,7 +507,7 @@ struct cpu_spec cpu_specs[] = { | |||
262 | .pvr_value = 0x000c1101, | 507 | .pvr_value = 0x000c1101, |
263 | .cpu_name = "7400 (1.1)", | 508 | .cpu_name = "7400 (1.1)", |
264 | .cpu_features = CPU_FTRS_7400_NOTAU, | 509 | .cpu_features = CPU_FTRS_7400_NOTAU, |
265 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 510 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
266 | .icache_bsize = 32, | 511 | .icache_bsize = 32, |
267 | .dcache_bsize = 32, | 512 | .dcache_bsize = 32, |
268 | .num_pmcs = 4, | 513 | .num_pmcs = 4, |
@@ -273,7 +518,7 @@ struct cpu_spec cpu_specs[] = { | |||
273 | .pvr_value = 0x000c0000, | 518 | .pvr_value = 0x000c0000, |
274 | .cpu_name = "7400", | 519 | .cpu_name = "7400", |
275 | .cpu_features = CPU_FTRS_7400, | 520 | .cpu_features = CPU_FTRS_7400, |
276 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 521 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
277 | .icache_bsize = 32, | 522 | .icache_bsize = 32, |
278 | .dcache_bsize = 32, | 523 | .dcache_bsize = 32, |
279 | .num_pmcs = 4, | 524 | .num_pmcs = 4, |
@@ -284,7 +529,7 @@ struct cpu_spec cpu_specs[] = { | |||
284 | .pvr_value = 0x800c0000, | 529 | .pvr_value = 0x800c0000, |
285 | .cpu_name = "7410", | 530 | .cpu_name = "7410", |
286 | .cpu_features = CPU_FTRS_7400, | 531 | .cpu_features = CPU_FTRS_7400, |
287 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 532 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
288 | .icache_bsize = 32, | 533 | .icache_bsize = 32, |
289 | .dcache_bsize = 32, | 534 | .dcache_bsize = 32, |
290 | .num_pmcs = 4, | 535 | .num_pmcs = 4, |
@@ -295,7 +540,7 @@ struct cpu_spec cpu_specs[] = { | |||
295 | .pvr_value = 0x80000200, | 540 | .pvr_value = 0x80000200, |
296 | .cpu_name = "7450", | 541 | .cpu_name = "7450", |
297 | .cpu_features = CPU_FTRS_7450_20, | 542 | .cpu_features = CPU_FTRS_7450_20, |
298 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 543 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
299 | .icache_bsize = 32, | 544 | .icache_bsize = 32, |
300 | .dcache_bsize = 32, | 545 | .dcache_bsize = 32, |
301 | .num_pmcs = 6, | 546 | .num_pmcs = 6, |
@@ -306,7 +551,7 @@ struct cpu_spec cpu_specs[] = { | |||
306 | .pvr_value = 0x80000201, | 551 | .pvr_value = 0x80000201, |
307 | .cpu_name = "7450", | 552 | .cpu_name = "7450", |
308 | .cpu_features = CPU_FTRS_7450_21, | 553 | .cpu_features = CPU_FTRS_7450_21, |
309 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 554 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
310 | .icache_bsize = 32, | 555 | .icache_bsize = 32, |
311 | .dcache_bsize = 32, | 556 | .dcache_bsize = 32, |
312 | .num_pmcs = 6, | 557 | .num_pmcs = 6, |
@@ -317,7 +562,7 @@ struct cpu_spec cpu_specs[] = { | |||
317 | .pvr_value = 0x80000000, | 562 | .pvr_value = 0x80000000, |
318 | .cpu_name = "7450", | 563 | .cpu_name = "7450", |
319 | .cpu_features = CPU_FTRS_7450_23, | 564 | .cpu_features = CPU_FTRS_7450_23, |
320 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 565 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
321 | .icache_bsize = 32, | 566 | .icache_bsize = 32, |
322 | .dcache_bsize = 32, | 567 | .dcache_bsize = 32, |
323 | .num_pmcs = 6, | 568 | .num_pmcs = 6, |
@@ -328,7 +573,7 @@ struct cpu_spec cpu_specs[] = { | |||
328 | .pvr_value = 0x80010100, | 573 | .pvr_value = 0x80010100, |
329 | .cpu_name = "7455", | 574 | .cpu_name = "7455", |
330 | .cpu_features = CPU_FTRS_7455_1, | 575 | .cpu_features = CPU_FTRS_7455_1, |
331 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 576 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
332 | .icache_bsize = 32, | 577 | .icache_bsize = 32, |
333 | .dcache_bsize = 32, | 578 | .dcache_bsize = 32, |
334 | .num_pmcs = 6, | 579 | .num_pmcs = 6, |
@@ -339,7 +584,7 @@ struct cpu_spec cpu_specs[] = { | |||
339 | .pvr_value = 0x80010200, | 584 | .pvr_value = 0x80010200, |
340 | .cpu_name = "7455", | 585 | .cpu_name = "7455", |
341 | .cpu_features = CPU_FTRS_7455_20, | 586 | .cpu_features = CPU_FTRS_7455_20, |
342 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 587 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
343 | .icache_bsize = 32, | 588 | .icache_bsize = 32, |
344 | .dcache_bsize = 32, | 589 | .dcache_bsize = 32, |
345 | .num_pmcs = 6, | 590 | .num_pmcs = 6, |
@@ -350,7 +595,7 @@ struct cpu_spec cpu_specs[] = { | |||
350 | .pvr_value = 0x80010000, | 595 | .pvr_value = 0x80010000, |
351 | .cpu_name = "7455", | 596 | .cpu_name = "7455", |
352 | .cpu_features = CPU_FTRS_7455, | 597 | .cpu_features = CPU_FTRS_7455, |
353 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 598 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
354 | .icache_bsize = 32, | 599 | .icache_bsize = 32, |
355 | .dcache_bsize = 32, | 600 | .dcache_bsize = 32, |
356 | .num_pmcs = 6, | 601 | .num_pmcs = 6, |
@@ -361,7 +606,7 @@ struct cpu_spec cpu_specs[] = { | |||
361 | .pvr_value = 0x80020100, | 606 | .pvr_value = 0x80020100, |
362 | .cpu_name = "7447/7457", | 607 | .cpu_name = "7447/7457", |
363 | .cpu_features = CPU_FTRS_7447_10, | 608 | .cpu_features = CPU_FTRS_7447_10, |
364 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 609 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
365 | .icache_bsize = 32, | 610 | .icache_bsize = 32, |
366 | .dcache_bsize = 32, | 611 | .dcache_bsize = 32, |
367 | .num_pmcs = 6, | 612 | .num_pmcs = 6, |
@@ -372,7 +617,7 @@ struct cpu_spec cpu_specs[] = { | |||
372 | .pvr_value = 0x80020101, | 617 | .pvr_value = 0x80020101, |
373 | .cpu_name = "7447/7457", | 618 | .cpu_name = "7447/7457", |
374 | .cpu_features = CPU_FTRS_7447_10, | 619 | .cpu_features = CPU_FTRS_7447_10, |
375 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 620 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
376 | .icache_bsize = 32, | 621 | .icache_bsize = 32, |
377 | .dcache_bsize = 32, | 622 | .dcache_bsize = 32, |
378 | .num_pmcs = 6, | 623 | .num_pmcs = 6, |
@@ -383,7 +628,7 @@ struct cpu_spec cpu_specs[] = { | |||
383 | .pvr_value = 0x80020000, | 628 | .pvr_value = 0x80020000, |
384 | .cpu_name = "7447/7457", | 629 | .cpu_name = "7447/7457", |
385 | .cpu_features = CPU_FTRS_7447, | 630 | .cpu_features = CPU_FTRS_7447, |
386 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 631 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
387 | .icache_bsize = 32, | 632 | .icache_bsize = 32, |
388 | .dcache_bsize = 32, | 633 | .dcache_bsize = 32, |
389 | .num_pmcs = 6, | 634 | .num_pmcs = 6, |
@@ -394,7 +639,7 @@ struct cpu_spec cpu_specs[] = { | |||
394 | .pvr_value = 0x80030000, | 639 | .pvr_value = 0x80030000, |
395 | .cpu_name = "7447A", | 640 | .cpu_name = "7447A", |
396 | .cpu_features = CPU_FTRS_7447A, | 641 | .cpu_features = CPU_FTRS_7447A, |
397 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 642 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
398 | .icache_bsize = 32, | 643 | .icache_bsize = 32, |
399 | .dcache_bsize = 32, | 644 | .dcache_bsize = 32, |
400 | .num_pmcs = 6, | 645 | .num_pmcs = 6, |
@@ -405,7 +650,7 @@ struct cpu_spec cpu_specs[] = { | |||
405 | .pvr_value = 0x80040000, | 650 | .pvr_value = 0x80040000, |
406 | .cpu_name = "7448", | 651 | .cpu_name = "7448", |
407 | .cpu_features = CPU_FTRS_7447A, | 652 | .cpu_features = CPU_FTRS_7447A, |
408 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_HAS_ALTIVEC_COMP, | 653 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, |
409 | .icache_bsize = 32, | 654 | .icache_bsize = 32, |
410 | .dcache_bsize = 32, | 655 | .dcache_bsize = 32, |
411 | .num_pmcs = 6, | 656 | .num_pmcs = 6, |
@@ -416,7 +661,7 @@ struct cpu_spec cpu_specs[] = { | |||
416 | .pvr_value = 0x00810000, | 661 | .pvr_value = 0x00810000, |
417 | .cpu_name = "82xx", | 662 | .cpu_name = "82xx", |
418 | .cpu_features = CPU_FTRS_82XX, | 663 | .cpu_features = CPU_FTRS_82XX, |
419 | .cpu_user_features = COMMON_PPC, | 664 | .cpu_user_features = COMMON_USER, |
420 | .icache_bsize = 32, | 665 | .icache_bsize = 32, |
421 | .dcache_bsize = 32, | 666 | .dcache_bsize = 32, |
422 | .cpu_setup = __setup_cpu_603 | 667 | .cpu_setup = __setup_cpu_603 |
@@ -426,7 +671,7 @@ struct cpu_spec cpu_specs[] = { | |||
426 | .pvr_value = 0x00820000, | 671 | .pvr_value = 0x00820000, |
427 | .cpu_name = "G2_LE", | 672 | .cpu_name = "G2_LE", |
428 | .cpu_features = CPU_FTRS_G2_LE, | 673 | .cpu_features = CPU_FTRS_G2_LE, |
429 | .cpu_user_features = COMMON_PPC, | 674 | .cpu_user_features = COMMON_USER, |
430 | .icache_bsize = 32, | 675 | .icache_bsize = 32, |
431 | .dcache_bsize = 32, | 676 | .dcache_bsize = 32, |
432 | .cpu_setup = __setup_cpu_603 | 677 | .cpu_setup = __setup_cpu_603 |
@@ -436,7 +681,7 @@ struct cpu_spec cpu_specs[] = { | |||
436 | .pvr_value = 0x00830000, | 681 | .pvr_value = 0x00830000, |
437 | .cpu_name = "e300", | 682 | .cpu_name = "e300", |
438 | .cpu_features = CPU_FTRS_E300, | 683 | .cpu_features = CPU_FTRS_E300, |
439 | .cpu_user_features = COMMON_PPC, | 684 | .cpu_user_features = COMMON_USER, |
440 | .icache_bsize = 32, | 685 | .icache_bsize = 32, |
441 | .dcache_bsize = 32, | 686 | .dcache_bsize = 32, |
442 | .cpu_setup = __setup_cpu_603 | 687 | .cpu_setup = __setup_cpu_603 |
@@ -446,66 +691,11 @@ struct cpu_spec cpu_specs[] = { | |||
446 | .pvr_value = 0x00000000, | 691 | .pvr_value = 0x00000000, |
447 | .cpu_name = "(generic PPC)", | 692 | .cpu_name = "(generic PPC)", |
448 | .cpu_features = CPU_FTRS_CLASSIC32, | 693 | .cpu_features = CPU_FTRS_CLASSIC32, |
449 | .cpu_user_features = COMMON_PPC, | 694 | .cpu_user_features = COMMON_USER, |
450 | .icache_bsize = 32, | 695 | .icache_bsize = 32, |
451 | .dcache_bsize = 32, | 696 | .dcache_bsize = 32, |
452 | }, | 697 | }, |
453 | #endif /* CLASSIC_PPC */ | 698 | #endif /* CLASSIC_PPC */ |
454 | #ifdef CONFIG_PPC64BRIDGE | ||
455 | { /* Power3 */ | ||
456 | .pvr_mask = 0xffff0000, | ||
457 | .pvr_value = 0x00400000, | ||
458 | .cpu_name = "Power3 (630)", | ||
459 | .cpu_features = CPU_FTRS_POWER3_32, | ||
460 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_64, | ||
461 | .icache_bsize = 128, | ||
462 | .dcache_bsize = 128, | ||
463 | .num_pmcs = 8, | ||
464 | }, | ||
465 | { /* Power3+ */ | ||
466 | .pvr_mask = 0xffff0000, | ||
467 | .pvr_value = 0x00410000, | ||
468 | .cpu_name = "Power3 (630+)", | ||
469 | .cpu_features = CPU_FTRS_POWER3_32, | ||
470 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_64, | ||
471 | .icache_bsize = 128, | ||
472 | .dcache_bsize = 128, | ||
473 | .num_pmcs = 8, | ||
474 | }, | ||
475 | { /* I-star */ | ||
476 | .pvr_mask = 0xffff0000, | ||
477 | .pvr_value = 0x00360000, | ||
478 | .cpu_name = "I-star", | ||
479 | .cpu_features = CPU_FTRS_POWER3_32, | ||
480 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_64, | ||
481 | .icache_bsize = 128, | ||
482 | .dcache_bsize = 128, | ||
483 | .num_pmcs = 8, | ||
484 | }, | ||
485 | { /* S-star */ | ||
486 | .pvr_mask = 0xffff0000, | ||
487 | .pvr_value = 0x00370000, | ||
488 | .cpu_name = "S-star", | ||
489 | .cpu_features = CPU_FTRS_POWER3_32, | ||
490 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_64, | ||
491 | .icache_bsize = 128, | ||
492 | .dcache_bsize = 128, | ||
493 | .num_pmcs = 8, | ||
494 | }, | ||
495 | #endif /* CONFIG_PPC64BRIDGE */ | ||
496 | #ifdef CONFIG_POWER4 | ||
497 | { /* PPC970FX */ | ||
498 | .pvr_mask = 0xffff0000, | ||
499 | .pvr_value = 0x003c0000, | ||
500 | .cpu_name = "PPC970FX", | ||
501 | .cpu_features = CPU_FTRS_970_32, | ||
502 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_64 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
503 | .icache_bsize = 128, | ||
504 | .dcache_bsize = 128, | ||
505 | .num_pmcs = 8, | ||
506 | .cpu_setup = __setup_cpu_ppc970 | ||
507 | }, | ||
508 | #endif /* CONFIG_POWER4 */ | ||
509 | #ifdef CONFIG_8xx | 699 | #ifdef CONFIG_8xx |
510 | { /* 8xx */ | 700 | { /* 8xx */ |
511 | .pvr_mask = 0xffff0000, | 701 | .pvr_mask = 0xffff0000, |
@@ -664,7 +854,7 @@ struct cpu_spec cpu_specs[] = { | |||
664 | .pvr_value = 0x40000850, | 854 | .pvr_value = 0x40000850, |
665 | .cpu_name = "440EP Rev. A", | 855 | .cpu_name = "440EP Rev. A", |
666 | .cpu_features = CPU_FTRS_44X, | 856 | .cpu_features = CPU_FTRS_44X, |
667 | .cpu_user_features = COMMON_PPC, /* 440EP has an FPU */ | 857 | .cpu_user_features = COMMON_USER, /* 440EP has an FPU */ |
668 | .icache_bsize = 32, | 858 | .icache_bsize = 32, |
669 | .dcache_bsize = 32, | 859 | .dcache_bsize = 32, |
670 | }, | 860 | }, |
@@ -673,11 +863,11 @@ struct cpu_spec cpu_specs[] = { | |||
673 | .pvr_value = 0x400008d3, | 863 | .pvr_value = 0x400008d3, |
674 | .cpu_name = "440EP Rev. B", | 864 | .cpu_name = "440EP Rev. B", |
675 | .cpu_features = CPU_FTRS_44X, | 865 | .cpu_features = CPU_FTRS_44X, |
676 | .cpu_user_features = COMMON_PPC, /* 440EP has an FPU */ | 866 | .cpu_user_features = COMMON_USER, /* 440EP has an FPU */ |
677 | .icache_bsize = 32, | 867 | .icache_bsize = 32, |
678 | .dcache_bsize = 32, | 868 | .dcache_bsize = 32, |
679 | }, | 869 | }, |
680 | { /* 440GP Rev. B */ | 870 | { /* 440GP Rev. B */ |
681 | .pvr_mask = 0xf0000fff, | 871 | .pvr_mask = 0xf0000fff, |
682 | .pvr_value = 0x40000440, | 872 | .pvr_value = 0x40000440, |
683 | .cpu_name = "440GP Rev. B", | 873 | .cpu_name = "440GP Rev. B", |
@@ -686,7 +876,7 @@ struct cpu_spec cpu_specs[] = { | |||
686 | .icache_bsize = 32, | 876 | .icache_bsize = 32, |
687 | .dcache_bsize = 32, | 877 | .dcache_bsize = 32, |
688 | }, | 878 | }, |
689 | { /* 440GP Rev. C */ | 879 | { /* 440GP Rev. C */ |
690 | .pvr_mask = 0xf0000fff, | 880 | .pvr_mask = 0xf0000fff, |
691 | .pvr_value = 0x40000481, | 881 | .pvr_value = 0x40000481, |
692 | .cpu_name = "440GP Rev. C", | 882 | .cpu_name = "440GP Rev. C", |
@@ -742,7 +932,7 @@ struct cpu_spec cpu_specs[] = { | |||
742 | }, | 932 | }, |
743 | #endif /* CONFIG_44x */ | 933 | #endif /* CONFIG_44x */ |
744 | #ifdef CONFIG_FSL_BOOKE | 934 | #ifdef CONFIG_FSL_BOOKE |
745 | { /* e200z5 */ | 935 | { /* e200z5 */ |
746 | .pvr_mask = 0xfff00000, | 936 | .pvr_mask = 0xfff00000, |
747 | .pvr_value = 0x81000000, | 937 | .pvr_value = 0x81000000, |
748 | .cpu_name = "e200z5", | 938 | .cpu_name = "e200z5", |
@@ -753,7 +943,7 @@ struct cpu_spec cpu_specs[] = { | |||
753 | PPC_FEATURE_UNIFIED_CACHE, | 943 | PPC_FEATURE_UNIFIED_CACHE, |
754 | .dcache_bsize = 32, | 944 | .dcache_bsize = 32, |
755 | }, | 945 | }, |
756 | { /* e200z6 */ | 946 | { /* e200z6 */ |
757 | .pvr_mask = 0xfff00000, | 947 | .pvr_mask = 0xfff00000, |
758 | .pvr_value = 0x81100000, | 948 | .pvr_value = 0x81100000, |
759 | .cpu_name = "e200z6", | 949 | .cpu_name = "e200z6", |
@@ -765,7 +955,7 @@ struct cpu_spec cpu_specs[] = { | |||
765 | PPC_FEATURE_UNIFIED_CACHE, | 955 | PPC_FEATURE_UNIFIED_CACHE, |
766 | .dcache_bsize = 32, | 956 | .dcache_bsize = 32, |
767 | }, | 957 | }, |
768 | { /* e500 */ | 958 | { /* e500 */ |
769 | .pvr_mask = 0xffff0000, | 959 | .pvr_mask = 0xffff0000, |
770 | .pvr_value = 0x80200000, | 960 | .pvr_value = 0x80200000, |
771 | .cpu_name = "e500", | 961 | .cpu_name = "e500", |
@@ -778,7 +968,7 @@ struct cpu_spec cpu_specs[] = { | |||
778 | .dcache_bsize = 32, | 968 | .dcache_bsize = 32, |
779 | .num_pmcs = 4, | 969 | .num_pmcs = 4, |
780 | }, | 970 | }, |
781 | { /* e500v2 */ | 971 | { /* e500v2 */ |
782 | .pvr_mask = 0xffff0000, | 972 | .pvr_mask = 0xffff0000, |
783 | .pvr_value = 0x80210000, | 973 | .pvr_value = 0x80210000, |
784 | .cpu_name = "e500v2", | 974 | .cpu_name = "e500v2", |
@@ -803,4 +993,5 @@ struct cpu_spec cpu_specs[] = { | |||
803 | .dcache_bsize = 32, | 993 | .dcache_bsize = 32, |
804 | } | 994 | } |
805 | #endif /* !CLASSIC_PPC */ | 995 | #endif /* !CLASSIC_PPC */ |
996 | #endif /* CONFIG_PPC32 */ | ||
806 | }; | 997 | }; |
diff --git a/arch/ppc/kernel/Makefile b/arch/ppc/kernel/Makefile index 59b6b62d1120..0cba463adf9a 100644 --- a/arch/ppc/kernel/Makefile +++ b/arch/ppc/kernel/Makefile | |||
@@ -15,7 +15,7 @@ extra-y += vmlinux.lds | |||
15 | obj-y := entry.o traps.o irq.o idle.o time.o misc.o \ | 15 | obj-y := entry.o traps.o irq.o idle.o time.o misc.o \ |
16 | process.o signal.o ptrace.o align.o \ | 16 | process.o signal.o ptrace.o align.o \ |
17 | syscalls.o setup.o \ | 17 | syscalls.o setup.o \ |
18 | cputable.o ppc_htab.o perfmon.o | 18 | ppc_htab.o perfmon.o |
19 | obj-$(CONFIG_6xx) += l2cr.o cpu_setup_6xx.o | 19 | obj-$(CONFIG_6xx) += l2cr.o cpu_setup_6xx.o |
20 | obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o | 20 | obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o |
21 | obj-$(CONFIG_POWER4) += cpu_setup_power4.o | 21 | obj-$(CONFIG_POWER4) += cpu_setup_power4.o |
@@ -39,7 +39,7 @@ endif | |||
39 | else | 39 | else |
40 | obj-y := irq.o idle.o time.o \ | 40 | obj-y := irq.o idle.o time.o \ |
41 | signal.o ptrace.o align.o \ | 41 | signal.o ptrace.o align.o \ |
42 | syscalls.o cputable.o perfmon.o | 42 | syscalls.o perfmon.o |
43 | obj-$(CONFIG_6xx) += l2cr.o cpu_setup_6xx.o | 43 | obj-$(CONFIG_6xx) += l2cr.o cpu_setup_6xx.o |
44 | obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o | 44 | obj-$(CONFIG_SOFTWARE_SUSPEND) += swsusp.o |
45 | obj-$(CONFIG_MODULES) += module.o | 45 | obj-$(CONFIG_MODULES) += module.o |
diff --git a/arch/ppc64/kernel/Makefile b/arch/ppc64/kernel/Makefile index 5569ea7e6830..834aef034b77 100644 --- a/arch/ppc64/kernel/Makefile +++ b/arch/ppc64/kernel/Makefile | |||
@@ -7,13 +7,17 @@ ifneq ($(CONFIG_PPC_MERGE),y) | |||
7 | EXTRA_CFLAGS += -mno-minimal-toc | 7 | EXTRA_CFLAGS += -mno-minimal-toc |
8 | extra-y := head.o vmlinux.lds | 8 | extra-y := head.o vmlinux.lds |
9 | 9 | ||
10 | obj-y := setup.o entry.o irq.o idle.o dma.o \ | 10 | obj-y := setup.o entry.o misc.o prom.o |
11 | time.o signal.o syscalls.o misc.o ptrace.o \ | 11 | |
12 | endif | ||
13 | |||
14 | obj-y += irq.o idle.o dma.o \ | ||
15 | time.o signal.o syscalls.o ptrace.o \ | ||
12 | align.o bitops.o pacaData.o \ | 16 | align.o bitops.o pacaData.o \ |
13 | udbg.o binfmt_elf32.o sys_ppc32.o ioctl32.o \ | 17 | udbg.o binfmt_elf32.o sys_ppc32.o ioctl32.o \ |
14 | ptrace32.o signal32.o rtc.o \ | 18 | ptrace32.o signal32.o rtc.o \ |
15 | cputable.o cpu_setup_power4.o \ | 19 | cpu_setup_power4.o \ |
16 | iommu.o sysfs.o vdso.o pmc.o firmware.o prom.o | 20 | iommu.o sysfs.o vdso.o pmc.o firmware.o |
17 | obj-y += vdso32/ vdso64/ | 21 | obj-y += vdso32/ vdso64/ |
18 | 22 | ||
19 | obj-$(CONFIG_PPC_OF) += of_device.o | 23 | obj-$(CONFIG_PPC_OF) += of_device.o |
@@ -22,7 +26,10 @@ pci-obj-$(CONFIG_PPC_MULTIPLATFORM) += pci_dn.o pci_direct_iommu.o | |||
22 | 26 | ||
23 | obj-$(CONFIG_PCI) += pci.o pci_iommu.o iomap.o $(pci-obj-y) | 27 | obj-$(CONFIG_PCI) += pci.o pci_iommu.o iomap.o $(pci-obj-y) |
24 | 28 | ||
25 | obj-$(CONFIG_PPC_MULTIPLATFORM) += nvram.o i8259.o prom_init.o | 29 | obj-$(CONFIG_PPC_MULTIPLATFORM) += nvram.o i8259.o |
30 | ifneq ($(CONFIG_PPC_MERGE),y) | ||
31 | obj-$(CONFIG_PPC_MULTIPLATFORM) += prom_init.o | ||
32 | endif | ||
26 | 33 | ||
27 | obj-$(CONFIG_PPC_PSERIES) += rtasd.o ras.o udbg_16550.o | 34 | obj-$(CONFIG_PPC_PSERIES) += rtasd.o ras.o udbg_16550.o |
28 | 35 | ||
@@ -34,22 +41,29 @@ obj-$(CONFIG_EEH) += eeh.o | |||
34 | obj-$(CONFIG_PROC_FS) += proc_ppc64.o | 41 | obj-$(CONFIG_PROC_FS) += proc_ppc64.o |
35 | obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o | 42 | obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o |
36 | obj-$(CONFIG_SMP) += smp.o | 43 | obj-$(CONFIG_SMP) += smp.o |
37 | obj-$(CONFIG_MODULES) += module.o ppc_ksyms.o | 44 | obj-$(CONFIG_MODULES) += module.o |
45 | ifneq ($(CONFIG_PPC_MERGE),y) | ||
46 | obj-$(CONFIG_MODULES) += ppc_ksyms.o | ||
47 | endif | ||
38 | obj-$(CONFIG_PPC_RTAS) += rtas.o rtas_pci.o | 48 | obj-$(CONFIG_PPC_RTAS) += rtas.o rtas_pci.o |
39 | obj-$(CONFIG_RTAS_PROC) += rtas-proc.o | 49 | obj-$(CONFIG_RTAS_PROC) += rtas-proc.o |
40 | obj-$(CONFIG_SCANLOG) += scanlog.o | 50 | obj-$(CONFIG_SCANLOG) += scanlog.o |
41 | obj-$(CONFIG_LPARCFG) += lparcfg.o | 51 | obj-$(CONFIG_LPARCFG) += lparcfg.o |
42 | obj-$(CONFIG_HVC_CONSOLE) += hvconsole.o | 52 | obj-$(CONFIG_HVC_CONSOLE) += hvconsole.o |
53 | ifneq ($(CONFIG_PPC_MERGE),y) | ||
43 | obj-$(CONFIG_BOOTX_TEXT) += btext.o | 54 | obj-$(CONFIG_BOOTX_TEXT) += btext.o |
55 | endif | ||
44 | obj-$(CONFIG_HVCS) += hvcserver.o | 56 | obj-$(CONFIG_HVCS) += hvcserver.o |
45 | 57 | ||
46 | obj-$(CONFIG_IBMVIO) += vio.o $(vio-obj-y) | 58 | obj-$(CONFIG_IBMVIO) += vio.o |
47 | obj-$(CONFIG_XICS) += xics.o | 59 | obj-$(CONFIG_XICS) += xics.o |
60 | ifneq ($(CONFIG_PPC_MERGE),y) | ||
48 | obj-$(CONFIG_MPIC) += mpic.o | 61 | obj-$(CONFIG_MPIC) += mpic.o |
49 | 62 | ||
50 | obj-$(CONFIG_PPC_PMAC) += pmac_setup.o pmac_feature.o pmac_pci.o \ | 63 | obj-$(CONFIG_PPC_PMAC) += pmac_setup.o pmac_feature.o pmac_pci.o \ |
51 | pmac_time.o pmac_nvram.o pmac_low_i2c.o \ | 64 | pmac_time.o pmac_nvram.o pmac_low_i2c.o \ |
52 | udbg_scc.o | 65 | udbg_scc.o |
66 | endif | ||
53 | 67 | ||
54 | obj-$(CONFIG_PPC_MAPLE) += maple_setup.o maple_pci.o maple_time.o \ | 68 | obj-$(CONFIG_PPC_MAPLE) += maple_setup.o maple_pci.o maple_time.o \ |
55 | udbg_16550.o | 69 | udbg_16550.o |
@@ -57,7 +71,9 @@ obj-$(CONFIG_PPC_MAPLE) += maple_setup.o maple_pci.o maple_time.o \ | |||
57 | obj-$(CONFIG_U3_DART) += u3_iommu.o | 71 | obj-$(CONFIG_U3_DART) += u3_iommu.o |
58 | 72 | ||
59 | ifdef CONFIG_SMP | 73 | ifdef CONFIG_SMP |
74 | ifneq ($(CONFIG_PPC_MERGE),y) | ||
60 | obj-$(CONFIG_PPC_PMAC) += pmac_smp.o smp-tbsync.o | 75 | obj-$(CONFIG_PPC_PMAC) += pmac_smp.o smp-tbsync.o |
76 | endif | ||
61 | obj-$(CONFIG_PPC_MAPLE) += smp-tbsync.o | 77 | obj-$(CONFIG_PPC_MAPLE) += smp-tbsync.o |
62 | endif | 78 | endif |
63 | 79 | ||
@@ -65,62 +81,9 @@ obj-$(CONFIG_KPROBES) += kprobes.o | |||
65 | 81 | ||
66 | CFLAGS_ioctl32.o += -Ifs/ | 82 | CFLAGS_ioctl32.o += -Ifs/ |
67 | 83 | ||
84 | ifneq ($(CONFIG_PPC_MERGE),y) | ||
68 | ifeq ($(CONFIG_PPC_ISERIES),y) | 85 | ifeq ($(CONFIG_PPC_ISERIES),y) |
69 | arch/ppc64/kernel/head.o: arch/powerpc/kernel/lparmap.s | 86 | arch/ppc64/kernel/head.o: arch/powerpc/kernel/lparmap.s |
70 | AFLAGS_head.o += -Iarch/powerpc/kernel | 87 | AFLAGS_head.o += -Iarch/powerpc/kernel |
71 | endif | 88 | endif |
72 | |||
73 | else | ||
74 | |||
75 | # Things still needed from here by the merged ppc code | ||
76 | |||
77 | obj-y := irq.o idle.o dma.o \ | ||
78 | time.o signal.o syscalls.o ptrace.o \ | ||
79 | align.o bitops.o pacaData.o \ | ||
80 | udbg.o binfmt_elf32.o sys_ppc32.o ioctl32.o \ | ||
81 | ptrace32.o signal32.o rtc.o \ | ||
82 | cputable.o cpu_setup_power4.o \ | ||
83 | iommu.o sysfs.o vdso.o pmc.o firmware.o | ||
84 | obj-y += vdso32/ vdso64/ | ||
85 | |||
86 | pci-obj-$(CONFIG_PPC_MULTIPLATFORM) += pci_dn.o pci_direct_iommu.o | ||
87 | |||
88 | obj-$(CONFIG_PCI) += pci.o pci_iommu.o iomap.o $(pci-obj-y) | ||
89 | |||
90 | obj-$(CONFIG_PPC_MULTIPLATFORM) += nvram.o i8259.o | ||
91 | |||
92 | obj-$(CONFIG_PPC_PSERIES) += rtasd.o ras.o udbg_16550.o | ||
93 | |||
94 | obj-$(CONFIG_PPC_BPA) += bpa_setup.o bpa_iommu.o bpa_nvram.o \ | ||
95 | bpa_iic.o spider-pic.o | ||
96 | |||
97 | obj-$(CONFIG_KEXEC) += machine_kexec.o | ||
98 | obj-$(CONFIG_EEH) += eeh.o | ||
99 | obj-$(CONFIG_PROC_FS) += proc_ppc64.o | ||
100 | obj-$(CONFIG_RTAS_FLASH) += rtas_flash.o | ||
101 | obj-$(CONFIG_SMP) += smp.o | ||
102 | obj-$(CONFIG_MODULES) += module.o | ||
103 | obj-$(CONFIG_PPC_RTAS) += rtas.o rtas_pci.o | ||
104 | obj-$(CONFIG_RTAS_PROC) += rtas-proc.o | ||
105 | obj-$(CONFIG_SCANLOG) += scanlog.o | ||
106 | obj-$(CONFIG_LPARCFG) += lparcfg.o | ||
107 | obj-$(CONFIG_HVC_CONSOLE) += hvconsole.o | ||
108 | obj-$(CONFIG_HVCS) += hvcserver.o | ||
109 | |||
110 | obj-$(CONFIG_IBMVIO) += vio.o | ||
111 | obj-$(CONFIG_XICS) += xics.o | ||
112 | |||
113 | obj-$(CONFIG_PPC_MAPLE) += maple_setup.o maple_pci.o maple_time.o \ | ||
114 | udbg_16550.o | ||
115 | |||
116 | obj-$(CONFIG_U3_DART) += u3_iommu.o | ||
117 | |||
118 | ifdef CONFIG_SMP | ||
119 | obj-$(CONFIG_PPC_MAPLE) += smp-tbsync.o | ||
120 | endif | ||
121 | |||
122 | obj-$(CONFIG_KPROBES) += kprobes.o | ||
123 | |||
124 | CFLAGS_ioctl32.o += -Ifs/ | ||
125 | |||
126 | endif | 89 | endif |
diff --git a/arch/ppc64/kernel/cputable.c b/arch/ppc64/kernel/cputable.c deleted file mode 100644 index 5134c53d536d..000000000000 --- a/arch/ppc64/kernel/cputable.c +++ /dev/null | |||
@@ -1,260 +0,0 @@ | |||
1 | /* | ||
2 | * arch/ppc64/kernel/cputable.c | ||
3 | * | ||
4 | * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org) | ||
5 | * | ||
6 | * Modifications for ppc64: | ||
7 | * Copyright (C) 2003 Dave Engebretsen <engebret@us.ibm.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License | ||
11 | * as published by the Free Software Foundation; either version | ||
12 | * 2 of the License, or (at your option) any later version. | ||
13 | */ | ||
14 | |||
15 | #include <linux/config.h> | ||
16 | #include <linux/string.h> | ||
17 | #include <linux/sched.h> | ||
18 | #include <linux/threads.h> | ||
19 | #include <linux/init.h> | ||
20 | #include <linux/module.h> | ||
21 | |||
22 | #include <asm/oprofile_impl.h> | ||
23 | #include <asm/cputable.h> | ||
24 | |||
25 | struct cpu_spec* cur_cpu_spec = NULL; | ||
26 | EXPORT_SYMBOL(cur_cpu_spec); | ||
27 | |||
28 | /* NOTE: | ||
29 | * Unlike ppc32, ppc64 will only call this once for the boot CPU, it's | ||
30 | * the responsibility of the appropriate CPU save/restore functions to | ||
31 | * eventually copy these settings over. Those save/restore aren't yet | ||
32 | * part of the cputable though. That has to be fixed for both ppc32 | ||
33 | * and ppc64 | ||
34 | */ | ||
35 | extern void __setup_cpu_power3(unsigned long offset, struct cpu_spec* spec); | ||
36 | extern void __setup_cpu_power4(unsigned long offset, struct cpu_spec* spec); | ||
37 | extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec); | ||
38 | extern void __setup_cpu_be(unsigned long offset, struct cpu_spec* spec); | ||
39 | |||
40 | struct cpu_spec cpu_specs[] = { | ||
41 | { /* Power3 */ | ||
42 | .pvr_mask = 0xffff0000, | ||
43 | .pvr_value = 0x00400000, | ||
44 | .cpu_name = "POWER3 (630)", | ||
45 | .cpu_features = CPU_FTRS_POWER3, | ||
46 | .cpu_user_features = COMMON_USER_PPC64, | ||
47 | .icache_bsize = 128, | ||
48 | .dcache_bsize = 128, | ||
49 | .num_pmcs = 8, | ||
50 | .cpu_setup = __setup_cpu_power3, | ||
51 | #ifdef CONFIG_OPROFILE | ||
52 | .oprofile_cpu_type = "ppc64/power3", | ||
53 | .oprofile_model = &op_model_rs64, | ||
54 | #endif | ||
55 | }, | ||
56 | { /* Power3+ */ | ||
57 | .pvr_mask = 0xffff0000, | ||
58 | .pvr_value = 0x00410000, | ||
59 | .cpu_name = "POWER3 (630+)", | ||
60 | .cpu_features = CPU_FTRS_POWER3, | ||
61 | .cpu_user_features = COMMON_USER_PPC64, | ||
62 | .icache_bsize = 128, | ||
63 | .dcache_bsize = 128, | ||
64 | .num_pmcs = 8, | ||
65 | .cpu_setup = __setup_cpu_power3, | ||
66 | #ifdef CONFIG_OPROFILE | ||
67 | .oprofile_cpu_type = "ppc64/power3", | ||
68 | .oprofile_model = &op_model_rs64, | ||
69 | #endif | ||
70 | }, | ||
71 | { /* Northstar */ | ||
72 | .pvr_mask = 0xffff0000, | ||
73 | .pvr_value = 0x00330000, | ||
74 | .cpu_name = "RS64-II (northstar)", | ||
75 | .cpu_features = CPU_FTRS_RS64, | ||
76 | .cpu_user_features = COMMON_USER_PPC64, | ||
77 | .icache_bsize = 128, | ||
78 | .dcache_bsize = 128, | ||
79 | .num_pmcs = 8, | ||
80 | .cpu_setup = __setup_cpu_power3, | ||
81 | #ifdef CONFIG_OPROFILE | ||
82 | .oprofile_cpu_type = "ppc64/rs64", | ||
83 | .oprofile_model = &op_model_rs64, | ||
84 | #endif | ||
85 | }, | ||
86 | { /* Pulsar */ | ||
87 | .pvr_mask = 0xffff0000, | ||
88 | .pvr_value = 0x00340000, | ||
89 | .cpu_name = "RS64-III (pulsar)", | ||
90 | .cpu_features = CPU_FTRS_RS64, | ||
91 | .cpu_user_features = COMMON_USER_PPC64, | ||
92 | .icache_bsize = 128, | ||
93 | .dcache_bsize = 128, | ||
94 | .num_pmcs = 8, | ||
95 | .cpu_setup = __setup_cpu_power3, | ||
96 | #ifdef CONFIG_OPROFILE | ||
97 | .oprofile_cpu_type = "ppc64/rs64", | ||
98 | .oprofile_model = &op_model_rs64, | ||
99 | #endif | ||
100 | }, | ||
101 | { /* I-star */ | ||
102 | .pvr_mask = 0xffff0000, | ||
103 | .pvr_value = 0x00360000, | ||
104 | .cpu_name = "RS64-III (icestar)", | ||
105 | .cpu_features = CPU_FTRS_RS64, | ||
106 | .cpu_user_features = COMMON_USER_PPC64, | ||
107 | .icache_bsize = 128, | ||
108 | .dcache_bsize = 128, | ||
109 | .num_pmcs = 8, | ||
110 | .cpu_setup = __setup_cpu_power3, | ||
111 | #ifdef CONFIG_OPROFILE | ||
112 | .oprofile_cpu_type = "ppc64/rs64", | ||
113 | .oprofile_model = &op_model_rs64, | ||
114 | #endif | ||
115 | }, | ||
116 | { /* S-star */ | ||
117 | .pvr_mask = 0xffff0000, | ||
118 | .pvr_value = 0x00370000, | ||
119 | .cpu_name = "RS64-IV (sstar)", | ||
120 | .cpu_features = CPU_FTRS_RS64, | ||
121 | .cpu_user_features = COMMON_USER_PPC64, | ||
122 | .icache_bsize = 128, | ||
123 | .dcache_bsize = 128, | ||
124 | .num_pmcs = 8, | ||
125 | .cpu_setup = __setup_cpu_power3, | ||
126 | #ifdef CONFIG_OPROFILE | ||
127 | .oprofile_cpu_type = "ppc64/rs64", | ||
128 | .oprofile_model = &op_model_rs64, | ||
129 | #endif | ||
130 | }, | ||
131 | { /* Power4 */ | ||
132 | .pvr_mask = 0xffff0000, | ||
133 | .pvr_value = 0x00350000, | ||
134 | .cpu_name = "POWER4 (gp)", | ||
135 | .cpu_features = CPU_FTRS_POWER4, | ||
136 | .cpu_user_features = COMMON_USER_PPC64, | ||
137 | .icache_bsize = 128, | ||
138 | .dcache_bsize = 128, | ||
139 | .num_pmcs = 8, | ||
140 | .cpu_setup = __setup_cpu_power4, | ||
141 | #ifdef CONFIG_OPROFILE | ||
142 | .oprofile_cpu_type = "ppc64/power4", | ||
143 | .oprofile_model = &op_model_rs64, | ||
144 | #endif | ||
145 | }, | ||
146 | { /* Power4+ */ | ||
147 | .pvr_mask = 0xffff0000, | ||
148 | .pvr_value = 0x00380000, | ||
149 | .cpu_name = "POWER4+ (gq)", | ||
150 | .cpu_features = CPU_FTRS_POWER4, | ||
151 | .cpu_user_features = COMMON_USER_PPC64, | ||
152 | .icache_bsize = 128, | ||
153 | .dcache_bsize = 128, | ||
154 | .num_pmcs = 8, | ||
155 | .cpu_setup = __setup_cpu_power4, | ||
156 | #ifdef CONFIG_OPROFILE | ||
157 | .oprofile_cpu_type = "ppc64/power4", | ||
158 | .oprofile_model = &op_model_power4, | ||
159 | #endif | ||
160 | }, | ||
161 | { /* PPC970 */ | ||
162 | .pvr_mask = 0xffff0000, | ||
163 | .pvr_value = 0x00390000, | ||
164 | .cpu_name = "PPC970", | ||
165 | .cpu_features = CPU_FTRS_PPC970, | ||
166 | .cpu_user_features = COMMON_USER_PPC64 | | ||
167 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
168 | .icache_bsize = 128, | ||
169 | .dcache_bsize = 128, | ||
170 | .num_pmcs = 8, | ||
171 | .cpu_setup = __setup_cpu_ppc970, | ||
172 | #ifdef CONFIG_OPROFILE | ||
173 | .oprofile_cpu_type = "ppc64/970", | ||
174 | .oprofile_model = &op_model_power4, | ||
175 | #endif | ||
176 | }, | ||
177 | { /* PPC970FX */ | ||
178 | .pvr_mask = 0xffff0000, | ||
179 | .pvr_value = 0x003c0000, | ||
180 | .cpu_name = "PPC970FX", | ||
181 | .cpu_features = CPU_FTRS_PPC970, | ||
182 | .cpu_user_features = COMMON_USER_PPC64 | | ||
183 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
184 | .icache_bsize = 128, | ||
185 | .dcache_bsize = 128, | ||
186 | .num_pmcs = 8, | ||
187 | .cpu_setup = __setup_cpu_ppc970, | ||
188 | #ifdef CONFIG_OPROFILE | ||
189 | .oprofile_cpu_type = "ppc64/970", | ||
190 | .oprofile_model = &op_model_power4, | ||
191 | #endif | ||
192 | }, | ||
193 | { /* PPC970MP */ | ||
194 | .pvr_mask = 0xffff0000, | ||
195 | .pvr_value = 0x00440000, | ||
196 | .cpu_name = "PPC970MP", | ||
197 | .cpu_features = CPU_FTRS_PPC970, | ||
198 | .cpu_user_features = COMMON_USER_PPC64 | | ||
199 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
200 | .icache_bsize = 128, | ||
201 | .dcache_bsize = 128, | ||
202 | .cpu_setup = __setup_cpu_ppc970, | ||
203 | #ifdef CONFIG_OPROFILE | ||
204 | .oprofile_cpu_type = "ppc64/970", | ||
205 | .oprofile_model = &op_model_power4, | ||
206 | #endif | ||
207 | }, | ||
208 | { /* Power5 */ | ||
209 | .pvr_mask = 0xffff0000, | ||
210 | .pvr_value = 0x003a0000, | ||
211 | .cpu_name = "POWER5 (gr)", | ||
212 | .cpu_features = CPU_FTRS_POWER5, | ||
213 | .cpu_user_features = COMMON_USER_PPC64, | ||
214 | .icache_bsize = 128, | ||
215 | .dcache_bsize = 128, | ||
216 | .num_pmcs = 6, | ||
217 | .cpu_setup = __setup_cpu_power4, | ||
218 | #ifdef CONFIG_OPROFILE | ||
219 | .oprofile_cpu_type = "ppc64/power5", | ||
220 | .oprofile_model = &op_model_power4, | ||
221 | #endif | ||
222 | }, | ||
223 | { /* Power5 */ | ||
224 | .pvr_mask = 0xffff0000, | ||
225 | .pvr_value = 0x003b0000, | ||
226 | .cpu_name = "POWER5 (gs)", | ||
227 | .cpu_features = CPU_FTRS_POWER5, | ||
228 | .cpu_user_features = COMMON_USER_PPC64, | ||
229 | .icache_bsize = 128, | ||
230 | .dcache_bsize = 128, | ||
231 | .num_pmcs = 6, | ||
232 | .cpu_setup = __setup_cpu_power4, | ||
233 | #ifdef CONFIG_OPROFILE | ||
234 | .oprofile_cpu_type = "ppc64/power5", | ||
235 | .oprofile_model = &op_model_power4, | ||
236 | #endif | ||
237 | }, | ||
238 | { /* BE DD1.x */ | ||
239 | .pvr_mask = 0xffff0000, | ||
240 | .pvr_value = 0x00700000, | ||
241 | .cpu_name = "Cell Broadband Engine", | ||
242 | .cpu_features = CPU_FTRS_CELL, | ||
243 | .cpu_user_features = COMMON_USER_PPC64 | | ||
244 | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
245 | .icache_bsize = 128, | ||
246 | .dcache_bsize = 128, | ||
247 | .cpu_setup = __setup_cpu_be, | ||
248 | }, | ||
249 | { /* default match */ | ||
250 | .pvr_mask = 0x00000000, | ||
251 | .pvr_value = 0x00000000, | ||
252 | .cpu_name = "POWER4 (compatible)", | ||
253 | .cpu_features = CPU_FTRS_COMPATIBLE, | ||
254 | .cpu_user_features = COMMON_USER_PPC64, | ||
255 | .icache_bsize = 128, | ||
256 | .dcache_bsize = 128, | ||
257 | .num_pmcs = 6, | ||
258 | .cpu_setup = __setup_cpu_power4, | ||
259 | } | ||
260 | }; | ||
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index a4a50d08d384..373642aff7d8 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
@@ -119,9 +119,6 @@ extern void do_cpu_ftr_fixups(unsigned long offset); | |||
119 | 119 | ||
120 | #ifndef __ASSEMBLY__ | 120 | #ifndef __ASSEMBLY__ |
121 | 121 | ||
122 | #define COMMON_USER_PPC64 (PPC_FEATURE_32 | PPC_FEATURE_64 | \ | ||
123 | PPC_FEATURE_HAS_FPU | PPC_FEATURE_HAS_MMU) | ||
124 | |||
125 | #define CPU_FTR_PPCAS_ARCH_V2_BASE (CPU_FTR_SLB | \ | 122 | #define CPU_FTR_PPCAS_ARCH_V2_BASE (CPU_FTR_SLB | \ |
126 | CPU_FTR_TLBIEL | CPU_FTR_NOEXECUTE | \ | 123 | CPU_FTR_TLBIEL | CPU_FTR_NOEXECUTE | \ |
127 | CPU_FTR_NODSISRALIGN | CPU_FTR_CTRL) | 124 | CPU_FTR_NODSISRALIGN | CPU_FTR_CTRL) |