1*d7216567SChristophe Leroy /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*d7216567SChristophe Leroy /* 3*d7216567SChristophe Leroy * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org) 4*d7216567SChristophe Leroy */ 5*d7216567SChristophe Leroy 6*d7216567SChristophe Leroy #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ 7*d7216567SChristophe Leroy PPC_FEATURE_BOOKE) 8*d7216567SChristophe Leroy 9*d7216567SChristophe Leroy static struct cpu_spec cpu_specs[] __initdata = { 10*d7216567SChristophe Leroy { /* e500 */ 11*d7216567SChristophe Leroy .pvr_mask = 0xffff0000, 12*d7216567SChristophe Leroy .pvr_value = 0x80200000, 13*d7216567SChristophe Leroy .cpu_name = "e500", 14*d7216567SChristophe Leroy .cpu_features = CPU_FTRS_E500, 15*d7216567SChristophe Leroy .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_SPE_COMP | 16*d7216567SChristophe Leroy PPC_FEATURE_HAS_EFP_SINGLE_COMP, 17*d7216567SChristophe Leroy .cpu_user_features2 = PPC_FEATURE2_ISEL, 18*d7216567SChristophe Leroy .mmu_features = MMU_FTR_TYPE_FSL_E, 19*d7216567SChristophe Leroy .icache_bsize = 32, 20*d7216567SChristophe Leroy .dcache_bsize = 32, 21*d7216567SChristophe Leroy .num_pmcs = 4, 22*d7216567SChristophe Leroy .cpu_setup = __setup_cpu_e500v1, 23*d7216567SChristophe Leroy .machine_check = machine_check_e500, 24*d7216567SChristophe Leroy .platform = "ppc8540", 25*d7216567SChristophe Leroy }, 26*d7216567SChristophe Leroy { /* e500v2 */ 27*d7216567SChristophe Leroy .pvr_mask = 0xffff0000, 28*d7216567SChristophe Leroy .pvr_value = 0x80210000, 29*d7216567SChristophe Leroy .cpu_name = "e500v2", 30*d7216567SChristophe Leroy .cpu_features = CPU_FTRS_E500_2, 31*d7216567SChristophe Leroy .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_SPE_COMP | 32*d7216567SChristophe Leroy PPC_FEATURE_HAS_EFP_SINGLE_COMP | 33*d7216567SChristophe Leroy PPC_FEATURE_HAS_EFP_DOUBLE_COMP, 34*d7216567SChristophe Leroy .cpu_user_features2 = PPC_FEATURE2_ISEL, 35*d7216567SChristophe Leroy .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS, 36*d7216567SChristophe Leroy .icache_bsize = 32, 37*d7216567SChristophe Leroy .dcache_bsize = 32, 38*d7216567SChristophe Leroy .num_pmcs = 4, 39*d7216567SChristophe Leroy .cpu_setup = __setup_cpu_e500v2, 40*d7216567SChristophe Leroy .machine_check = machine_check_e500, 41*d7216567SChristophe Leroy .platform = "ppc8548", 42*d7216567SChristophe Leroy .cpu_down_flush = cpu_down_flush_e500v2, 43*d7216567SChristophe Leroy }, 44*d7216567SChristophe Leroy { /* default match */ 45*d7216567SChristophe Leroy .pvr_mask = 0x00000000, 46*d7216567SChristophe Leroy .pvr_value = 0x00000000, 47*d7216567SChristophe Leroy .cpu_name = "(generic E500 PPC)", 48*d7216567SChristophe Leroy .cpu_features = CPU_FTRS_E500, 49*d7216567SChristophe Leroy .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_SPE_COMP | 50*d7216567SChristophe Leroy PPC_FEATURE_HAS_EFP_SINGLE_COMP, 51*d7216567SChristophe Leroy .mmu_features = MMU_FTR_TYPE_FSL_E, 52*d7216567SChristophe Leroy .icache_bsize = 32, 53*d7216567SChristophe Leroy .dcache_bsize = 32, 54*d7216567SChristophe Leroy .machine_check = machine_check_e500, 55*d7216567SChristophe Leroy .platform = "powerpc", 56*d7216567SChristophe Leroy } 57*d7216567SChristophe Leroy }; 58