aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2007-06-12 12:30:17 -0400
committerPaul Mackerras <paulus@samba.org>2007-06-14 08:30:14 -0400
commita0ae9c7c05b969cbaffb0371f8698c54465b4c96 (patch)
tree19e3ceb1a39d73028fe0906ccbe1692616afcd50
parenteffe24bdd41ef790b30c9ac02ede3703937c6ba0 (diff)
[POWERPC] Split out CPU specific options into a new Kconfig file
A lot of the options in arch/powerpc/Kconfig deal with the CPU menu, and my next patches add more to them. Moving them to a new arch/powerpc/platforms/Kconfig.cputype file makes it easier to follow. There are no functional changes in here. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/Kconfig252
-rw-r--r--arch/powerpc/platforms/Kconfig.cputype252
2 files changed, 253 insertions, 251 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 5eaeafd30bdf..12830a77d163 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -4,12 +4,7 @@
4 4
5mainmenu "Linux/PowerPC Kernel Configuration" 5mainmenu "Linux/PowerPC Kernel Configuration"
6 6
7config PPC64 7source "arch/powerpc/platforms/Kconfig.cputype"
8 bool "64-bit kernel"
9 default n
10 help
11 This option selects whether a 32-bit or a 64-bit kernel
12 will be built.
13 8
14config PPC_PM_NEEDS_RTC_LIB 9config PPC_PM_NEEDS_RTC_LIB
15 bool 10 bool
@@ -132,123 +127,6 @@ config PPC64_SWSUSP
132 depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL)) 127 depends on PPC64 && (BROKEN || (PPC_PMAC64 && EXPERIMENTAL))
133 default y 128 default y
134 129
135menu "Processor support"
136choice
137 prompt "Processor Type"
138 depends on PPC32
139 default 6xx
140
141config CLASSIC32
142 bool "52xx/6xx/7xx/74xx"
143 select PPC_FPU
144 select 6xx
145 help
146 There are four families of PowerPC chips supported. The more common
147 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
148 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
149 embedded versions (403 and 405) and the high end 64 bit Power
150 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
151
152 This option is the catch-all for 6xx types, including some of the
153 embedded versions. Unless there is see an option for the specific
154 chip family you are using, you want this option.
155
156 You do not want this if you are building a kernel for a 64 bit
157 IBM RS/6000 or an Apple G5, choose 6xx.
158
159 If unsure, select this option
160
161 Note that the kernel runs in 32-bit mode even on 64-bit chips.
162
163config PPC_82xx
164 bool "Freescale 82xx"
165 select 6xx
166 select PPC_FPU
167
168config PPC_83xx
169 bool "Freescale 83xx"
170 select 6xx
171 select FSL_SOC
172 select 83xx
173 select PPC_FPU
174 select WANT_DEVICE_TREE
175
176config PPC_85xx
177 bool "Freescale 85xx"
178 select E500
179 select FSL_SOC
180 select 85xx
181 select WANT_DEVICE_TREE
182
183config PPC_86xx
184 bool "Freescale 86xx"
185 select 6xx
186 select FSL_SOC
187 select FSL_PCIE
188 select PPC_FPU
189 select ALTIVEC
190 help
191 The Freescale E600 SoCs have 74xx cores.
192
193config PPC_8xx
194 bool "Freescale 8xx"
195 select FSL_SOC
196 select 8xx
197
198config 40x
199 bool "AMCC 40x"
200 select PPC_DCR_NATIVE
201
202config 44x
203 bool "AMCC 44x"
204 select PPC_DCR_NATIVE
205 select WANT_DEVICE_TREE
206
207config E200
208 bool "Freescale e200"
209
210endchoice
211
212config POWER4_ONLY
213 bool "Optimize for POWER4"
214 depends on PPC64
215 default n
216 ---help---
217 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
218 The resulting binary will not work on POWER3 or RS64 processors
219 when compiled with binutils 2.15 or later.
220
221config POWER3
222 bool
223 depends on PPC64
224 default y if !POWER4_ONLY
225
226config POWER4
227 depends on PPC64
228 def_bool y
229
230config 6xx
231 bool
232
233# this is temp to handle compat with arch=ppc
234config 8xx
235 bool
236
237# this is temp to handle compat with arch=ppc
238config 83xx
239 bool
240
241# this is temp to handle compat with arch=ppc
242config 85xx
243 bool
244
245config E500
246 bool
247
248config PPC_FPU
249 bool
250 default y if PPC64
251
252config PPC_DCR_NATIVE 130config PPC_DCR_NATIVE
253 bool 131 bool
254 default n 132 default n
@@ -267,134 +145,6 @@ config PPC_OF_PLATFORM_PCI
267 depends on PPC64 # not supported on 32 bits yet 145 depends on PPC64 # not supported on 32 bits yet
268 default n 146 default n
269 147
270config 4xx
271 bool
272 depends on 40x || 44x
273 default y
274
275config BOOKE
276 bool
277 depends on E200 || E500 || 44x
278 default y
279
280config FSL_BOOKE
281 bool
282 depends on E200 || E500
283 default y
284
285config PTE_64BIT
286 bool
287 depends on 44x || E500
288 default y if 44x
289 default y if E500 && PHYS_64BIT
290
291config PHYS_64BIT
292 bool 'Large physical address support' if E500
293 depends on 44x || E500
294 select RESOURCES_64BIT
295 default y if 44x
296 ---help---
297 This option enables kernel support for larger than 32-bit physical
298 addresses. This features is not be available on all e500 cores.
299
300 If in doubt, say N here.
301
302config ALTIVEC
303 bool "AltiVec Support"
304 depends on CLASSIC32 || POWER4
305 ---help---
306 This option enables kernel support for the Altivec extensions to the
307 PowerPC processor. The kernel currently supports saving and restoring
308 altivec registers, and turning on the 'altivec enable' bit so user
309 processes can execute altivec instructions.
310
311 This option is only usefully if you have a processor that supports
312 altivec (G4, otherwise known as 74xx series), but does not have
313 any affect on a non-altivec cpu (it does, however add code to the
314 kernel).
315
316 If in doubt, say Y here.
317
318config SPE
319 bool "SPE Support"
320 depends on E200 || E500
321 default y
322 ---help---
323 This option enables kernel support for the Signal Processing
324 Extensions (SPE) to the PowerPC processor. The kernel currently
325 supports saving and restoring SPE registers, and turning on the
326 'spe enable' bit so user processes can execute SPE instructions.
327
328 This option is only useful if you have a processor that supports
329 SPE (e500, otherwise known as 85xx series), but does not have any
330 effect on a non-spe cpu (it does, however add code to the kernel).
331
332 If in doubt, say Y here.
333
334config PPC_STD_MMU
335 bool
336 depends on 6xx || POWER3 || POWER4 || PPC64
337 default y
338
339config PPC_STD_MMU_32
340 def_bool y
341 depends on PPC_STD_MMU && PPC32
342
343config PPC_MM_SLICES
344 bool
345 default y if HUGETLB_PAGE
346 default n
347
348config VIRT_CPU_ACCOUNTING
349 bool "Deterministic task and CPU time accounting"
350 depends on PPC64
351 default y
352 help
353 Select this option to enable more accurate task and CPU time
354 accounting. This is done by reading a CPU counter on each
355 kernel entry and exit and on transitions within the kernel
356 between system, softirq and hardirq state, so there is a
357 small performance impact. This also enables accounting of
358 stolen time on logically-partitioned systems running on
359 IBM POWER5-based machines.
360
361 If in doubt, say Y here.
362
363config SMP
364 depends on PPC_STD_MMU
365 bool "Symmetric multi-processing support"
366 ---help---
367 This enables support for systems with more than one CPU. If you have
368 a system with only one CPU, say N. If you have a system with more
369 than one CPU, say Y. Note that the kernel does not currently
370 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
371 since they have inadequate hardware support for multiprocessor
372 operation.
373
374 If you say N here, the kernel will run on single and multiprocessor
375 machines, but will use only one CPU of a multiprocessor machine. If
376 you say Y here, the kernel will run on single-processor machines.
377 On a single-processor machine, the kernel will run faster if you say
378 N here.
379
380 If you don't know what to do here, say N.
381
382config NR_CPUS
383 int "Maximum number of CPUs (2-128)"
384 range 2 128
385 depends on SMP
386 default "32" if PPC64
387 default "4"
388
389config NOT_COHERENT_CACHE
390 bool
391 depends on 4xx || 8xx || E200
392 default y
393
394config CONFIG_CHECK_CACHE_COHERENCY
395 bool
396endmenu
397
398source "init/Kconfig" 148source "init/Kconfig"
399 149
400source "arch/powerpc/platforms/Kconfig" 150source "arch/powerpc/platforms/Kconfig"
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
new file mode 100644
index 000000000000..597272ee9ddc
--- /dev/null
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -0,0 +1,252 @@
1config PPC64
2 bool "64-bit kernel"
3 default n
4 help
5 This option selects whether a 32-bit or a 64-bit kernel
6 will be built.
7
8menu "Processor support"
9choice
10 prompt "Processor Type"
11 depends on PPC32
12 default 6xx
13
14config CLASSIC32
15 bool "52xx/6xx/7xx/74xx"
16 select PPC_FPU
17 select 6xx
18 help
19 There are four families of PowerPC chips supported. The more common
20 types (601, 603, 604, 740, 750, 7400), the Motorola embedded
21 versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
22 embedded versions (403 and 405) and the high end 64 bit Power
23 processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
24
25 This option is the catch-all for 6xx types, including some of the
26 embedded versions. Unless there is see an option for the specific
27 chip family you are using, you want this option.
28
29 You do not want this if you are building a kernel for a 64 bit
30 IBM RS/6000 or an Apple G5, choose 6xx.
31
32 If unsure, select this option
33
34 Note that the kernel runs in 32-bit mode even on 64-bit chips.
35
36config PPC_82xx
37 bool "Freescale 82xx"
38 select 6xx
39 select PPC_FPU
40
41config PPC_83xx
42 bool "Freescale 83xx"
43 select 6xx
44 select FSL_SOC
45 select 83xx
46 select PPC_FPU
47 select WANT_DEVICE_TREE
48
49config PPC_85xx
50 bool "Freescale 85xx"
51 select E500
52 select FSL_SOC
53 select 85xx
54 select WANT_DEVICE_TREE
55
56config PPC_86xx
57 bool "Freescale 86xx"
58 select 6xx
59 select FSL_SOC
60 select FSL_PCIE
61 select PPC_FPU
62 select ALTIVEC
63 help
64 The Freescale E600 SoCs have 74xx cores.
65
66config PPC_8xx
67 bool "Freescale 8xx"
68 select FSL_SOC
69 select 8xx
70
71config 40x
72 bool "AMCC 40x"
73 select PPC_DCR_NATIVE
74
75config 44x
76 bool "AMCC 44x"
77 select PPC_DCR_NATIVE
78 select WANT_DEVICE_TREE
79
80config E200
81 bool "Freescale e200"
82
83endchoice
84
85config POWER4_ONLY
86 bool "Optimize for POWER4"
87 depends on PPC64
88 default n
89 ---help---
90 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
91 The resulting binary will not work on POWER3 or RS64 processors
92 when compiled with binutils 2.15 or later.
93
94config POWER3
95 bool
96 depends on PPC64
97 default y if !POWER4_ONLY
98
99config POWER4
100 depends on PPC64
101 def_bool y
102
103config 6xx
104 bool
105
106# this is temp to handle compat with arch=ppc
107config 8xx
108 bool
109
110# this is temp to handle compat with arch=ppc
111config 83xx
112 bool
113
114# this is temp to handle compat with arch=ppc
115config 85xx
116 bool
117
118config E500
119 bool
120
121config PPC_FPU
122 bool
123 default y if PPC64
124
125config 4xx
126 bool
127 depends on 40x || 44x
128 default y
129
130config BOOKE
131 bool
132 depends on E200 || E500 || 44x
133 default y
134
135config FSL_BOOKE
136 bool
137 depends on E200 || E500
138 default y
139
140config PTE_64BIT
141 bool
142 depends on 44x || E500
143 default y if 44x
144 default y if E500 && PHYS_64BIT
145
146config PHYS_64BIT
147 bool 'Large physical address support' if E500
148 depends on 44x || E500
149 select RESOURCES_64BIT
150 default y if 44x
151 ---help---
152 This option enables kernel support for larger than 32-bit physical
153 addresses. This features is not be available on all e500 cores.
154
155 If in doubt, say N here.
156
157config ALTIVEC
158 bool "AltiVec Support"
159 depends on CLASSIC32 || POWER4
160 ---help---
161 This option enables kernel support for the Altivec extensions to the
162 PowerPC processor. The kernel currently supports saving and restoring
163 altivec registers, and turning on the 'altivec enable' bit so user
164 processes can execute altivec instructions.
165
166 This option is only usefully if you have a processor that supports
167 altivec (G4, otherwise known as 74xx series), but does not have
168 any affect on a non-altivec cpu (it does, however add code to the
169 kernel).
170
171 If in doubt, say Y here.
172
173config SPE
174 bool "SPE Support"
175 depends on E200 || E500
176 default y
177 ---help---
178 This option enables kernel support for the Signal Processing
179 Extensions (SPE) to the PowerPC processor. The kernel currently
180 supports saving and restoring SPE registers, and turning on the
181 'spe enable' bit so user processes can execute SPE instructions.
182
183 This option is only useful if you have a processor that supports
184 SPE (e500, otherwise known as 85xx series), but does not have any
185 effect on a non-spe cpu (it does, however add code to the kernel).
186
187 If in doubt, say Y here.
188
189config PPC_STD_MMU
190 bool
191 depends on 6xx || POWER3 || POWER4 || PPC64
192 default y
193
194config PPC_STD_MMU_32
195 def_bool y
196 depends on PPC_STD_MMU && PPC32
197
198config PPC_MM_SLICES
199 bool
200 default y if HUGETLB_PAGE
201 default n
202
203config VIRT_CPU_ACCOUNTING
204 bool "Deterministic task and CPU time accounting"
205 depends on PPC64
206 default y
207 help
208 Select this option to enable more accurate task and CPU time
209 accounting. This is done by reading a CPU counter on each
210 kernel entry and exit and on transitions within the kernel
211 between system, softirq and hardirq state, so there is a
212 small performance impact. This also enables accounting of
213 stolen time on logically-partitioned systems running on
214 IBM POWER5-based machines.
215
216 If in doubt, say Y here.
217
218config SMP
219 depends on PPC_STD_MMU
220 bool "Symmetric multi-processing support"
221 ---help---
222 This enables support for systems with more than one CPU. If you have
223 a system with only one CPU, say N. If you have a system with more
224 than one CPU, say Y. Note that the kernel does not currently
225 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
226 since they have inadequate hardware support for multiprocessor
227 operation.
228
229 If you say N here, the kernel will run on single and multiprocessor
230 machines, but will use only one CPU of a multiprocessor machine. If
231 you say Y here, the kernel will run on single-processor machines.
232 On a single-processor machine, the kernel will run faster if you say
233 N here.
234
235 If you don't know what to do here, say N.
236
237config NR_CPUS
238 int "Maximum number of CPUs (2-128)"
239 range 2 128
240 depends on SMP
241 default "32" if PPC64
242 default "4"
243
244config NOT_COHERENT_CACHE
245 bool
246 depends on 4xx || 8xx || E200
247 default y
248
249config CONFIG_CHECK_CACHE_COHERENCY
250 bool
251
252endmenu