GNU Linux-libre 6.5.10-gnu
[releases.git] / arch / powerpc / kernel / cpu_specs_book3s_32.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  *  Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
4  */
5
6 #define COMMON_USER     (PPC_FEATURE_32 | PPC_FEATURE_HAS_FPU | \
7                          PPC_FEATURE_HAS_MMU)
8
9 static struct cpu_spec cpu_specs[] __initdata = {
10 #ifdef CONFIG_PPC_BOOK3S_603
11         {       /* 603 */
12                 .pvr_mask               = 0xffff0000,
13                 .pvr_value              = 0x00030000,
14                 .cpu_name               = "603",
15                 .cpu_features           = CPU_FTRS_603,
16                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
17                 .mmu_features           = 0,
18                 .icache_bsize           = 32,
19                 .dcache_bsize           = 32,
20                 .cpu_setup              = __setup_cpu_603,
21                 .machine_check          = machine_check_generic,
22                 .platform               = "ppc603",
23         },
24         {       /* 603e */
25                 .pvr_mask               = 0xffff0000,
26                 .pvr_value              = 0x00060000,
27                 .cpu_name               = "603e",
28                 .cpu_features           = CPU_FTRS_603,
29                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
30                 .mmu_features           = 0,
31                 .icache_bsize           = 32,
32                 .dcache_bsize           = 32,
33                 .cpu_setup              = __setup_cpu_603,
34                 .machine_check          = machine_check_generic,
35                 .platform               = "ppc603",
36         },
37         {       /* 603ev */
38                 .pvr_mask               = 0xffff0000,
39                 .pvr_value              = 0x00070000,
40                 .cpu_name               = "603ev",
41                 .cpu_features           = CPU_FTRS_603,
42                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
43                 .mmu_features           = 0,
44                 .icache_bsize           = 32,
45                 .dcache_bsize           = 32,
46                 .cpu_setup              = __setup_cpu_603,
47                 .machine_check          = machine_check_generic,
48                 .platform               = "ppc603",
49         },
50         {       /* 82xx (8240, 8245, 8260 are all 603e cores) */
51                 .pvr_mask               = 0x7fff0000,
52                 .pvr_value              = 0x00810000,
53                 .cpu_name               = "82xx",
54                 .cpu_features           = CPU_FTRS_82XX,
55                 .cpu_user_features      = COMMON_USER,
56                 .mmu_features           = 0,
57                 .icache_bsize           = 32,
58                 .dcache_bsize           = 32,
59                 .cpu_setup              = __setup_cpu_603,
60                 .machine_check          = machine_check_generic,
61                 .platform               = "ppc603",
62         },
63         {       /* All G2_LE (603e core, plus some) have the same pvr */
64                 .pvr_mask               = 0x7fff0000,
65                 .pvr_value              = 0x00820000,
66                 .cpu_name               = "G2_LE",
67                 .cpu_features           = CPU_FTRS_G2_LE,
68                 .cpu_user_features      = COMMON_USER,
69                 .mmu_features           = MMU_FTR_USE_HIGH_BATS,
70                 .icache_bsize           = 32,
71                 .dcache_bsize           = 32,
72                 .cpu_setup              = __setup_cpu_603,
73                 .machine_check          = machine_check_generic,
74                 .platform               = "ppc603",
75         },
76 #ifdef CONFIG_PPC_83xx
77         {       /* e300c1 (a 603e core, plus some) on 83xx */
78                 .pvr_mask               = 0x7fff0000,
79                 .pvr_value              = 0x00830000,
80                 .cpu_name               = "e300c1",
81                 .cpu_features           = CPU_FTRS_E300,
82                 .cpu_user_features      = COMMON_USER,
83                 .mmu_features           = MMU_FTR_USE_HIGH_BATS,
84                 .icache_bsize           = 32,
85                 .dcache_bsize           = 32,
86                 .cpu_setup              = __setup_cpu_603,
87                 .machine_check          = machine_check_83xx,
88                 .platform               = "ppc603",
89         },
90         {       /* e300c2 (an e300c1 core, plus some, minus FPU) on 83xx */
91                 .pvr_mask               = 0x7fff0000,
92                 .pvr_value              = 0x00840000,
93                 .cpu_name               = "e300c2",
94                 .cpu_features           = CPU_FTRS_E300C2,
95                 .cpu_user_features      = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
96                 .mmu_features           = MMU_FTR_USE_HIGH_BATS | MMU_FTR_NEED_DTLB_SW_LRU,
97                 .icache_bsize           = 32,
98                 .dcache_bsize           = 32,
99                 .cpu_setup              = __setup_cpu_603,
100                 .machine_check          = machine_check_83xx,
101                 .platform               = "ppc603",
102         },
103         {       /* e300c3 (e300c1, plus one IU, half cache size) on 83xx */
104                 .pvr_mask               = 0x7fff0000,
105                 .pvr_value              = 0x00850000,
106                 .cpu_name               = "e300c3",
107                 .cpu_features           = CPU_FTRS_E300,
108                 .cpu_user_features      = COMMON_USER,
109                 .mmu_features           = MMU_FTR_USE_HIGH_BATS | MMU_FTR_NEED_DTLB_SW_LRU,
110                 .icache_bsize           = 32,
111                 .dcache_bsize           = 32,
112                 .cpu_setup              = __setup_cpu_603,
113                 .machine_check          = machine_check_83xx,
114                 .num_pmcs               = 4,
115                 .platform               = "ppc603",
116         },
117         {       /* e300c4 (e300c1, plus one IU) */
118                 .pvr_mask               = 0x7fff0000,
119                 .pvr_value              = 0x00860000,
120                 .cpu_name               = "e300c4",
121                 .cpu_features           = CPU_FTRS_E300,
122                 .cpu_user_features      = COMMON_USER,
123                 .mmu_features           = MMU_FTR_USE_HIGH_BATS | MMU_FTR_NEED_DTLB_SW_LRU,
124                 .icache_bsize           = 32,
125                 .dcache_bsize           = 32,
126                 .cpu_setup              = __setup_cpu_603,
127                 .machine_check          = machine_check_83xx,
128                 .num_pmcs               = 4,
129                 .platform               = "ppc603",
130         },
131 #endif
132 #endif /* CONFIG_PPC_BOOK3S_603 */
133 #ifdef CONFIG_PPC_BOOK3S_604
134         {       /* 604 */
135                 .pvr_mask               = 0xffff0000,
136                 .pvr_value              = 0x00040000,
137                 .cpu_name               = "604",
138                 .cpu_features           = CPU_FTRS_604,
139                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
140                 .mmu_features           = MMU_FTR_HPTE_TABLE,
141                 .icache_bsize           = 32,
142                 .dcache_bsize           = 32,
143                 .num_pmcs               = 2,
144                 .cpu_setup              = __setup_cpu_604,
145                 .machine_check          = machine_check_generic,
146                 .platform               = "ppc604",
147         },
148         {       /* 604e */
149                 .pvr_mask               = 0xfffff000,
150                 .pvr_value              = 0x00090000,
151                 .cpu_name               = "604e",
152                 .cpu_features           = CPU_FTRS_604,
153                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
154                 .mmu_features           = MMU_FTR_HPTE_TABLE,
155                 .icache_bsize           = 32,
156                 .dcache_bsize           = 32,
157                 .num_pmcs               = 4,
158                 .cpu_setup              = __setup_cpu_604,
159                 .machine_check          = machine_check_generic,
160                 .platform               = "ppc604",
161         },
162         {       /* 604r */
163                 .pvr_mask               = 0xffff0000,
164                 .pvr_value              = 0x00090000,
165                 .cpu_name               = "604r",
166                 .cpu_features           = CPU_FTRS_604,
167                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
168                 .mmu_features           = MMU_FTR_HPTE_TABLE,
169                 .icache_bsize           = 32,
170                 .dcache_bsize           = 32,
171                 .num_pmcs               = 4,
172                 .cpu_setup              = __setup_cpu_604,
173                 .machine_check          = machine_check_generic,
174                 .platform               = "ppc604",
175         },
176         {       /* 604ev */
177                 .pvr_mask               = 0xffff0000,
178                 .pvr_value              = 0x000a0000,
179                 .cpu_name               = "604ev",
180                 .cpu_features           = CPU_FTRS_604,
181                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
182                 .mmu_features           = MMU_FTR_HPTE_TABLE,
183                 .icache_bsize           = 32,
184                 .dcache_bsize           = 32,
185                 .num_pmcs               = 4,
186                 .cpu_setup              = __setup_cpu_604,
187                 .machine_check          = machine_check_generic,
188                 .platform               = "ppc604",
189         },
190         {       /* 740/750 (0x4202, don't support TAU ?) */
191                 .pvr_mask               = 0xffffffff,
192                 .pvr_value              = 0x00084202,
193                 .cpu_name               = "740/750",
194                 .cpu_features           = CPU_FTRS_740_NOTAU,
195                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
196                 .mmu_features           = MMU_FTR_HPTE_TABLE,
197                 .icache_bsize           = 32,
198                 .dcache_bsize           = 32,
199                 .num_pmcs               = 4,
200                 .cpu_setup              = __setup_cpu_750,
201                 .machine_check          = machine_check_generic,
202                 .platform               = "ppc750",
203         },
204         {       /* 750CX (80100 and 8010x?) */
205                 .pvr_mask               = 0xfffffff0,
206                 .pvr_value              = 0x00080100,
207                 .cpu_name               = "750CX",
208                 .cpu_features           = CPU_FTRS_750,
209                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
210                 .mmu_features           = MMU_FTR_HPTE_TABLE,
211                 .icache_bsize           = 32,
212                 .dcache_bsize           = 32,
213                 .num_pmcs               = 4,
214                 .cpu_setup              = __setup_cpu_750cx,
215                 .machine_check          = machine_check_generic,
216                 .platform               = "ppc750",
217         },
218         {       /* 750CX (82201 and 82202) */
219                 .pvr_mask               = 0xfffffff0,
220                 .pvr_value              = 0x00082200,
221                 .cpu_name               = "750CX",
222                 .cpu_features           = CPU_FTRS_750,
223                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
224                 .mmu_features           = MMU_FTR_HPTE_TABLE,
225                 .icache_bsize           = 32,
226                 .dcache_bsize           = 32,
227                 .num_pmcs               = 4,
228                 .pmc_type               = PPC_PMC_IBM,
229                 .cpu_setup              = __setup_cpu_750cx,
230                 .machine_check          = machine_check_generic,
231                 .platform               = "ppc750",
232         },
233         {       /* 750CXe (82214) */
234                 .pvr_mask               = 0xfffffff0,
235                 .pvr_value              = 0x00082210,
236                 .cpu_name               = "750CXe",
237                 .cpu_features           = CPU_FTRS_750,
238                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
239                 .mmu_features           = MMU_FTR_HPTE_TABLE,
240                 .icache_bsize           = 32,
241                 .dcache_bsize           = 32,
242                 .num_pmcs               = 4,
243                 .pmc_type               = PPC_PMC_IBM,
244                 .cpu_setup              = __setup_cpu_750cx,
245                 .machine_check          = machine_check_generic,
246                 .platform               = "ppc750",
247         },
248         {       /* 750CXe "Gekko" (83214) */
249                 .pvr_mask               = 0xffffffff,
250                 .pvr_value              = 0x00083214,
251                 .cpu_name               = "750CXe",
252                 .cpu_features           = CPU_FTRS_750,
253                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
254                 .mmu_features           = MMU_FTR_HPTE_TABLE,
255                 .icache_bsize           = 32,
256                 .dcache_bsize           = 32,
257                 .num_pmcs               = 4,
258                 .pmc_type               = PPC_PMC_IBM,
259                 .cpu_setup              = __setup_cpu_750cx,
260                 .machine_check          = machine_check_generic,
261                 .platform               = "ppc750",
262         },
263         {       /* 750CL (and "Broadway") */
264                 .pvr_mask               = 0xfffff0e0,
265                 .pvr_value              = 0x00087000,
266                 .cpu_name               = "750CL",
267                 .cpu_features           = CPU_FTRS_750CL,
268                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
269                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
270                 .icache_bsize           = 32,
271                 .dcache_bsize           = 32,
272                 .num_pmcs               = 4,
273                 .pmc_type               = PPC_PMC_IBM,
274                 .cpu_setup              = __setup_cpu_750,
275                 .machine_check          = machine_check_generic,
276                 .platform               = "ppc750",
277         },
278         {       /* 745/755 */
279                 .pvr_mask               = 0xfffff000,
280                 .pvr_value              = 0x00083000,
281                 .cpu_name               = "745/755",
282                 .cpu_features           = CPU_FTRS_750,
283                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
284                 .mmu_features           = MMU_FTR_HPTE_TABLE,
285                 .icache_bsize           = 32,
286                 .dcache_bsize           = 32,
287                 .num_pmcs               = 4,
288                 .pmc_type               = PPC_PMC_IBM,
289                 .cpu_setup              = __setup_cpu_750,
290                 .machine_check          = machine_check_generic,
291                 .platform               = "ppc750",
292         },
293         {       /* 750FX rev 1.x */
294                 .pvr_mask               = 0xffffff00,
295                 .pvr_value              = 0x70000100,
296                 .cpu_name               = "750FX",
297                 .cpu_features           = CPU_FTRS_750FX1,
298                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
299                 .mmu_features           = MMU_FTR_HPTE_TABLE,
300                 .icache_bsize           = 32,
301                 .dcache_bsize           = 32,
302                 .num_pmcs               = 4,
303                 .pmc_type               = PPC_PMC_IBM,
304                 .cpu_setup              = __setup_cpu_750,
305                 .machine_check          = machine_check_generic,
306                 .platform               = "ppc750",
307         },
308         {       /* 750FX rev 2.0 must disable HID0[DPM] */
309                 .pvr_mask               = 0xffffffff,
310                 .pvr_value              = 0x70000200,
311                 .cpu_name               = "750FX",
312                 .cpu_features           = CPU_FTRS_750FX2,
313                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
314                 .mmu_features           = MMU_FTR_HPTE_TABLE,
315                 .icache_bsize           = 32,
316                 .dcache_bsize           = 32,
317                 .num_pmcs               = 4,
318                 .pmc_type               = PPC_PMC_IBM,
319                 .cpu_setup              = __setup_cpu_750,
320                 .machine_check          = machine_check_generic,
321                 .platform               = "ppc750",
322         },
323         {       /* 750FX (All revs except 2.0) */
324                 .pvr_mask               = 0xffff0000,
325                 .pvr_value              = 0x70000000,
326                 .cpu_name               = "750FX",
327                 .cpu_features           = CPU_FTRS_750FX,
328                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
329                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
330                 .icache_bsize           = 32,
331                 .dcache_bsize           = 32,
332                 .num_pmcs               = 4,
333                 .pmc_type               = PPC_PMC_IBM,
334                 .cpu_setup              = __setup_cpu_750fx,
335                 .machine_check          = machine_check_generic,
336                 .platform               = "ppc750",
337         },
338         {       /* 750GX */
339                 .pvr_mask               = 0xffff0000,
340                 .pvr_value              = 0x70020000,
341                 .cpu_name               = "750GX",
342                 .cpu_features           = CPU_FTRS_750GX,
343                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
344                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
345                 .icache_bsize           = 32,
346                 .dcache_bsize           = 32,
347                 .num_pmcs               = 4,
348                 .pmc_type               = PPC_PMC_IBM,
349                 .cpu_setup              = __setup_cpu_750fx,
350                 .machine_check          = machine_check_generic,
351                 .platform               = "ppc750",
352         },
353         {       /* 740/750 (L2CR bit need fixup for 740) */
354                 .pvr_mask               = 0xffff0000,
355                 .pvr_value              = 0x00080000,
356                 .cpu_name               = "740/750",
357                 .cpu_features           = CPU_FTRS_740,
358                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_PPC_LE,
359                 .mmu_features           = MMU_FTR_HPTE_TABLE,
360                 .icache_bsize           = 32,
361                 .dcache_bsize           = 32,
362                 .num_pmcs               = 4,
363                 .pmc_type               = PPC_PMC_IBM,
364                 .cpu_setup              = __setup_cpu_750,
365                 .machine_check          = machine_check_generic,
366                 .platform               = "ppc750",
367         },
368         {       /* 7400 rev 1.1 ? (no TAU) */
369                 .pvr_mask               = 0xffffffff,
370                 .pvr_value              = 0x000c1101,
371                 .cpu_name               = "7400 (1.1)",
372                 .cpu_features           = CPU_FTRS_7400_NOTAU,
373                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
374                                           PPC_FEATURE_PPC_LE,
375                 .mmu_features           = MMU_FTR_HPTE_TABLE,
376                 .icache_bsize           = 32,
377                 .dcache_bsize           = 32,
378                 .num_pmcs               = 4,
379                 .pmc_type               = PPC_PMC_G4,
380                 .cpu_setup              = __setup_cpu_7400,
381                 .machine_check          = machine_check_generic,
382                 .platform               = "ppc7400",
383         },
384         {       /* 7400 */
385                 .pvr_mask               = 0xffff0000,
386                 .pvr_value              = 0x000c0000,
387                 .cpu_name               = "7400",
388                 .cpu_features           = CPU_FTRS_7400,
389                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
390                                           PPC_FEATURE_PPC_LE,
391                 .mmu_features           = MMU_FTR_HPTE_TABLE,
392                 .icache_bsize           = 32,
393                 .dcache_bsize           = 32,
394                 .num_pmcs               = 4,
395                 .pmc_type               = PPC_PMC_G4,
396                 .cpu_setup              = __setup_cpu_7400,
397                 .machine_check          = machine_check_generic,
398                 .platform               = "ppc7400",
399         },
400         {       /* 7410 */
401                 .pvr_mask               = 0xffff0000,
402                 .pvr_value              = 0x800c0000,
403                 .cpu_name               = "7410",
404                 .cpu_features           = CPU_FTRS_7400,
405                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
406                                           PPC_FEATURE_PPC_LE,
407                 .mmu_features           = MMU_FTR_HPTE_TABLE,
408                 .icache_bsize           = 32,
409                 .dcache_bsize           = 32,
410                 .num_pmcs               = 4,
411                 .pmc_type               = PPC_PMC_G4,
412                 .cpu_setup              = __setup_cpu_7410,
413                 .machine_check          = machine_check_generic,
414                 .platform               = "ppc7400",
415         },
416         {       /* 7450 2.0 - no doze/nap */
417                 .pvr_mask               = 0xffffffff,
418                 .pvr_value              = 0x80000200,
419                 .cpu_name               = "7450",
420                 .cpu_features           = CPU_FTRS_7450_20,
421                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
422                                           PPC_FEATURE_PPC_LE,
423                 .mmu_features           = MMU_FTR_HPTE_TABLE,
424                 .icache_bsize           = 32,
425                 .dcache_bsize           = 32,
426                 .num_pmcs               = 6,
427                 .pmc_type               = PPC_PMC_G4,
428                 .cpu_setup              = __setup_cpu_745x,
429                 .machine_check          = machine_check_generic,
430                 .platform               = "ppc7450",
431         },
432         {       /* 7450 2.1 */
433                 .pvr_mask               = 0xffffffff,
434                 .pvr_value              = 0x80000201,
435                 .cpu_name               = "7450",
436                 .cpu_features           = CPU_FTRS_7450_21,
437                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
438                                           PPC_FEATURE_PPC_LE,
439                 .mmu_features           = MMU_FTR_HPTE_TABLE,
440                 .icache_bsize           = 32,
441                 .dcache_bsize           = 32,
442                 .num_pmcs               = 6,
443                 .pmc_type               = PPC_PMC_G4,
444                 .cpu_setup              = __setup_cpu_745x,
445                 .machine_check          = machine_check_generic,
446                 .platform               = "ppc7450",
447         },
448         {       /* 7450 2.3 and newer */
449                 .pvr_mask               = 0xffff0000,
450                 .pvr_value              = 0x80000000,
451                 .cpu_name               = "7450",
452                 .cpu_features           = CPU_FTRS_7450_23,
453                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
454                                           PPC_FEATURE_PPC_LE,
455                 .mmu_features           = MMU_FTR_HPTE_TABLE,
456                 .icache_bsize           = 32,
457                 .dcache_bsize           = 32,
458                 .num_pmcs               = 6,
459                 .pmc_type               = PPC_PMC_G4,
460                 .cpu_setup              = __setup_cpu_745x,
461                 .machine_check          = machine_check_generic,
462                 .platform               = "ppc7450",
463         },
464         {       /* 7455 rev 1.x */
465                 .pvr_mask               = 0xffffff00,
466                 .pvr_value              = 0x80010100,
467                 .cpu_name               = "7455",
468                 .cpu_features           = CPU_FTRS_7455_1,
469                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
470                                           PPC_FEATURE_PPC_LE,
471                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
472                 .icache_bsize           = 32,
473                 .dcache_bsize           = 32,
474                 .num_pmcs               = 6,
475                 .pmc_type               = PPC_PMC_G4,
476                 .cpu_setup              = __setup_cpu_745x,
477                 .machine_check          = machine_check_generic,
478                 .platform               = "ppc7450",
479         },
480         {       /* 7455 rev 2.0 */
481                 .pvr_mask               = 0xffffffff,
482                 .pvr_value              = 0x80010200,
483                 .cpu_name               = "7455",
484                 .cpu_features           = CPU_FTRS_7455_20,
485                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
486                                           PPC_FEATURE_PPC_LE,
487                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
488                 .icache_bsize           = 32,
489                 .dcache_bsize           = 32,
490                 .num_pmcs               = 6,
491                 .pmc_type               = PPC_PMC_G4,
492                 .cpu_setup              = __setup_cpu_745x,
493                 .machine_check          = machine_check_generic,
494                 .platform               = "ppc7450",
495         },
496         {       /* 7455 others */
497                 .pvr_mask               = 0xffff0000,
498                 .pvr_value              = 0x80010000,
499                 .cpu_name               = "7455",
500                 .cpu_features           = CPU_FTRS_7455,
501                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
502                                           PPC_FEATURE_PPC_LE,
503                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
504                 .icache_bsize           = 32,
505                 .dcache_bsize           = 32,
506                 .num_pmcs               = 6,
507                 .pmc_type               = PPC_PMC_G4,
508                 .cpu_setup              = __setup_cpu_745x,
509                 .machine_check          = machine_check_generic,
510                 .platform               = "ppc7450",
511         },
512         {       /* 7447/7457 Rev 1.0 */
513                 .pvr_mask               = 0xffffffff,
514                 .pvr_value              = 0x80020100,
515                 .cpu_name               = "7447/7457",
516                 .cpu_features           = CPU_FTRS_7447_10,
517                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
518                                           PPC_FEATURE_PPC_LE,
519                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
520                 .icache_bsize           = 32,
521                 .dcache_bsize           = 32,
522                 .num_pmcs               = 6,
523                 .pmc_type               = PPC_PMC_G4,
524                 .cpu_setup              = __setup_cpu_745x,
525                 .machine_check          = machine_check_generic,
526                 .platform               = "ppc7450",
527         },
528         {       /* 7447/7457 Rev 1.1 */
529                 .pvr_mask               = 0xffffffff,
530                 .pvr_value              = 0x80020101,
531                 .cpu_name               = "7447/7457",
532                 .cpu_features           = CPU_FTRS_7447_10,
533                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
534                                           PPC_FEATURE_PPC_LE,
535                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
536                 .icache_bsize           = 32,
537                 .dcache_bsize           = 32,
538                 .num_pmcs               = 6,
539                 .pmc_type               = PPC_PMC_G4,
540                 .cpu_setup              = __setup_cpu_745x,
541                 .machine_check          = machine_check_generic,
542                 .platform               = "ppc7450",
543         },
544         {       /* 7447/7457 Rev 1.2 and later */
545                 .pvr_mask               = 0xffff0000,
546                 .pvr_value              = 0x80020000,
547                 .cpu_name               = "7447/7457",
548                 .cpu_features           = CPU_FTRS_7447,
549                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
550                                           PPC_FEATURE_PPC_LE,
551                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
552                 .icache_bsize           = 32,
553                 .dcache_bsize           = 32,
554                 .num_pmcs               = 6,
555                 .pmc_type               = PPC_PMC_G4,
556                 .cpu_setup              = __setup_cpu_745x,
557                 .machine_check          = machine_check_generic,
558                 .platform               = "ppc7450",
559         },
560         {       /* 7447A */
561                 .pvr_mask               = 0xffff0000,
562                 .pvr_value              = 0x80030000,
563                 .cpu_name               = "7447A",
564                 .cpu_features           = CPU_FTRS_7447A,
565                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
566                                           PPC_FEATURE_PPC_LE,
567                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
568                 .icache_bsize           = 32,
569                 .dcache_bsize           = 32,
570                 .num_pmcs               = 6,
571                 .pmc_type               = PPC_PMC_G4,
572                 .cpu_setup              = __setup_cpu_745x,
573                 .machine_check          = machine_check_generic,
574                 .platform               = "ppc7450",
575         },
576         {       /* 7448 */
577                 .pvr_mask               = 0xffff0000,
578                 .pvr_value              = 0x80040000,
579                 .cpu_name               = "7448",
580                 .cpu_features           = CPU_FTRS_7448,
581                 .cpu_user_features      = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
582                                           PPC_FEATURE_PPC_LE,
583                 .mmu_features           = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
584                 .icache_bsize           = 32,
585                 .dcache_bsize           = 32,
586                 .num_pmcs               = 6,
587                 .pmc_type               = PPC_PMC_G4,
588                 .cpu_setup              = __setup_cpu_745x,
589                 .machine_check          = machine_check_generic,
590                 .platform               = "ppc7450",
591         },
592         {       /* default match, we assume split I/D cache & TB (non-601)... */
593                 .pvr_mask               = 0x00000000,
594                 .pvr_value              = 0x00000000,
595                 .cpu_name               = "(generic PPC)",
596                 .cpu_features           = CPU_FTRS_CLASSIC32,
597                 .cpu_user_features      = COMMON_USER,
598                 .mmu_features           = MMU_FTR_HPTE_TABLE,
599                 .icache_bsize           = 32,
600                 .dcache_bsize           = 32,
601                 .machine_check          = machine_check_generic,
602                 .platform               = "ppc603",
603         },
604 #endif /* CONFIG_PPC_BOOK3S_604 */
605 };