root/arch/powerpc/kernel/cpu_specs_book3s_32.h
/* 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 */
};