@@ -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,
};
@@ -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,
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.Moffett@boeing.com> --- arch/powerpc/include/asm/cputable.h | 16 ++++++++++------ arch/powerpc/kernel/cputable.c | 8 +++++--- 2 files changed, 15 insertions(+), 9 deletions(-)