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