blob: 2165b65876f9e9c70d9495377da92c5f13a4aa3e [file] [log] [blame]
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +10001config PPC64
2 bool "64-bit kernel"
3 default n
Paul Mackerras105988c2009-06-17 21:50:04 +10004 select PPC_HAVE_PMU_SUPPORT
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +10005 help
6 This option selects whether a 32-bit or a 64-bit kernel
7 will be built.
8
9menu "Processor support"
10choice
11 prompt "Processor Type"
12 depends on PPC32
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100013 help
Arnd Bergmannb9fd3052007-06-18 01:06:52 +020014 There are five families of 32 bit PowerPC chips supported.
15 The most common ones are the desktop and server CPUs (601, 603,
16 604, 740, 750, 74xx) CPUs from Freescale and IBM, with their
John Rigbye177edc2008-01-29 04:28:53 +110017 embedded 512x/52xx/82xx/83xx/86xx counterparts.
Arnd Bergmannb9fd3052007-06-18 01:06:52 +020018 The other embeeded parts, namely 4xx, 8xx, e200 (55xx) and e500
19 (85xx) each form a family of their own that is not compatible
20 with the others.
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100021
Arnd Bergmannb9fd3052007-06-18 01:06:52 +020022 If unsure, select 52xx/6xx/7xx/74xx/82xx/83xx/86xx.
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100023
Benjamin Herrenschmidt48c93112009-06-14 14:45:50 +000024config PPC_BOOK3S_32
John Rigbye177edc2008-01-29 04:28:53 +110025 bool "512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx"
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100026 select PPC_FPU
27
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100028config PPC_85xx
29 bool "Freescale 85xx"
30 select E500
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100031
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100032config PPC_8xx
33 bool "Freescale 8xx"
34 select FSL_SOC
35 select 8xx
Sylvain Munaut1088a202007-09-16 20:53:25 +100036 select PPC_LIB_RHEAP
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100037
38config 40x
39 bool "AMCC 40x"
40 select PPC_DCR_NATIVE
Benjamin Herrenschmidt9dae8af2007-12-21 15:39:26 +110041 select PPC_UDBG_16550
Stefan Roese93173ce2008-03-28 01:43:31 +110042 select 4xx_SOC
John Rigbyb5005632008-06-26 11:07:56 -060043 select PPC_PCI_CHOICE
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100044
45config 44x
Dave Kleikampe7f75ad2010-03-05 10:43:12 +000046 bool "AMCC 44x, 46x or 47x"
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100047 select PPC_DCR_NATIVE
Valentine Barshak1d5499b2007-10-18 22:55:13 +100048 select PPC_UDBG_16550
Stefan Roese93173ce2008-03-28 01:43:31 +110049 select 4xx_SOC
John Rigbyb5005632008-06-26 11:07:56 -060050 select PPC_PCI_CHOICE
Becky Bruce4ee70842008-09-24 11:01:24 -050051 select PHYS_64BIT
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100052
53config E200
54 bool "Freescale e200"
55
56endchoice
57
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +000058choice
59 prompt "Processor Type"
Benjamin Herrenschmidt5b7c3c92009-06-02 21:17:37 +000060 depends on PPC64
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +000061 help
62 There are two families of 64 bit PowerPC chips supported.
63 The most common ones are the desktop and server CPUs
64 (POWER3, RS64, POWER4, POWER5, POWER5+, POWER6, ...)
65
66 The other are the "embedded" processors compliant with the
67 "Book 3E" variant of the architecture
68
69config PPC_BOOK3S_64
70 bool "Server processors"
Benjamin Herrenschmidt5b7c3c92009-06-02 21:17:37 +000071 select PPC_FPU
72
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +000073config PPC_BOOK3E_64
74 bool "Embedded processors"
75 select PPC_FPU # Make it a choice ?
Milton Miller1ece3552011-05-10 19:29:42 +000076 select PPC_SMP_MUXED_IPI
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +000077
78endchoice
79
Benjamin Herrenschmidt48c93112009-06-14 14:45:50 +000080config PPC_BOOK3S
81 def_bool y
82 depends on PPC_BOOK3S_32 || PPC_BOOK3S_64
Benjamin Herrenschmidt28794d32009-03-10 17:53:27 +000083
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +000084config PPC_BOOK3E
85 def_bool y
86 depends on PPC_BOOK3E_64
87
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100088config POWER4_ONLY
89 bool "Optimize for POWER4"
Benjamin Herrenschmidt28794d32009-03-10 17:53:27 +000090 depends on PPC64 && PPC_BOOK3S
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +100091 default n
92 ---help---
93 Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
94 The resulting binary will not work on POWER3 or RS64 processors
95 when compiled with binutils 2.15 or later.
96
Benjamin Herrenschmidt5b7c3c92009-06-02 21:17:37 +000097config 6xx
98 def_bool y
99 depends on PPC32 && PPC_BOOK3S
Paul Mackerras73259272009-06-17 21:53:51 +1000100 select PPC_HAVE_PMU_SUPPORT
Benjamin Herrenschmidt5b7c3c92009-06-02 21:17:37 +0000101
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000102config POWER3
103 bool
Benjamin Herrenschmidt28794d32009-03-10 17:53:27 +0000104 depends on PPC64 && PPC_BOOK3S
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000105 default y if !POWER4_ONLY
106
107config POWER4
Benjamin Herrenschmidt28794d32009-03-10 17:53:27 +0000108 depends on PPC64 && PPC_BOOK3S
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000109 def_bool y
110
Benjamin Herrenschmidt76b4eda2011-04-14 22:32:01 +0000111config PPC_A2
112 bool
113 depends on PPC_BOOK3E_64
114
Arnd Bergmann3164ccc2007-09-15 10:21:57 +1000115config TUNE_CELL
116 bool "Optimize for Cell Broadband Engine"
Benjamin Herrenschmidt28794d32009-03-10 17:53:27 +0000117 depends on PPC64 && PPC_BOOK3S
Arnd Bergmann3164ccc2007-09-15 10:21:57 +1000118 help
119 Cause the compiler to optimize for the PPE of the Cell Broadband
120 Engine. This will make the code run considerably faster on Cell
121 but somewhat slower on other machines. This option only changes
122 the scheduling of instructions, not the selection of instructions
123 itself, so the resulting kernel will keep running on all other
124 machines. When building a kernel that is supposed to run only
125 on Cell, you should also select the POWER4_ONLY option.
126
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000127# this is temp to handle compat with arch=ppc
128config 8xx
129 bool
130
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000131config E500
Andy Fleming39aef682008-02-04 18:27:55 -0600132 select FSL_EMB_PERFMON
Kumar Gala4490c062010-10-08 08:32:11 -0500133 select PPC_FSL_BOOK3E
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000134 bool
135
Kumar Gala3dfa8772008-06-16 09:41:32 -0500136config PPC_E500MC
137 bool "e500mc Support"
138 select PPC_FPU
139 depends on E500
140
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000141config PPC_FPU
142 bool
143 default y if PPC64
144
Kumar Gala5753c082009-10-16 18:31:48 -0500145config FSL_EMB_PERFMON
146 bool "Freescale Embedded Perfmon"
147 depends on E500 || PPC_83xx
148 help
149 This is the Performance Monitor support found on the e500 core
150 and some e300 cores (c3 and c4). Select this only if your
151 core supports the Embedded Performance Monitor APU
152
Scott Wooda1110652010-02-25 18:09:45 -0600153config FSL_EMB_PERF_EVENT
154 bool
155 depends on FSL_EMB_PERFMON && PERF_EVENTS && !PPC_PERF_CTRS
156 default y
157
158config FSL_EMB_PERF_EVENT_E500
159 bool
160 depends on FSL_EMB_PERF_EVENT && E500
161 default y
162
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000163config 4xx
164 bool
165 depends on 40x || 44x
166 default y
167
168config BOOKE
169 bool
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +0000170 depends on E200 || E500 || 44x || PPC_BOOK3E
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000171 default y
172
173config FSL_BOOKE
174 bool
Kumar Gala4490c062010-10-08 08:32:11 -0500175 depends on (E200 || E500) && PPC32
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000176 default y
177
Kumar Gala4490c062010-10-08 08:32:11 -0500178# this is for common code between PPC32 & PPC64 FSL BOOKE
179config PPC_FSL_BOOK3E
180 bool
181 select FSL_EMB_PERFMON
Milton Miller1ece3552011-05-10 19:29:42 +0000182 select PPC_SMP_MUXED_IPI
Kumar Gala4490c062010-10-08 08:32:11 -0500183 default y if FSL_BOOKE
Andy Fleming39aef682008-02-04 18:27:55 -0600184
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000185config PTE_64BIT
186 bool
Becky Bruce4ee70842008-09-24 11:01:24 -0500187 depends on 44x || E500 || PPC_86xx
188 default y if PHYS_64BIT
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000189
190config PHYS_64BIT
Becky Bruce4ee70842008-09-24 11:01:24 -0500191 bool 'Large physical address support' if E500 || PPC_86xx
192 depends on (44x || E500 || PPC_86xx) && !PPC_83xx && !PPC_82xx
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000193 ---help---
194 This option enables kernel support for larger than 32-bit physical
Becky Bruce4ee70842008-09-24 11:01:24 -0500195 addresses. This feature may not be available on all cores.
196
197 If you have more than 3.5GB of RAM or so, you also need to enable
198 SWIOTLB under Kernel Options for this to work. The actual number
199 is platform-dependent.
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000200
201 If in doubt, say N here.
202
203config ALTIVEC
204 bool "AltiVec Support"
Benjamin Herrenschmidt28794d32009-03-10 17:53:27 +0000205 depends on 6xx || POWER4
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000206 ---help---
207 This option enables kernel support for the Altivec extensions to the
208 PowerPC processor. The kernel currently supports saving and restoring
209 altivec registers, and turning on the 'altivec enable' bit so user
210 processes can execute altivec instructions.
211
212 This option is only usefully if you have a processor that supports
213 altivec (G4, otherwise known as 74xx series), but does not have
214 any affect on a non-altivec cpu (it does, however add code to the
215 kernel).
216
217 If in doubt, say Y here.
218
Michael Neuling96d5b522008-06-25 14:07:18 +1000219config VSX
220 bool "VSX Support"
221 depends on POWER4 && ALTIVEC && PPC_FPU
222 ---help---
223
224 This option enables kernel support for the Vector Scaler extensions
225 to the PowerPC processor. The kernel currently supports saving and
226 restoring VSX registers, and turning on the 'VSX enable' bit so user
227 processes can execute VSX instructions.
228
229 This option is only useful if you have a processor that supports
230 VSX (P7 and above), but does not have any affect on a non-VSX
231 CPUs (it does, however add code to the kernel).
232
233 If in doubt, say Y here.
234
Tseng-Hui (Frank) Lin851d2e22011-05-02 20:43:04 +0000235config PPC_ICSWX
236 bool "Support for PowerPC icswx coprocessor instruction"
237 depends on POWER4
238 default n
239 ---help---
240
241 This option enables kernel support for the PowerPC Initiate
242 Coprocessor Store Word (icswx) coprocessor instruction on POWER7
243 or newer processors.
244
245 This option is only useful if you have a processor that supports
246 the icswx coprocessor instruction. It does not have any effect
247 on processors without the icswx coprocessor instruction.
248
249 This option slightly increases kernel memory usage.
250
251 If in doubt, say N here.
252
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000253config SPE
254 bool "SPE Support"
Kumar Gala3dfa8772008-06-16 09:41:32 -0500255 depends on E200 || (E500 && !PPC_E500MC)
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000256 default y
257 ---help---
258 This option enables kernel support for the Signal Processing
259 Extensions (SPE) to the PowerPC processor. The kernel currently
260 supports saving and restoring SPE registers, and turning on the
261 'spe enable' bit so user processes can execute SPE instructions.
262
263 This option is only useful if you have a processor that supports
264 SPE (e500, otherwise known as 85xx series), but does not have any
265 effect on a non-spe cpu (it does, however add code to the kernel).
266
267 If in doubt, say Y here.
268
269config PPC_STD_MMU
Benjamin Herrenschmidt5b7c3c92009-06-02 21:17:37 +0000270 def_bool y
271 depends on PPC_BOOK3S
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000272
273config PPC_STD_MMU_32
274 def_bool y
275 depends on PPC_STD_MMU && PPC32
276
Benjamin Herrenschmidt5e696612008-12-18 19:13:24 +0000277config PPC_STD_MMU_64
278 def_bool y
279 depends on PPC_STD_MMU && PPC64
280
281config PPC_MMU_NOHASH
282 def_bool y
283 depends on !PPC_STD_MMU
284
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +0000285config PPC_MMU_NOHASH_32
286 def_bool y
287 depends on PPC_MMU_NOHASH && PPC32
288
289config PPC_MMU_NOHASH_64
290 def_bool y
291 depends on PPC_MMU_NOHASH && PPC64
292
Kumar Gala70fe3af2009-02-12 16:12:40 -0600293config PPC_BOOK3E_MMU
294 def_bool y
Benjamin Herrenschmidt2d27cfd2009-07-23 23:15:59 +0000295 depends on FSL_BOOKE || PPC_BOOK3E
Kumar Gala70fe3af2009-02-12 16:12:40 -0600296
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000297config PPC_MM_SLICES
298 bool
Ilya Yanokca9153a2008-12-11 04:55:41 +0300299 default y if HUGETLB_PAGE || (PPC_STD_MMU_64 && PPC_64K_PAGES)
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000300 default n
301
302config VIRT_CPU_ACCOUNTING
303 bool "Deterministic task and CPU time accounting"
304 depends on PPC64
305 default y
306 help
307 Select this option to enable more accurate task and CPU time
308 accounting. This is done by reading a CPU counter on each
309 kernel entry and exit and on transitions within the kernel
310 between system, softirq and hardirq state, so there is a
311 small performance impact. This also enables accounting of
312 stolen time on logically-partitioned systems running on
313 IBM POWER5-based machines.
314
315 If in doubt, say Y here.
316
Paul Mackerras105988c2009-06-17 21:50:04 +1000317config PPC_HAVE_PMU_SUPPORT
318 bool
319
320config PPC_PERF_CTRS
321 def_bool y
Ingo Molnarcdd6c482009-09-21 12:02:48 +0200322 depends on PERF_EVENTS && PPC_HAVE_PMU_SUPPORT
Paul Mackerras105988c2009-06-17 21:50:04 +1000323 help
Ingo Molnarcdd6c482009-09-21 12:02:48 +0200324 This enables the powerpc-specific perf_event back-end.
Paul Mackerras105988c2009-06-17 21:50:04 +1000325
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000326config SMP
Dave Kleikampe7f75ad2010-03-05 10:43:12 +0000327 depends on PPC_BOOK3S || PPC_BOOK3E || FSL_BOOKE || PPC_47x
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000328 bool "Symmetric multi-processing support"
329 ---help---
330 This enables support for systems with more than one CPU. If you have
331 a system with only one CPU, say N. If you have a system with more
332 than one CPU, say Y. Note that the kernel does not currently
333 support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
334 since they have inadequate hardware support for multiprocessor
335 operation.
336
337 If you say N here, the kernel will run on single and multiprocessor
338 machines, but will use only one CPU of a multiprocessor machine. If
339 you say Y here, the kernel will run on single-processor machines.
340 On a single-processor machine, the kernel will run faster if you say
341 N here.
342
343 If you don't know what to do here, say N.
344
345config NR_CPUS
Michael Neuling2d8ae632009-05-17 15:13:16 +0000346 int "Maximum number of CPUs (2-8192)"
347 range 2 8192
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000348 depends on SMP
349 default "32" if PPC64
350 default "4"
351
352config NOT_COHERENT_CACHE
353 bool
Albert Herranzb91a1432009-12-12 06:31:38 +0000354 depends on 4xx || 8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON
Dave Kleikampe7f75ad2010-03-05 10:43:12 +0000355 default n if PPC_47x
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000356 default y
357
Robert P. J. Dayf8eb77d2007-07-18 08:21:29 +1000358config CHECK_CACHE_COHERENCY
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +1000359 bool
360
361endmenu