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