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