1d7216567SChristophe Leroy /* SPDX-License-Identifier: GPL-2.0-or-later */ 2d7216567SChristophe Leroy /* 3d7216567SChristophe Leroy * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org) 4d7216567SChristophe Leroy * 5d7216567SChristophe Leroy * Modifications for ppc64: 6d7216567SChristophe Leroy * Copyright (C) 2003 Dave Engebretsen <engebret@us.ibm.com> 7d7216567SChristophe Leroy */ 8d7216567SChristophe Leroy 9d7216567SChristophe Leroy #ifdef CONFIG_PPC64 10d7216567SChristophe Leroy #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ 11*7fec35ffSDavid Engraf PPC_FEATURE_HAS_FPU | PPC_FEATURE_64 | \ 12*7fec35ffSDavid Engraf PPC_FEATURE_BOOKE) 13d7216567SChristophe Leroy #else 14d7216567SChristophe Leroy #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ 15d7216567SChristophe Leroy PPC_FEATURE_BOOKE) 16d7216567SChristophe Leroy #endif 17d7216567SChristophe Leroy 18d7216567SChristophe Leroy static struct cpu_spec cpu_specs[] __initdata = { 19d7216567SChristophe Leroy #ifdef CONFIG_PPC32 20d7216567SChristophe Leroy { /* e500mc */ 21d7216567SChristophe Leroy .pvr_mask = 0xffff0000, 22d7216567SChristophe Leroy .pvr_value = 0x80230000, 23d7216567SChristophe Leroy .cpu_name = "e500mc", 24d7216567SChristophe Leroy .cpu_features = CPU_FTRS_E500MC, 25d7216567SChristophe Leroy .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, 26d7216567SChristophe Leroy .cpu_user_features2 = PPC_FEATURE2_ISEL, 27d7216567SChristophe Leroy .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX, 28d7216567SChristophe Leroy .icache_bsize = 64, 29d7216567SChristophe Leroy .dcache_bsize = 64, 30d7216567SChristophe Leroy .num_pmcs = 4, 31d7216567SChristophe Leroy .cpu_setup = __setup_cpu_e500mc, 32d7216567SChristophe Leroy .machine_check = machine_check_e500mc, 33d7216567SChristophe Leroy .platform = "ppce500mc", 34d7216567SChristophe Leroy .cpu_down_flush = cpu_down_flush_e500mc, 35d7216567SChristophe Leroy }, 36d7216567SChristophe Leroy #endif /* CONFIG_PPC32 */ 37d7216567SChristophe Leroy { /* e5500 */ 38d7216567SChristophe Leroy .pvr_mask = 0xffff0000, 39d7216567SChristophe Leroy .pvr_value = 0x80240000, 40d7216567SChristophe Leroy .cpu_name = "e5500", 41d7216567SChristophe Leroy .cpu_features = CPU_FTRS_E5500, 42d7216567SChristophe Leroy .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, 43d7216567SChristophe Leroy .cpu_user_features2 = PPC_FEATURE2_ISEL, 44d7216567SChristophe Leroy .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX, 45d7216567SChristophe Leroy .icache_bsize = 64, 46d7216567SChristophe Leroy .dcache_bsize = 64, 47d7216567SChristophe Leroy .num_pmcs = 4, 48d7216567SChristophe Leroy .cpu_setup = __setup_cpu_e5500, 49d7216567SChristophe Leroy #ifndef CONFIG_PPC32 50d7216567SChristophe Leroy .cpu_restore = __restore_cpu_e5500, 51d7216567SChristophe Leroy #endif 52d7216567SChristophe Leroy .machine_check = machine_check_e500mc, 53d7216567SChristophe Leroy .platform = "ppce5500", 54d7216567SChristophe Leroy .cpu_down_flush = cpu_down_flush_e5500, 55d7216567SChristophe Leroy }, 56d7216567SChristophe Leroy { /* e6500 */ 57d7216567SChristophe Leroy .pvr_mask = 0xffff0000, 58d7216567SChristophe Leroy .pvr_value = 0x80400000, 59d7216567SChristophe Leroy .cpu_name = "e6500", 60d7216567SChristophe Leroy .cpu_features = CPU_FTRS_E6500, 61d7216567SChristophe Leroy .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU | 62d7216567SChristophe Leroy PPC_FEATURE_HAS_ALTIVEC_COMP, 63d7216567SChristophe Leroy .cpu_user_features2 = PPC_FEATURE2_ISEL, 64d7216567SChristophe Leroy .mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX, 65d7216567SChristophe Leroy .icache_bsize = 64, 66d7216567SChristophe Leroy .dcache_bsize = 64, 67d7216567SChristophe Leroy .num_pmcs = 6, 68d7216567SChristophe Leroy .cpu_setup = __setup_cpu_e6500, 69d7216567SChristophe Leroy #ifndef CONFIG_PPC32 70d7216567SChristophe Leroy .cpu_restore = __restore_cpu_e6500, 71d7216567SChristophe Leroy #endif 72d7216567SChristophe Leroy .machine_check = machine_check_e500mc, 73d7216567SChristophe Leroy .platform = "ppce6500", 74d7216567SChristophe Leroy .cpu_down_flush = cpu_down_flush_e6500, 75d7216567SChristophe Leroy }, 76d7216567SChristophe Leroy }; 77