|
@@ -382,10 +382,12 @@ extern const char *powerpc_base_platform;
|
|
#define CPU_FTRS_E500_2 (CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | \
|
|
#define CPU_FTRS_E500_2 (CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | \
|
|
CPU_FTR_SPE_COMP | CPU_FTR_MAYBE_CAN_NAP | \
|
|
CPU_FTR_SPE_COMP | CPU_FTR_MAYBE_CAN_NAP | \
|
|
CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE)
|
|
CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE)
|
|
-#define CPU_FTRS_E500MC (CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | \
|
|
|
|
- CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_NODSISRALIGN | \
|
|
|
|
|
|
+#define CPU_FTRS_E500MC (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | \
|
|
CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \
|
|
CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \
|
|
CPU_FTR_DBELL)
|
|
CPU_FTR_DBELL)
|
|
|
|
+#define CPU_FTRS_E5500 (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | \
|
|
|
|
+ CPU_FTR_L2CSR | CPU_FTR_LWSYNC | CPU_FTR_NOEXECUTE | \
|
|
|
|
+ CPU_FTR_DBELL | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD)
|
|
#define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
|
|
#define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
|
|
|
|
|
|
/* 64-bit CPUs */
|
|
/* 64-bit CPUs */
|
|
@@ -435,11 +437,15 @@ extern const char *powerpc_base_platform;
|
|
#define CPU_FTRS_COMPATIBLE (CPU_FTR_USE_TB | CPU_FTR_PPCAS_ARCH_V2)
|
|
#define CPU_FTRS_COMPATIBLE (CPU_FTR_USE_TB | CPU_FTR_PPCAS_ARCH_V2)
|
|
|
|
|
|
#ifdef __powerpc64__
|
|
#ifdef __powerpc64__
|
|
|
|
+#ifdef CONFIG_PPC_BOOK3E
|
|
|
|
+#define CPU_FTRS_POSSIBLE (CPU_FTRS_E5500)
|
|
|
|
+#else
|
|
#define CPU_FTRS_POSSIBLE \
|
|
#define CPU_FTRS_POSSIBLE \
|
|
(CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \
|
|
(CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \
|
|
CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \
|
|
CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \
|
|
CPU_FTRS_POWER7 | CPU_FTRS_CELL | CPU_FTRS_PA6T | \
|
|
CPU_FTRS_POWER7 | CPU_FTRS_CELL | CPU_FTRS_PA6T | \
|
|
CPU_FTR_1T_SEGMENT | CPU_FTR_VSX)
|
|
CPU_FTR_1T_SEGMENT | CPU_FTR_VSX)
|
|
|
|
+#endif
|
|
#else
|
|
#else
|
|
enum {
|
|
enum {
|
|
CPU_FTRS_POSSIBLE =
|
|
CPU_FTRS_POSSIBLE =
|
|
@@ -473,16 +479,21 @@ enum {
|
|
#endif
|
|
#endif
|
|
#ifdef CONFIG_E500
|
|
#ifdef CONFIG_E500
|
|
CPU_FTRS_E500 | CPU_FTRS_E500_2 | CPU_FTRS_E500MC |
|
|
CPU_FTRS_E500 | CPU_FTRS_E500_2 | CPU_FTRS_E500MC |
|
|
|
|
+ CPU_FTRS_E5500 |
|
|
#endif
|
|
#endif
|
|
0,
|
|
0,
|
|
};
|
|
};
|
|
#endif /* __powerpc64__ */
|
|
#endif /* __powerpc64__ */
|
|
|
|
|
|
#ifdef __powerpc64__
|
|
#ifdef __powerpc64__
|
|
|
|
+#ifdef CONFIG_PPC_BOOK3E
|
|
|
|
+#define CPU_FTRS_ALWAYS (CPU_FTRS_E5500)
|
|
|
|
+#else
|
|
#define CPU_FTRS_ALWAYS \
|
|
#define CPU_FTRS_ALWAYS \
|
|
(CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \
|
|
(CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \
|
|
CPU_FTRS_PPC970 & CPU_FTRS_POWER5 & CPU_FTRS_POWER6 & \
|
|
CPU_FTRS_PPC970 & CPU_FTRS_POWER5 & CPU_FTRS_POWER6 & \
|
|
CPU_FTRS_POWER7 & CPU_FTRS_CELL & CPU_FTRS_PA6T & CPU_FTRS_POSSIBLE)
|
|
CPU_FTRS_POWER7 & CPU_FTRS_CELL & CPU_FTRS_PA6T & CPU_FTRS_POSSIBLE)
|
|
|
|
+#endif
|
|
#else
|
|
#else
|
|
enum {
|
|
enum {
|
|
CPU_FTRS_ALWAYS =
|
|
CPU_FTRS_ALWAYS =
|
|
@@ -513,6 +524,7 @@ enum {
|
|
#endif
|
|
#endif
|
|
#ifdef CONFIG_E500
|
|
#ifdef CONFIG_E500
|
|
CPU_FTRS_E500 & CPU_FTRS_E500_2 & CPU_FTRS_E500MC &
|
|
CPU_FTRS_E500 & CPU_FTRS_E500_2 & CPU_FTRS_E500MC &
|
|
|
|
+ CPU_FTRS_E5500 &
|
|
#endif
|
|
#endif
|
|
CPU_FTRS_POSSIBLE,
|
|
CPU_FTRS_POSSIBLE,
|
|
};
|
|
};
|