e500v1/v2 and e500mc are said to be mutually exclusive in Kconfig.

Split e500 cpu_specs[] and then restrict the non e500mc to PPC32
which is then 85xx.

Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
---
 arch/powerpc/kernel/cpu_specs.h               |  6 +-
 arch/powerpc/kernel/cpu_specs_85xx.h          | 60 +++++++++++++++++++
 .../{cpu_specs_e500.h => cpu_specs_e500mc.h}  | 57 ------------------
 3 files changed, 64 insertions(+), 59 deletions(-)
 create mode 100644 arch/powerpc/kernel/cpu_specs_85xx.h
 rename arch/powerpc/kernel/{cpu_specs_e500.h => cpu_specs_e500mc.h} (58%)

diff --git a/arch/powerpc/kernel/cpu_specs.h b/arch/powerpc/kernel/cpu_specs.h
index 3de0b70d7203..2f5168c09be1 100644
--- a/arch/powerpc/kernel/cpu_specs.h
+++ b/arch/powerpc/kernel/cpu_specs.h
@@ -14,8 +14,10 @@
 #include "cpu_specs_8xx.h"
 #endif
 
-#ifdef CONFIG_E500
-#include "cpu_specs_e500.h"
+#ifdef CONFIG_PPC_E500MC
+#include "cpu_specs_e500mc.h"
+#elif defined(CONFIG_PPC_85xx)
+#include "cpu_specs_85xx.h"
 #endif
 
 #ifdef CONFIG_PPC_BOOK3S_32
