The e500mc CPUs have a classic FPU and are not compatible with e500v1 or e500v2. This patch fixes the 32-bit CPU feature tables so that e500mc entries are not present on e500v1/e500v2 systems and vice versa.
Signed-off-by: Kyle Moffett <kyle.d.moff...@boeing.com> --- arch/powerpc/include/asm/cputable.h | 16 ++++++++++------ arch/powerpc/kernel/cputable.c | 8 +++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h index b69f255..c7c2582 100644 --- a/arch/powerpc/include/asm/cputable.h +++ b/arch/powerpc/include/asm/cputable.h @@ -480,9 +480,11 @@ enum { #ifdef CONFIG_E200 CPU_FTRS_E200 | #endif -#ifdef CONFIG_E500 - CPU_FTRS_E500 | CPU_FTRS_E500_2 | CPU_FTRS_E500MC | - CPU_FTRS_E5500 | +#ifdef CONFIG_FSL_E500_V1_V2 + CPU_FTRS_E500 | CPU_FTRS_E500_2 | +#endif +#ifdef CONFIG_FSL_E500MC + CPU_FTRS_E500MC | CPU_FTRS_E5500 | #endif 0, }; @@ -525,9 +527,11 @@ enum { #ifdef CONFIG_FSL_E200 CPU_FTRS_E200 & #endif -#ifdef CONFIG_E500 - CPU_FTRS_E500 & CPU_FTRS_E500_2 & CPU_FTRS_E500MC & - CPU_FTRS_E5500 & +#ifdef CONFIG_FSL_E500_V1_V2 + CPU_FTRS_E500 & CPU_FTRS_E500_2 & +#endif +#ifdef CONFIG_FSL_E500MC + CPU_FTRS_E500MC & CPU_FTRS_E5500 & #endif CPU_FTRS_POSSIBLE, }; diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index e5b142c..a6f2544 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c @@ -1917,8 +1917,7 @@ static struct cpu_spec __initdata cpu_specs[] = { } #endif /* CONFIG_FSL_E200 */ #endif /* CONFIG_PPC32 */ -#ifdef CONFIG_E500 -#ifdef CONFIG_PPC32 +#ifdef CONFIG_FSL_E500_V1_V2 { /* e500 */ .pvr_mask = 0xffff0000, .pvr_value = 0x80200000, @@ -1956,6 +1955,8 @@ static struct cpu_spec __initdata cpu_specs[] = { .machine_check = machine_check_e500, .platform = "ppc8548", }, +#endif /* CONFIG_FSL_E500_V1_V2 */ +#ifdef CONFIG_FSL_E500MC { /* e500mc */ .pvr_mask = 0xffff0000, .pvr_value = 0x80230000, @@ -1973,7 +1974,8 @@ static struct cpu_spec __initdata cpu_specs[] = { .machine_check = machine_check_e500mc, .platform = "ppce500mc", }, -#endif /* CONFIG_PPC32 */ +#endif /* CONFIG_FSL_E500MC */ +#ifdef CONFIG_E500 /* FIXME */ { /* e5500 */ .pvr_mask = 0xffff0000, .pvr_value = 0x80240000, -- 1.7.2.5 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev