e320a76db4
cpu_specs[] is full of #ifdefs depending on the different types of CPU. CPUs are mutually exclusive, it is therefore possible to split cpu_specs[] into smaller more readable pieces. Create cpu_specs_XXX.h that will each be dedicated on one of the following mutually exclusive families: - 40x - 44x - 47x - 8xx - e500 - book3s/32 - book3s/64 In book3s/32, the block for 603 has been moved in front in order to not have two 604 blocks. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> [mpe: Fix CONFIG_47x to be CONFIG_PPC_47x, tweak some formatting] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/a44b865e0318286155273b10cdf524ab697928c1.1663606875.git.christophe.leroy@csgroup.eu
606 lines
18 KiB
C
606 lines
18 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
|
|
*/
|
|
|
|
#define COMMON_USER (PPC_FEATURE_32 | PPC_FEATURE_HAS_FPU | \
|
|
PPC_FEATURE_HAS_MMU)
|
|
|
|
static struct cpu_spec cpu_specs[] __initdata = {
|
|
#ifdef CONFIG_PPC_BOOK3S_603
|
|
{ /* 603 */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x00030000,
|
|
.cpu_name = "603",
|
|
.cpu_features = CPU_FTRS_603,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = 0,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc603",
|
|
},
|
|
{ /* 603e */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x00060000,
|
|
.cpu_name = "603e",
|
|
.cpu_features = CPU_FTRS_603,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = 0,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc603",
|
|
},
|
|
{ /* 603ev */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x00070000,
|
|
.cpu_name = "603ev",
|
|
.cpu_features = CPU_FTRS_603,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = 0,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc603",
|
|
},
|
|
{ /* 82xx (8240, 8245, 8260 are all 603e cores) */
|
|
.pvr_mask = 0x7fff0000,
|
|
.pvr_value = 0x00810000,
|
|
.cpu_name = "82xx",
|
|
.cpu_features = CPU_FTRS_82XX,
|
|
.cpu_user_features = COMMON_USER,
|
|
.mmu_features = 0,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc603",
|
|
},
|
|
{ /* All G2_LE (603e core, plus some) have the same pvr */
|
|
.pvr_mask = 0x7fff0000,
|
|
.pvr_value = 0x00820000,
|
|
.cpu_name = "G2_LE",
|
|
.cpu_features = CPU_FTRS_G2_LE,
|
|
.cpu_user_features = COMMON_USER,
|
|
.mmu_features = MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc603",
|
|
},
|
|
#ifdef CONFIG_PPC_83xx
|
|
{ /* e300c1 (a 603e core, plus some) on 83xx */
|
|
.pvr_mask = 0x7fff0000,
|
|
.pvr_value = 0x00830000,
|
|
.cpu_name = "e300c1",
|
|
.cpu_features = CPU_FTRS_E300,
|
|
.cpu_user_features = COMMON_USER,
|
|
.mmu_features = MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_83xx,
|
|
.platform = "ppc603",
|
|
},
|
|
{ /* e300c2 (an e300c1 core, plus some, minus FPU) on 83xx */
|
|
.pvr_mask = 0x7fff0000,
|
|
.pvr_value = 0x00840000,
|
|
.cpu_name = "e300c2",
|
|
.cpu_features = CPU_FTRS_E300C2,
|
|
.cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU,
|
|
.mmu_features = MMU_FTR_USE_HIGH_BATS | MMU_FTR_NEED_DTLB_SW_LRU,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_83xx,
|
|
.platform = "ppc603",
|
|
},
|
|
{ /* e300c3 (e300c1, plus one IU, half cache size) on 83xx */
|
|
.pvr_mask = 0x7fff0000,
|
|
.pvr_value = 0x00850000,
|
|
.cpu_name = "e300c3",
|
|
.cpu_features = CPU_FTRS_E300,
|
|
.cpu_user_features = COMMON_USER,
|
|
.mmu_features = MMU_FTR_USE_HIGH_BATS | MMU_FTR_NEED_DTLB_SW_LRU,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_83xx,
|
|
.num_pmcs = 4,
|
|
.platform = "ppc603",
|
|
},
|
|
{ /* e300c4 (e300c1, plus one IU) */
|
|
.pvr_mask = 0x7fff0000,
|
|
.pvr_value = 0x00860000,
|
|
.cpu_name = "e300c4",
|
|
.cpu_features = CPU_FTRS_E300,
|
|
.cpu_user_features = COMMON_USER,
|
|
.mmu_features = MMU_FTR_USE_HIGH_BATS | MMU_FTR_NEED_DTLB_SW_LRU,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.cpu_setup = __setup_cpu_603,
|
|
.machine_check = machine_check_83xx,
|
|
.num_pmcs = 4,
|
|
.platform = "ppc603",
|
|
},
|
|
#endif
|
|
#endif /* CONFIG_PPC_BOOK3S_603 */
|
|
#ifdef CONFIG_PPC_BOOK3S_604
|
|
{ /* 604 */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x00040000,
|
|
.cpu_name = "604",
|
|
.cpu_features = CPU_FTRS_604,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 2,
|
|
.cpu_setup = __setup_cpu_604,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc604",
|
|
},
|
|
{ /* 604e */
|
|
.pvr_mask = 0xfffff000,
|
|
.pvr_value = 0x00090000,
|
|
.cpu_name = "604e",
|
|
.cpu_features = CPU_FTRS_604,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.cpu_setup = __setup_cpu_604,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc604",
|
|
},
|
|
{ /* 604r */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x00090000,
|
|
.cpu_name = "604r",
|
|
.cpu_features = CPU_FTRS_604,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.cpu_setup = __setup_cpu_604,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc604",
|
|
},
|
|
{ /* 604ev */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x000a0000,
|
|
.cpu_name = "604ev",
|
|
.cpu_features = CPU_FTRS_604,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.cpu_setup = __setup_cpu_604,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc604",
|
|
},
|
|
{ /* 740/750 (0x4202, don't support TAU ?) */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x00084202,
|
|
.cpu_name = "740/750",
|
|
.cpu_features = CPU_FTRS_740_NOTAU,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.cpu_setup = __setup_cpu_750,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750CX (80100 and 8010x?) */
|
|
.pvr_mask = 0xfffffff0,
|
|
.pvr_value = 0x00080100,
|
|
.cpu_name = "750CX",
|
|
.cpu_features = CPU_FTRS_750,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.cpu_setup = __setup_cpu_750cx,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750CX (82201 and 82202) */
|
|
.pvr_mask = 0xfffffff0,
|
|
.pvr_value = 0x00082200,
|
|
.cpu_name = "750CX",
|
|
.cpu_features = CPU_FTRS_750,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750cx,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750CXe (82214) */
|
|
.pvr_mask = 0xfffffff0,
|
|
.pvr_value = 0x00082210,
|
|
.cpu_name = "750CXe",
|
|
.cpu_features = CPU_FTRS_750,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750cx,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750CXe "Gekko" (83214) */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x00083214,
|
|
.cpu_name = "750CXe",
|
|
.cpu_features = CPU_FTRS_750,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750cx,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750CL (and "Broadway") */
|
|
.pvr_mask = 0xfffff0e0,
|
|
.pvr_value = 0x00087000,
|
|
.cpu_name = "750CL",
|
|
.cpu_features = CPU_FTRS_750CL,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 745/755 */
|
|
.pvr_mask = 0xfffff000,
|
|
.pvr_value = 0x00083000,
|
|
.cpu_name = "745/755",
|
|
.cpu_features = CPU_FTRS_750,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750FX rev 1.x */
|
|
.pvr_mask = 0xffffff00,
|
|
.pvr_value = 0x70000100,
|
|
.cpu_name = "750FX",
|
|
.cpu_features = CPU_FTRS_750FX1,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750FX rev 2.0 must disable HID0[DPM] */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x70000200,
|
|
.cpu_name = "750FX",
|
|
.cpu_features = CPU_FTRS_750FX2,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750FX (All revs except 2.0) */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x70000000,
|
|
.cpu_name = "750FX",
|
|
.cpu_features = CPU_FTRS_750FX,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750fx,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 750GX */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x70020000,
|
|
.cpu_name = "750GX",
|
|
.cpu_features = CPU_FTRS_750GX,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750fx,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 740/750 (L2CR bit need fixup for 740) */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x00080000,
|
|
.cpu_name = "740/750",
|
|
.cpu_features = CPU_FTRS_740,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_IBM,
|
|
.cpu_setup = __setup_cpu_750,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc750",
|
|
},
|
|
{ /* 7400 rev 1.1 ? (no TAU) */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x000c1101,
|
|
.cpu_name = "7400 (1.1)",
|
|
.cpu_features = CPU_FTRS_7400_NOTAU,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_7400,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7400",
|
|
},
|
|
{ /* 7400 */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x000c0000,
|
|
.cpu_name = "7400",
|
|
.cpu_features = CPU_FTRS_7400,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_7400,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7400",
|
|
},
|
|
{ /* 7410 */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x800c0000,
|
|
.cpu_name = "7410",
|
|
.cpu_features = CPU_FTRS_7400,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 4,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_7410,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7400",
|
|
},
|
|
{ /* 7450 2.0 - no doze/nap */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x80000200,
|
|
.cpu_name = "7450",
|
|
.cpu_features = CPU_FTRS_7450_20,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7450 2.1 */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x80000201,
|
|
.cpu_name = "7450",
|
|
.cpu_features = CPU_FTRS_7450_21,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7450 2.3 and newer */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x80000000,
|
|
.cpu_name = "7450",
|
|
.cpu_features = CPU_FTRS_7450_23,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7455 rev 1.x */
|
|
.pvr_mask = 0xffffff00,
|
|
.pvr_value = 0x80010100,
|
|
.cpu_name = "7455",
|
|
.cpu_features = CPU_FTRS_7455_1,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7455 rev 2.0 */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x80010200,
|
|
.cpu_name = "7455",
|
|
.cpu_features = CPU_FTRS_7455_20,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7455 others */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x80010000,
|
|
.cpu_name = "7455",
|
|
.cpu_features = CPU_FTRS_7455,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7447/7457 Rev 1.0 */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x80020100,
|
|
.cpu_name = "7447/7457",
|
|
.cpu_features = CPU_FTRS_7447_10,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7447/7457 Rev 1.1 */
|
|
.pvr_mask = 0xffffffff,
|
|
.pvr_value = 0x80020101,
|
|
.cpu_name = "7447/7457",
|
|
.cpu_features = CPU_FTRS_7447_10,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7447/7457 Rev 1.2 and later */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x80020000,
|
|
.cpu_name = "7447/7457",
|
|
.cpu_features = CPU_FTRS_7447,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7447A */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x80030000,
|
|
.cpu_name = "7447A",
|
|
.cpu_features = CPU_FTRS_7447A,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* 7448 */
|
|
.pvr_mask = 0xffff0000,
|
|
.pvr_value = 0x80040000,
|
|
.cpu_name = "7448",
|
|
.cpu_features = CPU_FTRS_7448,
|
|
.cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP |
|
|
PPC_FEATURE_PPC_LE,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE | MMU_FTR_USE_HIGH_BATS,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.num_pmcs = 6,
|
|
.pmc_type = PPC_PMC_G4,
|
|
.cpu_setup = __setup_cpu_745x,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc7450",
|
|
},
|
|
{ /* default match, we assume split I/D cache & TB (non-601)... */
|
|
.pvr_mask = 0x00000000,
|
|
.pvr_value = 0x00000000,
|
|
.cpu_name = "(generic PPC)",
|
|
.cpu_features = CPU_FTRS_CLASSIC32,
|
|
.cpu_user_features = COMMON_USER,
|
|
.mmu_features = MMU_FTR_HPTE_TABLE,
|
|
.icache_bsize = 32,
|
|
.dcache_bsize = 32,
|
|
.machine_check = machine_check_generic,
|
|
.platform = "ppc603",
|
|
},
|
|
#endif /* CONFIG_PPC_BOOK3S_604 */
|
|
};
|