diff --git a/arch/powerpc/kernel/cpu_specs_85xx.h 
b/arch/powerpc/kernel/cpu_specs_85xx.h
new file mode 100644
index 000000000000..f5534311cfc0
--- /dev/null
+++ b/arch/powerpc/kernel/cpu_specs_85xx.h
@@ -0,0 +1,60 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ *  Copyright (C) 2001 Ben. Herrenschmidt (b...@kernel.crashing.org)
+ */
+
+#define COMMON_USER_BOOKE      (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
+                                PPC_FEATURE_BOOKE)
+
+static struct cpu_spec __initdata cpu_specs[] = {
+       {       /* e500 */
+               .pvr_mask               = 0xffff0000,
+               .pvr_value              = 0x80200000,
+               .cpu_name               = "e500",
+               .cpu_features           = CPU_FTRS_E500,
+               .cpu_user_features      = COMMON_USER_BOOKE |
+                       PPC_FEATURE_HAS_SPE_COMP |
+                       PPC_FEATURE_HAS_EFP_SINGLE_COMP,
+               .cpu_user_features2     = PPC_FEATURE2_ISEL,
+               .mmu_features           = MMU_FTR_TYPE_FSL_E,
+               .icache_bsize           = 32,
+               .dcache_bsize           = 32,
+               .num_pmcs               = 4,
+               .cpu_setup              = __setup_cpu_e500v1,
+               .machine_check          = machine_check_e500,
+               .platform               = "ppc8540",
+       },
+       {       /* e500v2 */
+               .pvr_mask               = 0xffff0000,
+               .pvr_value              = 0x80210000,
+               .cpu_name               = "e500v2",
+               .cpu_features           = CPU_FTRS_E500_2,
+               .cpu_user_features      = COMMON_USER_BOOKE |
+                       PPC_FEATURE_HAS_SPE_COMP |
+                       PPC_FEATURE_HAS_EFP_SINGLE_COMP |
+                       PPC_FEATURE_HAS_EFP_DOUBLE_COMP,
+               .cpu_user_features2     = PPC_FEATURE2_ISEL,
+               .mmu_features           = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS,
+               .icache_bsize           = 32,
+               .dcache_bsize           = 32,
+               .num_pmcs               = 4,
+               .cpu_setup              = __setup_cpu_e500v2,
+               .machine_check          = machine_check_e500,
+               .platform               = "ppc8548",
+               .cpu_down_flush         = cpu_down_flush_e500v2,
+       },
+       {       /* default match */
+               .pvr_mask               = 0x00000000,
+               .pvr_value              = 0x00000000,
+               .cpu_name               = "(generic E500 PPC)",
+               .cpu_features           = CPU_FTRS_E500,
+               .cpu_user_features      = COMMON_USER_BOOKE |
+                       PPC_FEATURE_HAS_SPE_COMP |
+                       PPC_FEATURE_HAS_EFP_SINGLE_COMP,
+               .mmu_features           = MMU_FTR_TYPE_FSL_E,
+               .icache_bsize           = 32,
+               .dcache_bsize           = 32,
+               .machine_check          = machine_check_e500,
+               .platform               = "powerpc",
+       }
+};
diff --git a/arch/powerpc/kernel/cpu_specs_e500.h 
b/arch/powerpc/kernel/cpu_specs_e500mc.h
similarity index 58%
rename from arch/powerpc/kernel/cpu_specs_e500.h
rename to arch/powerpc/kernel/cpu_specs_e500mc.h
index 92d165741efc..2f6586f04cef 100644
--- a/arch/powerpc/kernel/cpu_specs_e500.h
+++ b/arch/powerpc/kernel/cpu_specs_e500mc.h
@@ -16,44 +16,6 @@
 
 static struct cpu_spec __initdata cpu_specs[] = {
 #ifdef CONFIG_PPC32
-#ifndef CONFIG_PPC_E500MC
-       {       /* e500 */
-               .pvr_mask               = 0xffff0000,
-               .pvr_value              = 0x80200000,
-               .cpu_name               = "e500",
-               .cpu_features           = CPU_FTRS_E500,
-               .cpu_user_features      = COMMON_USER_BOOKE |
-                       PPC_FEATURE_HAS_SPE_COMP |
-                       PPC_FEATURE_HAS_EFP_SINGLE_COMP,
-               .cpu_user_features2     = PPC_FEATURE2_ISEL,
-               .mmu_features           = MMU_FTR_TYPE_FSL_E,
-               .icache_bsize           = 32,
-               .dcache_bsize           = 32,
-               .num_pmcs               = 4,
-               .cpu_setup              = __setup_cpu_e500v1,
-               .machine_check          = machine_check_e500,
-               .platform               = "ppc8540",
-       },
-       {       /* e500v2 */
-               .pvr_mask               = 0xffff0000,
-               .pvr_value              = 0x80210000,
-               .cpu_name               = "e500v2",
-               .cpu_features           = CPU_FTRS_E500_2,
-               .cpu_user_features      = COMMON_USER_BOOKE |
-                       PPC_FEATURE_HAS_SPE_COMP |
-                       PPC_FEATURE_HAS_EFP_SINGLE_COMP |
-                       PPC_FEATURE_HAS_EFP_DOUBLE_COMP,
-               .cpu_user_features2     = PPC_FEATURE2_ISEL,
-               .mmu_features           = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS,
-               .icache_bsize           = 32,
-               .dcache_bsize           = 32,
-               .num_pmcs               = 4,
-               .cpu_setup              = __setup_cpu_e500v2,
-               .machine_check          = machine_check_e500,
-               .platform               = "ppc8548",
-               .cpu_down_flush         = cpu_down_flush_e500v2,
-       },
-#else
        {       /* e500mc */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x80230000,
@@ -71,9 +33,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
                .platform               = "ppce500mc",
                .cpu_down_flush         = cpu_down_flush_e500mc,
        },
-#endif /* CONFIG_PPC_E500MC */
 #endif /* CONFIG_PPC32 */
-#ifdef CONFIG_PPC_E500MC
        {       /* e5500 */
                .pvr_mask               = 0xffff0000,
                .pvr_value              = 0x80240000,
@@ -115,21 +75,4 @@ static struct cpu_spec __initdata cpu_specs[] = {
                .platform               = "ppce6500",
                .cpu_down_flush         = cpu_down_flush_e6500,
        },
-#endif /* CONFIG_PPC_E500MC */
-#ifdef CONFIG_PPC32
-       {       /* default match */
-               .pvr_mask               = 0x00000000,
-               .pvr_value              = 0x00000000,
-               .cpu_name               = "(generic E500 PPC)",
-               .cpu_features           = CPU_FTRS_E500,
-               .cpu_user_features      = COMMON_USER_BOOKE |
-                       PPC_FEATURE_HAS_SPE_COMP |
-                       PPC_FEATURE_HAS_EFP_SINGLE_COMP,
-               .mmu_features           = MMU_FTR_TYPE_FSL_E,
-               .icache_bsize           = 32,
-               .dcache_bsize           = 32,
-               .machine_check          = machine_check_e500,
-               .platform               = "powerpc",
-       }
-#endif /* CONFIG_PPC32 */
 };
-- 
2.37.1

Reply via email to