GNU Linux-libre 6.7.9-gnu
[releases.git] / arch / powerpc / kernel / cpu_specs_e500mc.h
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 };