powerpc/cputable: Split cpu_specs[] for mpc85xx and e500mc
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.leroy@csgroup.eu> [mpe: Tweak formatting] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/553b901ea91e393df231103da4b018e9b251b0e9.1663606876.git.christophe.leroy@csgroup.eu
This commit is contained in:
Родитель
dfc3095cec
Коммит
d7216567c6
|
@ -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
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
|
||||
*/
|
||||
|
||||
#define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
|
||||
PPC_FEATURE_BOOKE)
|
||||
|
||||
static struct cpu_spec cpu_specs[] __initdata = {
|
||||
{ /* 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",
|
||||
}
|
||||
};
|
|
@ -16,44 +16,6 @@
|
|||
|
||||
static struct cpu_spec cpu_specs[] __initdata = {
|
||||
#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,
|
||||
|
@ -61,8 +23,7 @@ static struct cpu_spec cpu_specs[] __initdata = {
|
|||
.cpu_features = CPU_FTRS_E500MC,
|
||||
.cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
|
||||
.cpu_user_features2 = PPC_FEATURE2_ISEL,
|
||||
.mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
|
||||
MMU_FTR_USE_TLBILX,
|
||||
.mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX,
|
||||
.icache_bsize = 64,
|
||||
.dcache_bsize = 64,
|
||||
.num_pmcs = 4,
|
||||
|
@ -71,9 +32,7 @@ static struct cpu_spec cpu_specs[] __initdata = {
|
|||
.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,
|
||||
|
@ -81,8 +40,7 @@ static struct cpu_spec cpu_specs[] __initdata = {
|
|||
.cpu_features = CPU_FTRS_E5500,
|
||||
.cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
|
||||
.cpu_user_features2 = PPC_FEATURE2_ISEL,
|
||||
.mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
|
||||
MMU_FTR_USE_TLBILX,
|
||||
.mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX,
|
||||
.icache_bsize = 64,
|
||||
.dcache_bsize = 64,
|
||||
.num_pmcs = 4,
|
||||
|
@ -100,10 +58,9 @@ static struct cpu_spec cpu_specs[] __initdata = {
|
|||
.cpu_name = "e6500",
|
||||
.cpu_features = CPU_FTRS_E6500,
|
||||
.cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU |
|
||||
PPC_FEATURE_HAS_ALTIVEC_COMP,
|
||||
PPC_FEATURE_HAS_ALTIVEC_COMP,
|
||||
.cpu_user_features2 = PPC_FEATURE2_ISEL,
|
||||
.mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS |
|
||||
MMU_FTR_USE_TLBILX,
|
||||
.mmu_features = MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX,
|
||||
.icache_bsize = 64,
|
||||
.dcache_bsize = 64,
|
||||
.num_pmcs = 6,
|
||||
|
@ -115,21 +72,4 @@ static struct cpu_spec cpu_specs[] __initdata = {
|
|||
.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 */
|
||||
};
|
Загрузка…
Ссылка в новой задаче