xref: /linux/arch/powerpc/kernel/cputable.c (revision d8327c784b51b57dac2c26cfad87dce0d68dfd98)
1 /*
2  *  Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
3  *
4  *  Modifications for ppc64:
5  *      Copyright (C) 2003 Dave Engebretsen <engebret@us.ibm.com>
6  *
7  *  This program is free software; you can redistribute it and/or
8  *  modify it under the terms of the GNU General Public License
9  *  as published by the Free Software Foundation; either version
10  *  2 of the License, or (at your option) any later version.
11  */
12 
13 #include <linux/config.h>
14 #include <linux/string.h>
15 #include <linux/sched.h>
16 #include <linux/threads.h>
17 #include <linux/init.h>
18 #include <linux/module.h>
19 
20 #include <asm/oprofile_impl.h>
21 #include <asm/cputable.h>
22 
23 struct cpu_spec* cur_cpu_spec = NULL;
24 EXPORT_SYMBOL(cur_cpu_spec);
25 
26 /* NOTE:
27  * Unlike ppc32, ppc64 will only call this once for the boot CPU, it's
28  * the responsibility of the appropriate CPU save/restore functions to
29  * eventually copy these settings over. Those save/restore aren't yet
30  * part of the cputable though. That has to be fixed for both ppc32
31  * and ppc64
32  */
33 #ifdef CONFIG_PPC64
34 extern void __setup_cpu_power3(unsigned long offset, struct cpu_spec* spec);
35 extern void __setup_cpu_power4(unsigned long offset, struct cpu_spec* spec);
36 extern void __setup_cpu_be(unsigned long offset, struct cpu_spec* spec);
37 #else
38 extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
39 extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec);
40 extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec);
41 extern void __setup_cpu_750cx(unsigned long offset, struct cpu_spec* spec);
42 extern void __setup_cpu_750fx(unsigned long offset, struct cpu_spec* spec);
43 extern void __setup_cpu_7400(unsigned long offset, struct cpu_spec* spec);
44 extern void __setup_cpu_7410(unsigned long offset, struct cpu_spec* spec);
45 extern void __setup_cpu_745x(unsigned long offset, struct cpu_spec* spec);
46 #endif /* CONFIG_PPC32 */
47 extern void __setup_cpu_ppc970(unsigned long offset, struct cpu_spec* spec);
48 
49 /* This table only contains "desktop" CPUs, it need to be filled with embedded
50  * ones as well...
51  */
52 #define COMMON_USER		(PPC_FEATURE_32 | PPC_FEATURE_HAS_FPU | \
53 				 PPC_FEATURE_HAS_MMU)
54 #define COMMON_USER_PPC64	(COMMON_USER | PPC_FEATURE_64)
55 #define COMMON_USER_POWER4	(COMMON_USER_PPC64 | PPC_FEATURE_POWER4)
56 #define COMMON_USER_POWER5	(COMMON_USER_PPC64 | PPC_FEATURE_POWER5 |\
57 				 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP)
58 #define COMMON_USER_POWER5_PLUS	(COMMON_USER_PPC64 | PPC_FEATURE_POWER5_PLUS|\
59 				 PPC_FEATURE_SMT | PPC_FEATURE_ICACHE_SNOOP)
60 #define COMMON_USER_BOOKE	(PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
61 				 PPC_FEATURE_BOOKE)
62 
63 /* We only set the spe features if the kernel was compiled with
64  * spe support
65  */
66 #ifdef CONFIG_SPE
67 #define PPC_FEATURE_SPE_COMP	PPC_FEATURE_HAS_SPE
68 #else
69 #define PPC_FEATURE_SPE_COMP	0
70 #endif
71 
72 struct cpu_spec	cpu_specs[] = {
73 #ifdef CONFIG_PPC64
74 	{	/* Power3 */
75 		.pvr_mask		= 0xffff0000,
76 		.pvr_value		= 0x00400000,
77 		.cpu_name		= "POWER3 (630)",
78 		.cpu_features		= CPU_FTRS_POWER3,
79 		.cpu_user_features	= COMMON_USER_PPC64,
80 		.icache_bsize		= 128,
81 		.dcache_bsize		= 128,
82 		.num_pmcs		= 8,
83 		.cpu_setup		= __setup_cpu_power3,
84 		.oprofile_cpu_type	= "ppc64/power3",
85 		.oprofile_type		= PPC_OPROFILE_RS64,
86 		.platform		= "power3",
87 	},
88 	{	/* Power3+ */
89 		.pvr_mask		= 0xffff0000,
90 		.pvr_value		= 0x00410000,
91 		.cpu_name		= "POWER3 (630+)",
92 		.cpu_features		= CPU_FTRS_POWER3,
93 		.cpu_user_features	= COMMON_USER_PPC64,
94 		.icache_bsize		= 128,
95 		.dcache_bsize		= 128,
96 		.num_pmcs		= 8,
97 		.cpu_setup		= __setup_cpu_power3,
98 		.oprofile_cpu_type	= "ppc64/power3",
99 		.oprofile_type		= PPC_OPROFILE_RS64,
100 		.platform		= "power3",
101 	},
102 	{	/* Northstar */
103 		.pvr_mask		= 0xffff0000,
104 		.pvr_value		= 0x00330000,
105 		.cpu_name		= "RS64-II (northstar)",
106 		.cpu_features		= CPU_FTRS_RS64,
107 		.cpu_user_features	= COMMON_USER_PPC64,
108 		.icache_bsize		= 128,
109 		.dcache_bsize		= 128,
110 		.num_pmcs		= 8,
111 		.cpu_setup		= __setup_cpu_power3,
112 		.oprofile_cpu_type	= "ppc64/rs64",
113 		.oprofile_type		= PPC_OPROFILE_RS64,
114 		.platform		= "rs64",
115 	},
116 	{	/* Pulsar */
117 		.pvr_mask		= 0xffff0000,
118 		.pvr_value		= 0x00340000,
119 		.cpu_name		= "RS64-III (pulsar)",
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 		.oprofile_cpu_type	= "ppc64/rs64",
127 		.oprofile_type		= PPC_OPROFILE_RS64,
128 		.platform		= "rs64",
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 		.oprofile_cpu_type	= "ppc64/rs64",
141 		.oprofile_type		= PPC_OPROFILE_RS64,
142 		.platform		= "rs64",
143 	},
144 	{	/* S-star */
145 		.pvr_mask		= 0xffff0000,
146 		.pvr_value		= 0x00370000,
147 		.cpu_name		= "RS64-IV (sstar)",
148 		.cpu_features		= CPU_FTRS_RS64,
149 		.cpu_user_features	= COMMON_USER_PPC64,
150 		.icache_bsize		= 128,
151 		.dcache_bsize		= 128,
152 		.num_pmcs		= 8,
153 		.cpu_setup		= __setup_cpu_power3,
154 		.oprofile_cpu_type	= "ppc64/rs64",
155 		.oprofile_type		= PPC_OPROFILE_RS64,
156 		.platform		= "rs64",
157 	},
158 	{	/* Power4 */
159 		.pvr_mask		= 0xffff0000,
160 		.pvr_value		= 0x00350000,
161 		.cpu_name		= "POWER4 (gp)",
162 		.cpu_features		= CPU_FTRS_POWER4,
163 		.cpu_user_features	= COMMON_USER_POWER4,
164 		.icache_bsize		= 128,
165 		.dcache_bsize		= 128,
166 		.num_pmcs		= 8,
167 		.cpu_setup		= __setup_cpu_power4,
168 		.oprofile_cpu_type	= "ppc64/power4",
169 		.oprofile_type		= PPC_OPROFILE_POWER4,
170 		.platform		= "power4",
171 	},
172 	{	/* Power4+ */
173 		.pvr_mask		= 0xffff0000,
174 		.pvr_value		= 0x00380000,
175 		.cpu_name		= "POWER4+ (gq)",
176 		.cpu_features		= CPU_FTRS_POWER4,
177 		.cpu_user_features	= COMMON_USER_POWER4,
178 		.icache_bsize		= 128,
179 		.dcache_bsize		= 128,
180 		.num_pmcs		= 8,
181 		.cpu_setup		= __setup_cpu_power4,
182 		.oprofile_cpu_type	= "ppc64/power4",
183 		.oprofile_type		= PPC_OPROFILE_POWER4,
184 		.platform		= "power4",
185 	},
186 	{	/* PPC970 */
187 		.pvr_mask		= 0xffff0000,
188 		.pvr_value		= 0x00390000,
189 		.cpu_name		= "PPC970",
190 		.cpu_features		= CPU_FTRS_PPC970,
191 		.cpu_user_features	= COMMON_USER_POWER4 |
192 			PPC_FEATURE_HAS_ALTIVEC_COMP,
193 		.icache_bsize		= 128,
194 		.dcache_bsize		= 128,
195 		.num_pmcs		= 8,
196 		.cpu_setup		= __setup_cpu_ppc970,
197 		.oprofile_cpu_type	= "ppc64/970",
198 		.oprofile_type		= PPC_OPROFILE_POWER4,
199 		.platform		= "ppc970",
200 	},
201 #endif /* CONFIG_PPC64 */
202 #if defined(CONFIG_PPC64) || defined(CONFIG_POWER4)
203 	{	/* PPC970FX */
204 		.pvr_mask		= 0xffff0000,
205 		.pvr_value		= 0x003c0000,
206 		.cpu_name		= "PPC970FX",
207 #ifdef CONFIG_PPC32
208 		.cpu_features		= CPU_FTRS_970_32,
209 #else
210 		.cpu_features		= CPU_FTRS_PPC970,
211 #endif
212 		.cpu_user_features	= COMMON_USER_POWER4 |
213 			PPC_FEATURE_HAS_ALTIVEC_COMP,
214 		.icache_bsize		= 128,
215 		.dcache_bsize		= 128,
216 		.num_pmcs		= 8,
217 		.cpu_setup		= __setup_cpu_ppc970,
218 		.oprofile_cpu_type	= "ppc64/970",
219 		.oprofile_type		= PPC_OPROFILE_POWER4,
220 		.platform		= "ppc970",
221 	},
222 #endif /* defined(CONFIG_PPC64) || defined(CONFIG_POWER4) */
223 #ifdef CONFIG_PPC64
224 	{	/* PPC970MP */
225 		.pvr_mask		= 0xffff0000,
226 		.pvr_value		= 0x00440000,
227 		.cpu_name		= "PPC970MP",
228 		.cpu_features		= CPU_FTRS_PPC970,
229 		.cpu_user_features	= COMMON_USER_POWER4 |
230 			PPC_FEATURE_HAS_ALTIVEC_COMP,
231 		.icache_bsize		= 128,
232 		.dcache_bsize		= 128,
233 		.cpu_setup		= __setup_cpu_ppc970,
234 		.oprofile_cpu_type	= "ppc64/970",
235 		.oprofile_type		= PPC_OPROFILE_POWER4,
236 		.platform		= "ppc970",
237 	},
238 	{	/* Power5 GR */
239 		.pvr_mask		= 0xffff0000,
240 		.pvr_value		= 0x003a0000,
241 		.cpu_name		= "POWER5 (gr)",
242 		.cpu_features		= CPU_FTRS_POWER5,
243 		.cpu_user_features	= COMMON_USER_POWER5,
244 		.icache_bsize		= 128,
245 		.dcache_bsize		= 128,
246 		.num_pmcs		= 6,
247 		.cpu_setup		= __setup_cpu_power4,
248 		.oprofile_cpu_type	= "ppc64/power5",
249 		.oprofile_type		= PPC_OPROFILE_POWER4,
250 		.platform		= "power5",
251 	},
252 	{	/* Power5 GS */
253 		.pvr_mask		= 0xffff0000,
254 		.pvr_value		= 0x003b0000,
255 		.cpu_name		= "POWER5+ (gs)",
256 		.cpu_features		= CPU_FTRS_POWER5,
257 		.cpu_user_features	= COMMON_USER_POWER5_PLUS,
258 		.icache_bsize		= 128,
259 		.dcache_bsize		= 128,
260 		.num_pmcs		= 6,
261 		.cpu_setup		= __setup_cpu_power4,
262 		.oprofile_cpu_type	= "ppc64/power5+",
263 		.oprofile_type		= PPC_OPROFILE_POWER4,
264 		.platform		= "power5+",
265 	},
266 	{	/* Cell Broadband Engine */
267 		.pvr_mask		= 0xffff0000,
268 		.pvr_value		= 0x00700000,
269 		.cpu_name		= "Cell Broadband Engine",
270 		.cpu_features		= CPU_FTRS_CELL,
271 		.cpu_user_features	= COMMON_USER_PPC64 |
272 			PPC_FEATURE_CELL | PPC_FEATURE_HAS_ALTIVEC_COMP |
273 			PPC_FEATURE_SMT,
274 		.icache_bsize		= 128,
275 		.dcache_bsize		= 128,
276 		.cpu_setup		= __setup_cpu_be,
277 		.platform		= "ppc-cell-be",
278 	},
279 	{	/* default match */
280 		.pvr_mask		= 0x00000000,
281 		.pvr_value		= 0x00000000,
282 		.cpu_name		= "POWER4 (compatible)",
283 		.cpu_features		= CPU_FTRS_COMPATIBLE,
284 		.cpu_user_features	= COMMON_USER_PPC64,
285 		.icache_bsize		= 128,
286 		.dcache_bsize		= 128,
287 		.num_pmcs		= 6,
288 		.cpu_setup		= __setup_cpu_power4,
289 		.platform		= "power4",
290 	}
291 #endif	/* CONFIG_PPC64 */
292 #ifdef CONFIG_PPC32
293 #if CLASSIC_PPC
294 	{	/* 601 */
295 		.pvr_mask		= 0xffff0000,
296 		.pvr_value		= 0x00010000,
297 		.cpu_name		= "601",
298 		.cpu_features		= CPU_FTRS_PPC601,
299 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_601_INSTR |
300 			PPC_FEATURE_UNIFIED_CACHE | PPC_FEATURE_NO_TB,
301 		.icache_bsize		= 32,
302 		.dcache_bsize		= 32,
303 		.platform		= "ppc601",
304 	},
305 	{	/* 603 */
306 		.pvr_mask		= 0xffff0000,
307 		.pvr_value		= 0x00030000,
308 		.cpu_name		= "603",
309 		.cpu_features		= CPU_FTRS_603,
310 		.cpu_user_features	= COMMON_USER,
311 		.icache_bsize		= 32,
312 		.dcache_bsize		= 32,
313 		.cpu_setup		= __setup_cpu_603,
314 		.platform		= "ppc603",
315 	},
316 	{	/* 603e */
317 		.pvr_mask		= 0xffff0000,
318 		.pvr_value		= 0x00060000,
319 		.cpu_name		= "603e",
320 		.cpu_features		= CPU_FTRS_603,
321 		.cpu_user_features	= COMMON_USER,
322 		.icache_bsize		= 32,
323 		.dcache_bsize		= 32,
324 		.cpu_setup		= __setup_cpu_603,
325 		.platform		= "ppc603",
326 	},
327 	{	/* 603ev */
328 		.pvr_mask		= 0xffff0000,
329 		.pvr_value		= 0x00070000,
330 		.cpu_name		= "603ev",
331 		.cpu_features		= CPU_FTRS_603,
332 		.cpu_user_features	= COMMON_USER,
333 		.icache_bsize		= 32,
334 		.dcache_bsize		= 32,
335 		.cpu_setup		= __setup_cpu_603,
336 		.platform		= "ppc603",
337 	},
338 	{	/* 604 */
339 		.pvr_mask		= 0xffff0000,
340 		.pvr_value		= 0x00040000,
341 		.cpu_name		= "604",
342 		.cpu_features		= CPU_FTRS_604,
343 		.cpu_user_features	= COMMON_USER,
344 		.icache_bsize		= 32,
345 		.dcache_bsize		= 32,
346 		.num_pmcs		= 2,
347 		.cpu_setup		= __setup_cpu_604,
348 		.platform		= "ppc604",
349 	},
350 	{	/* 604e */
351 		.pvr_mask		= 0xfffff000,
352 		.pvr_value		= 0x00090000,
353 		.cpu_name		= "604e",
354 		.cpu_features		= CPU_FTRS_604,
355 		.cpu_user_features	= COMMON_USER,
356 		.icache_bsize		= 32,
357 		.dcache_bsize		= 32,
358 		.num_pmcs		= 4,
359 		.cpu_setup		= __setup_cpu_604,
360 		.platform		= "ppc604",
361 	},
362 	{	/* 604r */
363 		.pvr_mask		= 0xffff0000,
364 		.pvr_value		= 0x00090000,
365 		.cpu_name		= "604r",
366 		.cpu_features		= CPU_FTRS_604,
367 		.cpu_user_features	= COMMON_USER,
368 		.icache_bsize		= 32,
369 		.dcache_bsize		= 32,
370 		.num_pmcs		= 4,
371 		.cpu_setup		= __setup_cpu_604,
372 		.platform		= "ppc604",
373 	},
374 	{	/* 604ev */
375 		.pvr_mask		= 0xffff0000,
376 		.pvr_value		= 0x000a0000,
377 		.cpu_name		= "604ev",
378 		.cpu_features		= CPU_FTRS_604,
379 		.cpu_user_features	= COMMON_USER,
380 		.icache_bsize		= 32,
381 		.dcache_bsize		= 32,
382 		.num_pmcs		= 4,
383 		.cpu_setup		= __setup_cpu_604,
384 		.platform		= "ppc604",
385 	},
386 	{	/* 740/750 (0x4202, don't support TAU ?) */
387 		.pvr_mask		= 0xffffffff,
388 		.pvr_value		= 0x00084202,
389 		.cpu_name		= "740/750",
390 		.cpu_features		= CPU_FTRS_740_NOTAU,
391 		.cpu_user_features	= COMMON_USER,
392 		.icache_bsize		= 32,
393 		.dcache_bsize		= 32,
394 		.num_pmcs		= 4,
395 		.cpu_setup		= __setup_cpu_750,
396 		.platform		= "ppc750",
397 	},
398 	{	/* 750CX (80100 and 8010x?) */
399 		.pvr_mask		= 0xfffffff0,
400 		.pvr_value		= 0x00080100,
401 		.cpu_name		= "750CX",
402 		.cpu_features		= CPU_FTRS_750,
403 		.cpu_user_features	= COMMON_USER,
404 		.icache_bsize		= 32,
405 		.dcache_bsize		= 32,
406 		.num_pmcs		= 4,
407 		.cpu_setup		= __setup_cpu_750cx,
408 		.platform		= "ppc750",
409 	},
410 	{	/* 750CX (82201 and 82202) */
411 		.pvr_mask		= 0xfffffff0,
412 		.pvr_value		= 0x00082200,
413 		.cpu_name		= "750CX",
414 		.cpu_features		= CPU_FTRS_750,
415 		.cpu_user_features	= COMMON_USER,
416 		.icache_bsize		= 32,
417 		.dcache_bsize		= 32,
418 		.num_pmcs		= 4,
419 		.cpu_setup		= __setup_cpu_750cx,
420 		.platform		= "ppc750",
421 	},
422 	{	/* 750CXe (82214) */
423 		.pvr_mask		= 0xfffffff0,
424 		.pvr_value		= 0x00082210,
425 		.cpu_name		= "750CXe",
426 		.cpu_features		= CPU_FTRS_750,
427 		.cpu_user_features	= COMMON_USER,
428 		.icache_bsize		= 32,
429 		.dcache_bsize		= 32,
430 		.num_pmcs		= 4,
431 		.cpu_setup		= __setup_cpu_750cx,
432 		.platform		= "ppc750",
433 	},
434 	{	/* 750CXe "Gekko" (83214) */
435 		.pvr_mask		= 0xffffffff,
436 		.pvr_value		= 0x00083214,
437 		.cpu_name		= "750CXe",
438 		.cpu_features		= CPU_FTRS_750,
439 		.cpu_user_features	= COMMON_USER,
440 		.icache_bsize		= 32,
441 		.dcache_bsize		= 32,
442 		.num_pmcs		= 4,
443 		.cpu_setup		= __setup_cpu_750cx,
444 		.platform		= "ppc750",
445 	},
446 	{	/* 745/755 */
447 		.pvr_mask		= 0xfffff000,
448 		.pvr_value		= 0x00083000,
449 		.cpu_name		= "745/755",
450 		.cpu_features		= CPU_FTRS_750,
451 		.cpu_user_features	= COMMON_USER,
452 		.icache_bsize		= 32,
453 		.dcache_bsize		= 32,
454 		.num_pmcs		= 4,
455 		.cpu_setup		= __setup_cpu_750,
456 		.platform		= "ppc750",
457 	},
458 	{	/* 750FX rev 1.x */
459 		.pvr_mask		= 0xffffff00,
460 		.pvr_value		= 0x70000100,
461 		.cpu_name		= "750FX",
462 		.cpu_features		= CPU_FTRS_750FX1,
463 		.cpu_user_features	= COMMON_USER,
464 		.icache_bsize		= 32,
465 		.dcache_bsize		= 32,
466 		.num_pmcs		= 4,
467 		.cpu_setup		= __setup_cpu_750,
468 		.platform		= "ppc750",
469 	},
470 	{	/* 750FX rev 2.0 must disable HID0[DPM] */
471 		.pvr_mask		= 0xffffffff,
472 		.pvr_value		= 0x70000200,
473 		.cpu_name		= "750FX",
474 		.cpu_features		= CPU_FTRS_750FX2,
475 		.cpu_user_features	= COMMON_USER,
476 		.icache_bsize		= 32,
477 		.dcache_bsize		= 32,
478 		.num_pmcs		= 4,
479 		.cpu_setup		= __setup_cpu_750,
480 		.platform		= "ppc750",
481 	},
482 	{	/* 750FX (All revs except 2.0) */
483 		.pvr_mask		= 0xffff0000,
484 		.pvr_value		= 0x70000000,
485 		.cpu_name		= "750FX",
486 		.cpu_features		= CPU_FTRS_750FX,
487 		.cpu_user_features	= COMMON_USER,
488 		.icache_bsize		= 32,
489 		.dcache_bsize		= 32,
490 		.num_pmcs		= 4,
491 		.cpu_setup		= __setup_cpu_750fx,
492 		.platform		= "ppc750",
493 	},
494 	{	/* 750GX */
495 		.pvr_mask		= 0xffff0000,
496 		.pvr_value		= 0x70020000,
497 		.cpu_name		= "750GX",
498 		.cpu_features		= CPU_FTRS_750GX,
499 		.cpu_user_features	= COMMON_USER,
500 		.icache_bsize		= 32,
501 		.dcache_bsize		= 32,
502 		.num_pmcs		= 4,
503 		.cpu_setup		= __setup_cpu_750fx,
504 		.platform		= "ppc750",
505 	},
506 	{	/* 740/750 (L2CR bit need fixup for 740) */
507 		.pvr_mask		= 0xffff0000,
508 		.pvr_value		= 0x00080000,
509 		.cpu_name		= "740/750",
510 		.cpu_features		= CPU_FTRS_740,
511 		.cpu_user_features	= COMMON_USER,
512 		.icache_bsize		= 32,
513 		.dcache_bsize		= 32,
514 		.num_pmcs		= 4,
515 		.cpu_setup		= __setup_cpu_750,
516 		.platform		= "ppc750",
517 	},
518 	{	/* 7400 rev 1.1 ? (no TAU) */
519 		.pvr_mask		= 0xffffffff,
520 		.pvr_value		= 0x000c1101,
521 		.cpu_name		= "7400 (1.1)",
522 		.cpu_features		= CPU_FTRS_7400_NOTAU,
523 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
524 		.icache_bsize		= 32,
525 		.dcache_bsize		= 32,
526 		.num_pmcs		= 4,
527 		.cpu_setup		= __setup_cpu_7400,
528 		.platform		= "ppc7400",
529 	},
530 	{	/* 7400 */
531 		.pvr_mask		= 0xffff0000,
532 		.pvr_value		= 0x000c0000,
533 		.cpu_name		= "7400",
534 		.cpu_features		= CPU_FTRS_7400,
535 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
536 		.icache_bsize		= 32,
537 		.dcache_bsize		= 32,
538 		.num_pmcs		= 4,
539 		.cpu_setup		= __setup_cpu_7400,
540 		.platform		= "ppc7400",
541 	},
542 	{	/* 7410 */
543 		.pvr_mask		= 0xffff0000,
544 		.pvr_value		= 0x800c0000,
545 		.cpu_name		= "7410",
546 		.cpu_features		= CPU_FTRS_7400,
547 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
548 		.icache_bsize		= 32,
549 		.dcache_bsize		= 32,
550 		.num_pmcs		= 4,
551 		.cpu_setup		= __setup_cpu_7410,
552 		.platform		= "ppc7400",
553 	},
554 	{	/* 7450 2.0 - no doze/nap */
555 		.pvr_mask		= 0xffffffff,
556 		.pvr_value		= 0x80000200,
557 		.cpu_name		= "7450",
558 		.cpu_features		= CPU_FTRS_7450_20,
559 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
560 		.icache_bsize		= 32,
561 		.dcache_bsize		= 32,
562 		.num_pmcs		= 6,
563 		.cpu_setup		= __setup_cpu_745x,
564 		.oprofile_cpu_type      = "ppc/7450",
565 		.oprofile_type		= PPC_OPROFILE_G4,
566 		.platform		= "ppc7450",
567 	},
568 	{	/* 7450 2.1 */
569 		.pvr_mask		= 0xffffffff,
570 		.pvr_value		= 0x80000201,
571 		.cpu_name		= "7450",
572 		.cpu_features		= CPU_FTRS_7450_21,
573 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
574 		.icache_bsize		= 32,
575 		.dcache_bsize		= 32,
576 		.num_pmcs		= 6,
577 		.cpu_setup		= __setup_cpu_745x,
578 		.oprofile_cpu_type      = "ppc/7450",
579 		.oprofile_type		= PPC_OPROFILE_G4,
580 		.platform		= "ppc7450",
581 	},
582 	{	/* 7450 2.3 and newer */
583 		.pvr_mask		= 0xffff0000,
584 		.pvr_value		= 0x80000000,
585 		.cpu_name		= "7450",
586 		.cpu_features		= CPU_FTRS_7450_23,
587 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
588 		.icache_bsize		= 32,
589 		.dcache_bsize		= 32,
590 		.num_pmcs		= 6,
591 		.cpu_setup		= __setup_cpu_745x,
592 		.oprofile_cpu_type      = "ppc/7450",
593 		.oprofile_type		= PPC_OPROFILE_G4,
594 		.platform		= "ppc7450",
595 	},
596 	{	/* 7455 rev 1.x */
597 		.pvr_mask		= 0xffffff00,
598 		.pvr_value		= 0x80010100,
599 		.cpu_name		= "7455",
600 		.cpu_features		= CPU_FTRS_7455_1,
601 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
602 		.icache_bsize		= 32,
603 		.dcache_bsize		= 32,
604 		.num_pmcs		= 6,
605 		.cpu_setup		= __setup_cpu_745x,
606 		.oprofile_cpu_type      = "ppc/7450",
607 		.oprofile_type		= PPC_OPROFILE_G4,
608 		.platform		= "ppc7450",
609 	},
610 	{	/* 7455 rev 2.0 */
611 		.pvr_mask		= 0xffffffff,
612 		.pvr_value		= 0x80010200,
613 		.cpu_name		= "7455",
614 		.cpu_features		= CPU_FTRS_7455_20,
615 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
616 		.icache_bsize		= 32,
617 		.dcache_bsize		= 32,
618 		.num_pmcs		= 6,
619 		.cpu_setup		= __setup_cpu_745x,
620 		.oprofile_cpu_type      = "ppc/7450",
621 		.oprofile_type		= PPC_OPROFILE_G4,
622 		.platform		= "ppc7450",
623 	},
624 	{	/* 7455 others */
625 		.pvr_mask		= 0xffff0000,
626 		.pvr_value		= 0x80010000,
627 		.cpu_name		= "7455",
628 		.cpu_features		= CPU_FTRS_7455,
629 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
630 		.icache_bsize		= 32,
631 		.dcache_bsize		= 32,
632 		.num_pmcs		= 6,
633 		.cpu_setup		= __setup_cpu_745x,
634 		.oprofile_cpu_type      = "ppc/7450",
635 		.oprofile_type		= PPC_OPROFILE_G4,
636 		.platform		= "ppc7450",
637 	},
638 	{	/* 7447/7457 Rev 1.0 */
639 		.pvr_mask		= 0xffffffff,
640 		.pvr_value		= 0x80020100,
641 		.cpu_name		= "7447/7457",
642 		.cpu_features		= CPU_FTRS_7447_10,
643 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
644 		.icache_bsize		= 32,
645 		.dcache_bsize		= 32,
646 		.num_pmcs		= 6,
647 		.cpu_setup		= __setup_cpu_745x,
648 		.oprofile_cpu_type      = "ppc/7450",
649 		.oprofile_type		= PPC_OPROFILE_G4,
650 		.platform		= "ppc7450",
651 	},
652 	{	/* 7447/7457 Rev 1.1 */
653 		.pvr_mask		= 0xffffffff,
654 		.pvr_value		= 0x80020101,
655 		.cpu_name		= "7447/7457",
656 		.cpu_features		= CPU_FTRS_7447_10,
657 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
658 		.icache_bsize		= 32,
659 		.dcache_bsize		= 32,
660 		.num_pmcs		= 6,
661 		.cpu_setup		= __setup_cpu_745x,
662 		.oprofile_cpu_type      = "ppc/7450",
663 		.oprofile_type		= PPC_OPROFILE_G4,
664 		.platform		= "ppc7450",
665 	},
666 	{	/* 7447/7457 Rev 1.2 and later */
667 		.pvr_mask		= 0xffff0000,
668 		.pvr_value		= 0x80020000,
669 		.cpu_name		= "7447/7457",
670 		.cpu_features		= CPU_FTRS_7447,
671 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
672 		.icache_bsize		= 32,
673 		.dcache_bsize		= 32,
674 		.num_pmcs		= 6,
675 		.cpu_setup		= __setup_cpu_745x,
676 		.oprofile_cpu_type      = "ppc/7450",
677 		.oprofile_type		= PPC_OPROFILE_G4,
678 		.platform		= "ppc7450",
679 	},
680 	{	/* 7447A */
681 		.pvr_mask		= 0xffff0000,
682 		.pvr_value		= 0x80030000,
683 		.cpu_name		= "7447A",
684 		.cpu_features		= CPU_FTRS_7447A,
685 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
686 		.icache_bsize		= 32,
687 		.dcache_bsize		= 32,
688 		.num_pmcs		= 6,
689 		.cpu_setup		= __setup_cpu_745x,
690 		.oprofile_cpu_type      = "ppc/7450",
691 		.oprofile_type		= PPC_OPROFILE_G4,
692 		.platform		= "ppc7450",
693 	},
694 	{	/* 7448 */
695 		.pvr_mask		= 0xffff0000,
696 		.pvr_value		= 0x80040000,
697 		.cpu_name		= "7448",
698 		.cpu_features		= CPU_FTRS_7447A,
699 		.cpu_user_features	= COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP,
700 		.icache_bsize		= 32,
701 		.dcache_bsize		= 32,
702 		.num_pmcs		= 6,
703 		.cpu_setup		= __setup_cpu_745x,
704 		.oprofile_cpu_type      = "ppc/7450",
705 		.oprofile_type		= PPC_OPROFILE_G4,
706 		.platform		= "ppc7450",
707 	},
708 	{	/* 82xx (8240, 8245, 8260 are all 603e cores) */
709 		.pvr_mask		= 0x7fff0000,
710 		.pvr_value		= 0x00810000,
711 		.cpu_name		= "82xx",
712 		.cpu_features		= CPU_FTRS_82XX,
713 		.cpu_user_features	= COMMON_USER,
714 		.icache_bsize		= 32,
715 		.dcache_bsize		= 32,
716 		.cpu_setup		= __setup_cpu_603,
717 		.platform		= "ppc603",
718 	},
719 	{	/* All G2_LE (603e core, plus some) have the same pvr */
720 		.pvr_mask		= 0x7fff0000,
721 		.pvr_value		= 0x00820000,
722 		.cpu_name		= "G2_LE",
723 		.cpu_features		= CPU_FTRS_G2_LE,
724 		.cpu_user_features	= COMMON_USER,
725 		.icache_bsize		= 32,
726 		.dcache_bsize		= 32,
727 		.cpu_setup		= __setup_cpu_603,
728 		.platform		= "ppc603",
729 	},
730 	{	/* e300 (a 603e core, plus some) on 83xx */
731 		.pvr_mask		= 0x7fff0000,
732 		.pvr_value		= 0x00830000,
733 		.cpu_name		= "e300",
734 		.cpu_features		= CPU_FTRS_E300,
735 		.cpu_user_features	= COMMON_USER,
736 		.icache_bsize		= 32,
737 		.dcache_bsize		= 32,
738 		.cpu_setup		= __setup_cpu_603,
739 		.platform		= "ppc603",
740 	},
741 	{	/* default match, we assume split I/D cache & TB (non-601)... */
742 		.pvr_mask		= 0x00000000,
743 		.pvr_value		= 0x00000000,
744 		.cpu_name		= "(generic PPC)",
745 		.cpu_features		= CPU_FTRS_CLASSIC32,
746 		.cpu_user_features	= COMMON_USER,
747 		.icache_bsize		= 32,
748 		.dcache_bsize		= 32,
749 		.platform		= "ppc603",
750 	},
751 #endif /* CLASSIC_PPC */
752 #ifdef CONFIG_8xx
753 	{	/* 8xx */
754 		.pvr_mask		= 0xffff0000,
755 		.pvr_value		= 0x00500000,
756 		.cpu_name		= "8xx",
757 		/* CPU_FTR_MAYBE_CAN_DOZE is possible,
758 		 * if the 8xx code is there.... */
759 		.cpu_features		= CPU_FTRS_8XX,
760 		.cpu_user_features	= PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
761 		.icache_bsize		= 16,
762 		.dcache_bsize		= 16,
763 		.platform		= "ppc823",
764 	},
765 #endif /* CONFIG_8xx */
766 #ifdef CONFIG_40x
767 	{	/* 403GC */
768 		.pvr_mask		= 0xffffff00,
769 		.pvr_value		= 0x00200200,
770 		.cpu_name		= "403GC",
771 		.cpu_features		= CPU_FTRS_40X,
772 		.cpu_user_features	= PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
773 		.icache_bsize		= 16,
774 		.dcache_bsize		= 16,
775 		.platform		= "ppc403",
776 	},
777 	{	/* 403GCX */
778 		.pvr_mask		= 0xffffff00,
779 		.pvr_value		= 0x00201400,
780 		.cpu_name		= "403GCX",
781 		.cpu_features		= CPU_FTRS_40X,
782 		.cpu_user_features	= PPC_FEATURE_32 |
783 		 	PPC_FEATURE_HAS_MMU | PPC_FEATURE_NO_TB,
784 		.icache_bsize		= 16,
785 		.dcache_bsize		= 16,
786 		.platform		= "ppc403",
787 	},
788 	{	/* 403G ?? */
789 		.pvr_mask		= 0xffff0000,
790 		.pvr_value		= 0x00200000,
791 		.cpu_name		= "403G ??",
792 		.cpu_features		= CPU_FTRS_40X,
793 		.cpu_user_features	= PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
794 		.icache_bsize		= 16,
795 		.dcache_bsize		= 16,
796 		.platform		= "ppc403",
797 	},
798 	{	/* 405GP */
799 		.pvr_mask		= 0xffff0000,
800 		.pvr_value		= 0x40110000,
801 		.cpu_name		= "405GP",
802 		.cpu_features		= CPU_FTRS_40X,
803 		.cpu_user_features	= PPC_FEATURE_32 |
804 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
805 		.icache_bsize		= 32,
806 		.dcache_bsize		= 32,
807 		.platform		= "ppc405",
808 	},
809 	{	/* STB 03xxx */
810 		.pvr_mask		= 0xffff0000,
811 		.pvr_value		= 0x40130000,
812 		.cpu_name		= "STB03xxx",
813 		.cpu_features		= CPU_FTRS_40X,
814 		.cpu_user_features	= PPC_FEATURE_32 |
815 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
816 		.icache_bsize		= 32,
817 		.dcache_bsize		= 32,
818 		.platform		= "ppc405",
819 	},
820 	{	/* STB 04xxx */
821 		.pvr_mask		= 0xffff0000,
822 		.pvr_value		= 0x41810000,
823 		.cpu_name		= "STB04xxx",
824 		.cpu_features		= CPU_FTRS_40X,
825 		.cpu_user_features	= PPC_FEATURE_32 |
826 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
827 		.icache_bsize		= 32,
828 		.dcache_bsize		= 32,
829 		.platform		= "ppc405",
830 	},
831 	{	/* NP405L */
832 		.pvr_mask		= 0xffff0000,
833 		.pvr_value		= 0x41610000,
834 		.cpu_name		= "NP405L",
835 		.cpu_features		= CPU_FTRS_40X,
836 		.cpu_user_features	= PPC_FEATURE_32 |
837 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
838 		.icache_bsize		= 32,
839 		.dcache_bsize		= 32,
840 		.platform		= "ppc405",
841 	},
842 	{	/* NP4GS3 */
843 		.pvr_mask		= 0xffff0000,
844 		.pvr_value		= 0x40B10000,
845 		.cpu_name		= "NP4GS3",
846 		.cpu_features		= CPU_FTRS_40X,
847 		.cpu_user_features	= PPC_FEATURE_32 |
848 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
849 		.icache_bsize		= 32,
850 		.dcache_bsize		= 32,
851 		.platform		= "ppc405",
852 	},
853 	{   /* NP405H */
854 		.pvr_mask		= 0xffff0000,
855 		.pvr_value		= 0x41410000,
856 		.cpu_name		= "NP405H",
857 		.cpu_features		= CPU_FTRS_40X,
858 		.cpu_user_features	= PPC_FEATURE_32 |
859 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
860 		.icache_bsize		= 32,
861 		.dcache_bsize		= 32,
862 		.platform		= "ppc405",
863 	},
864 	{	/* 405GPr */
865 		.pvr_mask		= 0xffff0000,
866 		.pvr_value		= 0x50910000,
867 		.cpu_name		= "405GPr",
868 		.cpu_features		= CPU_FTRS_40X,
869 		.cpu_user_features	= PPC_FEATURE_32 |
870 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
871 		.icache_bsize		= 32,
872 		.dcache_bsize		= 32,
873 		.platform		= "ppc405",
874 	},
875 	{   /* STBx25xx */
876 		.pvr_mask		= 0xffff0000,
877 		.pvr_value		= 0x51510000,
878 		.cpu_name		= "STBx25xx",
879 		.cpu_features		= CPU_FTRS_40X,
880 		.cpu_user_features	= PPC_FEATURE_32 |
881 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
882 		.icache_bsize		= 32,
883 		.dcache_bsize		= 32,
884 		.platform		= "ppc405",
885 	},
886 	{	/* 405LP */
887 		.pvr_mask		= 0xffff0000,
888 		.pvr_value		= 0x41F10000,
889 		.cpu_name		= "405LP",
890 		.cpu_features		= CPU_FTRS_40X,
891 		.cpu_user_features	= PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
892 		.icache_bsize		= 32,
893 		.dcache_bsize		= 32,
894 		.platform		= "ppc405",
895 	},
896 	{	/* Xilinx Virtex-II Pro  */
897 		.pvr_mask		= 0xffff0000,
898 		.pvr_value		= 0x20010000,
899 		.cpu_name		= "Virtex-II Pro",
900 		.cpu_features		= CPU_FTRS_40X,
901 		.cpu_user_features	= PPC_FEATURE_32 |
902 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
903 		.icache_bsize		= 32,
904 		.dcache_bsize		= 32,
905 		.platform		= "ppc405",
906 	},
907 	{	/* 405EP */
908 		.pvr_mask		= 0xffff0000,
909 		.pvr_value		= 0x51210000,
910 		.cpu_name		= "405EP",
911 		.cpu_features		= CPU_FTRS_40X,
912 		.cpu_user_features	= PPC_FEATURE_32 |
913 			PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC,
914 		.icache_bsize		= 32,
915 		.dcache_bsize		= 32,
916 		.platform		= "ppc405",
917 	},
918 
919 #endif /* CONFIG_40x */
920 #ifdef CONFIG_44x
921 	{
922 		.pvr_mask		= 0xf0000fff,
923 		.pvr_value		= 0x40000850,
924 		.cpu_name		= "440EP Rev. A",
925 		.cpu_features		= CPU_FTRS_44X,
926 		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
927 		.icache_bsize		= 32,
928 		.dcache_bsize		= 32,
929 		.platform		= "ppc440",
930 	},
931 	{
932 		.pvr_mask		= 0xf0000fff,
933 		.pvr_value		= 0x400008d3,
934 		.cpu_name		= "440EP Rev. B",
935 		.cpu_features		= CPU_FTRS_44X,
936 		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
937 		.icache_bsize		= 32,
938 		.dcache_bsize		= 32,
939 		.platform		= "ppc440",
940 	},
941 	{	/* 440GP Rev. B */
942 		.pvr_mask		= 0xf0000fff,
943 		.pvr_value		= 0x40000440,
944 		.cpu_name		= "440GP Rev. B",
945 		.cpu_features		= CPU_FTRS_44X,
946 		.cpu_user_features	= COMMON_USER_BOOKE,
947 		.icache_bsize		= 32,
948 		.dcache_bsize		= 32,
949 		.platform		= "ppc440gp",
950 	},
951 	{	/* 440GP Rev. C */
952 		.pvr_mask		= 0xf0000fff,
953 		.pvr_value		= 0x40000481,
954 		.cpu_name		= "440GP Rev. C",
955 		.cpu_features		= CPU_FTRS_44X,
956 		.cpu_user_features	= COMMON_USER_BOOKE,
957 		.icache_bsize		= 32,
958 		.dcache_bsize		= 32,
959 		.platform		= "ppc440gp",
960 	},
961 	{ /* 440GX Rev. A */
962 		.pvr_mask		= 0xf0000fff,
963 		.pvr_value		= 0x50000850,
964 		.cpu_name		= "440GX Rev. A",
965 		.cpu_features		= CPU_FTRS_44X,
966 		.cpu_user_features	= COMMON_USER_BOOKE,
967 		.icache_bsize		= 32,
968 		.dcache_bsize		= 32,
969 		.platform		= "ppc440",
970 	},
971 	{ /* 440GX Rev. B */
972 		.pvr_mask		= 0xf0000fff,
973 		.pvr_value		= 0x50000851,
974 		.cpu_name		= "440GX Rev. B",
975 		.cpu_features		= CPU_FTRS_44X,
976 		.cpu_user_features	= COMMON_USER_BOOKE,
977 		.icache_bsize		= 32,
978 		.dcache_bsize		= 32,
979 		.platform		= "ppc440",
980 	},
981 	{ /* 440GX Rev. C */
982 		.pvr_mask		= 0xf0000fff,
983 		.pvr_value		= 0x50000892,
984 		.cpu_name		= "440GX Rev. C",
985 		.cpu_features		= CPU_FTRS_44X,
986 		.cpu_user_features	= COMMON_USER_BOOKE,
987 		.icache_bsize		= 32,
988 		.dcache_bsize		= 32,
989 		.platform		= "ppc440",
990 	},
991 	{ /* 440GX Rev. F */
992 		.pvr_mask		= 0xf0000fff,
993 		.pvr_value		= 0x50000894,
994 		.cpu_name		= "440GX Rev. F",
995 		.cpu_features		= CPU_FTRS_44X,
996 		.cpu_user_features	= COMMON_USER_BOOKE,
997 		.icache_bsize		= 32,
998 		.dcache_bsize		= 32,
999 		.platform		= "ppc440",
1000 	},
1001 	{ /* 440SP Rev. A */
1002 		.pvr_mask		= 0xff000fff,
1003 		.pvr_value		= 0x53000891,
1004 		.cpu_name		= "440SP Rev. A",
1005 		.cpu_features		= CPU_FTRS_44X,
1006 		.cpu_user_features	= COMMON_USER_BOOKE,
1007 		.icache_bsize		= 32,
1008 		.dcache_bsize		= 32,
1009 		.platform		= "ppc440",
1010 	},
1011 	{ /* 440SPe Rev. A */
1012 		.pvr_mask		= 0xff000fff,
1013 		.pvr_value		= 0x53000890,
1014 		.cpu_name		= "440SPe Rev. A",
1015 		.cpu_features		= CPU_FTR_SPLIT_ID_CACHE |
1016 			CPU_FTR_USE_TB,
1017 		.cpu_user_features	= COMMON_USER_BOOKE,
1018 		.icache_bsize		= 32,
1019 		.dcache_bsize		= 32,
1020 		.platform		= "ppc440",
1021 	},
1022 #endif /* CONFIG_44x */
1023 #ifdef CONFIG_FSL_BOOKE
1024 	{	/* e200z5 */
1025 		.pvr_mask		= 0xfff00000,
1026 		.pvr_value		= 0x81000000,
1027 		.cpu_name		= "e200z5",
1028 		/* xxx - galak: add CPU_FTR_MAYBE_CAN_DOZE */
1029 		.cpu_features		= CPU_FTRS_E200,
1030 		.cpu_user_features	= COMMON_USER_BOOKE |
1031 			PPC_FEATURE_HAS_EFP_SINGLE |
1032 			PPC_FEATURE_UNIFIED_CACHE,
1033 		.dcache_bsize		= 32,
1034 		.platform		= "ppc5554",
1035 	},
1036 	{	/* e200z6 */
1037 		.pvr_mask		= 0xfff00000,
1038 		.pvr_value		= 0x81100000,
1039 		.cpu_name		= "e200z6",
1040 		/* xxx - galak: add CPU_FTR_MAYBE_CAN_DOZE */
1041 		.cpu_features		= CPU_FTRS_E200,
1042 		.cpu_user_features	= COMMON_USER_BOOKE |
1043 			PPC_FEATURE_SPE_COMP |
1044 			PPC_FEATURE_HAS_EFP_SINGLE |
1045 			PPC_FEATURE_UNIFIED_CACHE,
1046 		.dcache_bsize		= 32,
1047 		.platform		= "ppc5554",
1048 	},
1049 	{	/* e500 */
1050 		.pvr_mask		= 0xffff0000,
1051 		.pvr_value		= 0x80200000,
1052 		.cpu_name		= "e500",
1053 		/* xxx - galak: add CPU_FTR_MAYBE_CAN_DOZE */
1054 		.cpu_features		= CPU_FTRS_E500,
1055 		.cpu_user_features	= COMMON_USER_BOOKE |
1056 			PPC_FEATURE_SPE_COMP |
1057 			PPC_FEATURE_HAS_EFP_SINGLE,
1058 		.icache_bsize		= 32,
1059 		.dcache_bsize		= 32,
1060 		.num_pmcs		= 4,
1061 		.oprofile_cpu_type	= "ppc/e500",
1062 		.oprofile_type		= PPC_OPROFILE_BOOKE,
1063 		.platform		= "ppc8540",
1064 	},
1065 	{	/* e500v2 */
1066 		.pvr_mask		= 0xffff0000,
1067 		.pvr_value		= 0x80210000,
1068 		.cpu_name		= "e500v2",
1069 		/* xxx - galak: add CPU_FTR_MAYBE_CAN_DOZE */
1070 		.cpu_features		= CPU_FTRS_E500_2,
1071 		.cpu_user_features	= COMMON_USER_BOOKE |
1072 			PPC_FEATURE_SPE_COMP |
1073 			PPC_FEATURE_HAS_EFP_SINGLE |
1074 			PPC_FEATURE_HAS_EFP_DOUBLE,
1075 		.icache_bsize		= 32,
1076 		.dcache_bsize		= 32,
1077 		.num_pmcs		= 4,
1078 		.oprofile_cpu_type	= "ppc/e500",
1079 		.oprofile_type		= PPC_OPROFILE_BOOKE,
1080 		.platform		= "ppc8548",
1081 	},
1082 #endif
1083 #if !CLASSIC_PPC
1084 	{	/* default match */
1085 		.pvr_mask		= 0x00000000,
1086 		.pvr_value		= 0x00000000,
1087 		.cpu_name		= "(generic PPC)",
1088 		.cpu_features		= CPU_FTRS_GENERIC_32,
1089 		.cpu_user_features	= PPC_FEATURE_32,
1090 		.icache_bsize		= 32,
1091 		.dcache_bsize		= 32,
1092 		.platform		= "powerpc",
1093 	}
1094 #endif /* !CLASSIC_PPC */
1095 #endif /* CONFIG_PPC32 */
1096 };
1097