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 }; 606