aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2014-07-09 22:29:18 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-07-28 00:09:23 -0400
commit468a33028edd62549ad3c4dcbc23dd0311c67832 (patch)
treef6686bc46059eee8a9974bd84ce813fcb760ad7a
parent2061f7beaac8e67e69e6479c9ebf42f89f152aaf (diff)
powerpc: Drop support for pre-POWER4 cpus
We inadvertently broke power3 support back in 3.4 with commit f5339277eb8d "powerpc: Remove FW_FEATURE ISERIES from arch code". No one noticed until at least 3.9. By then we'd also broken it with the optimised memcpy, copy_to/from_user and clear_user routines. We don't want to add any more complexity to those just to support ancient cpus, so it seems like it's a good time to drop support for power3 and earlier. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r--arch/powerpc/include/asm/cputable.h18
-rw-r--r--arch/powerpc/kernel/cputable.c90
2 files changed, 6 insertions, 102 deletions
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h
index 0fdd7eece6d9..4b132cf48a4f 100644
--- a/arch/powerpc/include/asm/cputable.h
+++ b/arch/powerpc/include/asm/cputable.h
@@ -400,11 +400,6 @@ extern const char *powerpc_base_platform;
400#define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN) 400#define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN)
401 401
402/* 64-bit CPUs */ 402/* 64-bit CPUs */
403#define CPU_FTRS_POWER3 (CPU_FTR_USE_TB | \
404 CPU_FTR_IABR | CPU_FTR_PPC_LE)
405#define CPU_FTRS_RS64 (CPU_FTR_USE_TB | \
406 CPU_FTR_IABR | \
407 CPU_FTR_MMCRA | CPU_FTR_CTRL)
408#define CPU_FTRS_POWER4 (CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \ 403#define CPU_FTRS_POWER4 (CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \
409 CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ 404 CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \
410 CPU_FTR_MMCRA | CPU_FTR_CP_USE_DCBTZ | \ 405 CPU_FTR_MMCRA | CPU_FTR_CP_USE_DCBTZ | \
@@ -467,10 +462,9 @@ extern const char *powerpc_base_platform;
467#define CPU_FTRS_POSSIBLE (CPU_FTRS_E6500 | CPU_FTRS_E5500 | CPU_FTRS_A2) 462#define CPU_FTRS_POSSIBLE (CPU_FTRS_E6500 | CPU_FTRS_E5500 | CPU_FTRS_A2)
468#else 463#else
469#define CPU_FTRS_POSSIBLE \ 464#define CPU_FTRS_POSSIBLE \
470 (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ 465 (CPU_FTRS_POWER4 | CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | \
471 CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \ 466 CPU_FTRS_POWER6 | CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | \
472 CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | CPU_FTRS_POWER8 | \ 467 CPU_FTRS_POWER8 | CPU_FTRS_CELL | CPU_FTRS_PA6T | CPU_FTR_VSX)
473 CPU_FTRS_CELL | CPU_FTRS_PA6T | CPU_FTR_VSX)
474#endif 468#endif
475#else 469#else
476enum { 470enum {
@@ -518,9 +512,9 @@ enum {
518#define CPU_FTRS_ALWAYS (CPU_FTRS_E6500 & CPU_FTRS_E5500 & CPU_FTRS_A2) 512#define CPU_FTRS_ALWAYS (CPU_FTRS_E6500 & CPU_FTRS_E5500 & CPU_FTRS_A2)
519#else 513#else
520#define CPU_FTRS_ALWAYS \ 514#define CPU_FTRS_ALWAYS \
521 (CPU_FTRS_POWER3 & CPU_FTRS_RS64 & CPU_FTRS_POWER4 & \ 515 (CPU_FTRS_POWER4 & CPU_FTRS_PPC970 & CPU_FTRS_POWER5 & \
522 CPU_FTRS_PPC970 & CPU_FTRS_POWER5 & CPU_FTRS_POWER6 & \ 516 CPU_FTRS_POWER6 & CPU_FTRS_POWER7 & CPU_FTRS_CELL & \
523 CPU_FTRS_POWER7 & CPU_FTRS_CELL & CPU_FTRS_PA6T & CPU_FTRS_POSSIBLE) 517 CPU_FTRS_PA6T & CPU_FTRS_POSSIBLE)
524#endif 518#endif
525#else 519#else
526enum { 520enum {
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 0c157642c2a1..4fb0bb2ac885 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -123,96 +123,6 @@ extern void __restore_cpu_e6500(void);
123 123
124static struct cpu_spec __initdata cpu_specs[] = { 124static struct cpu_spec __initdata cpu_specs[] = {
125#ifdef CONFIG_PPC_BOOK3S_64 125#ifdef CONFIG_PPC_BOOK3S_64
126 { /* Power3 */
127 .pvr_mask = 0xffff0000,
128 .pvr_value = 0x00400000,
129 .cpu_name = "POWER3 (630)",
130 .cpu_features = CPU_FTRS_POWER3,
131 .cpu_user_features = COMMON_USER_PPC64|PPC_FEATURE_PPC_LE,
132 .mmu_features = MMU_FTR_HPTE_TABLE,
133 .icache_bsize = 128,
134 .dcache_bsize = 128,
135 .num_pmcs = 8,
136 .pmc_type = PPC_PMC_IBM,
137 .oprofile_cpu_type = "ppc64/power3",
138 .oprofile_type = PPC_OPROFILE_RS64,
139 .platform = "power3",
140 },
141 { /* Power3+ */
142 .pvr_mask = 0xffff0000,
143 .pvr_value = 0x00410000,
144 .cpu_name = "POWER3 (630+)",
145 .cpu_features = CPU_FTRS_POWER3,
146 .cpu_user_features = COMMON_USER_PPC64|PPC_FEATURE_PPC_LE,
147 .mmu_features = MMU_FTR_HPTE_TABLE,
148 .icache_bsize = 128,
149 .dcache_bsize = 128,
150 .num_pmcs = 8,
151 .pmc_type = PPC_PMC_IBM,
152 .oprofile_cpu_type = "ppc64/power3",
153 .oprofile_type = PPC_OPROFILE_RS64,
154 .platform = "power3",
155 },
156 { /* Northstar */
157 .pvr_mask = 0xffff0000,
158 .pvr_value = 0x00330000,
159 .cpu_name = "RS64-II (northstar)",
160 .cpu_features = CPU_FTRS_RS64,
161 .cpu_user_features = COMMON_USER_PPC64,
162 .mmu_features = MMU_FTR_HPTE_TABLE,
163 .icache_bsize = 128,
164 .dcache_bsize = 128,
165 .num_pmcs = 8,
166 .pmc_type = PPC_PMC_IBM,
167 .oprofile_cpu_type = "ppc64/rs64",
168 .oprofile_type = PPC_OPROFILE_RS64,
169 .platform = "rs64",
170 },
171 { /* Pulsar */
172 .pvr_mask = 0xffff0000,
173 .pvr_value = 0x00340000,
174 .cpu_name = "RS64-III (pulsar)",
175 .cpu_features = CPU_FTRS_RS64,
176 .cpu_user_features = COMMON_USER_PPC64,
177 .mmu_features = MMU_FTR_HPTE_TABLE,
178 .icache_bsize = 128,
179 .dcache_bsize = 128,
180 .num_pmcs = 8,
181 .pmc_type = PPC_PMC_IBM,
182 .oprofile_cpu_type = "ppc64/rs64",
183 .oprofile_type = PPC_OPROFILE_RS64,
184 .platform = "rs64",
185 },
186 { /* I-star */
187 .pvr_mask = 0xffff0000,
188 .pvr_value = 0x00360000,
189 .cpu_name = "RS64-III (icestar)",
190 .cpu_features = CPU_FTRS_RS64,
191 .cpu_user_features = COMMON_USER_PPC64,
192 .mmu_features = MMU_FTR_HPTE_TABLE,
193 .icache_bsize = 128,
194 .dcache_bsize = 128,
195 .num_pmcs = 8,
196 .pmc_type = PPC_PMC_IBM,
197 .oprofile_cpu_type = "ppc64/rs64",
198 .oprofile_type = PPC_OPROFILE_RS64,
199 .platform = "rs64",
200 },
201 { /* S-star */
202 .pvr_mask = 0xffff0000,
203 .pvr_value = 0x00370000,
204 .cpu_name = "RS64-IV (sstar)",
205 .cpu_features = CPU_FTRS_RS64,
206 .cpu_user_features = COMMON_USER_PPC64,
207 .mmu_features = MMU_FTR_HPTE_TABLE,
208 .icache_bsize = 128,
209 .dcache_bsize = 128,
210 .num_pmcs = 8,
211 .pmc_type = PPC_PMC_IBM,
212 .oprofile_cpu_type = "ppc64/rs64",
213 .oprofile_type = PPC_OPROFILE_RS64,
214 .platform = "rs64",
215 },
216 { /* Power4 */ 126 { /* Power4 */
217 .pvr_mask = 0xffff0000, 127 .pvr_mask = 0xffff0000,
218 .pvr_value = 0x00350000, 128 .pvr_value = 0x00350000,