Input: wm97xx: add new AC97 bus support
[sfrench/cifs-2.6.git] / arch / powerpc / platforms / Kconfig.cputype
1 config PPC64
2         bool "64-bit kernel"
3         default n
4         select ZLIB_DEFLATE
5         help
6           This option selects whether a 32-bit or a 64-bit kernel
7           will be built.
8
9 menu "Processor support"
10 choice
11         prompt "Processor Type"
12         depends on PPC32
13         help
14           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
17           embedded 512x/52xx/82xx/83xx/86xx counterparts.
18           The other embedded 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.
21
22           If unsure, select 52xx/6xx/7xx/74xx/82xx/83xx/86xx.
23
24 config PPC_BOOK3S_32
25         bool "512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx"
26         select PPC_FPU
27
28 config PPC_85xx
29         bool "Freescale 85xx"
30         select E500
31
32 config PPC_8xx
33         bool "Freescale 8xx"
34         select FSL_SOC
35         select PPC_LIB_RHEAP
36         select SYS_SUPPORTS_HUGETLBFS
37
38 config 40x
39         bool "AMCC 40x"
40         select PPC_DCR_NATIVE
41         select PPC_UDBG_16550
42         select 4xx_SOC
43         select PPC_PCI_CHOICE
44
45 config 44x
46         bool "AMCC 44x, 46x or 47x"
47         select PPC_DCR_NATIVE
48         select PPC_UDBG_16550
49         select 4xx_SOC
50         select PPC_PCI_CHOICE
51         select PHYS_64BIT
52
53 config E200
54         bool "Freescale e200"
55
56 endchoice
57
58 choice
59         prompt "Processor Type"
60         depends on PPC64
61         help
62           There are two families of 64 bit PowerPC chips supported.
63           The most common ones are the desktop and server CPUs
64           (POWER4, POWER5, 970, POWER5+, POWER6, POWER7, POWER8 ...)
65
66           The other are the "embedded" processors compliant with the
67           "Book 3E" variant of the architecture
68
69 config PPC_BOOK3S_64
70         bool "Server processors"
71         select PPC_FPU
72         select PPC_HAVE_PMU_SUPPORT
73         select SYS_SUPPORTS_HUGETLBFS
74         select HAVE_ARCH_TRANSPARENT_HUGEPAGE
75         select ARCH_SUPPORTS_NUMA_BALANCING
76         select IRQ_WORK
77         select HAVE_KERNEL_XZ
78
79 config PPC_BOOK3E_64
80         bool "Embedded processors"
81         select PPC_FPU # Make it a choice ?
82         select PPC_SMP_MUXED_IPI
83         select PPC_DOORBELL
84
85 endchoice
86
87 choice
88         prompt "CPU selection"
89         depends on PPC64
90         default POWER8_CPU if CPU_LITTLE_ENDIAN
91         default GENERIC_CPU
92         help
93           This will create a kernel which is optimised for a particular CPU.
94           The resulting kernel may not run on other CPUs, so use this with care.
95
96           If unsure, select Generic.
97
98 config GENERIC_CPU
99         bool "Generic"
100         depends on !CPU_LITTLE_ENDIAN
101
102 config CELL_CPU
103         bool "Cell Broadband Engine"
104         depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN
105
106 config POWER4_CPU
107         bool "POWER4"
108         depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN
109
110 config POWER5_CPU
111         bool "POWER5"
112         depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN
113
114 config POWER6_CPU
115         bool "POWER6"
116         depends on PPC_BOOK3S_64 && !CPU_LITTLE_ENDIAN
117
118 config POWER7_CPU
119         bool "POWER7"
120         depends on PPC_BOOK3S_64
121         select ARCH_HAS_FAST_MULTIPLIER
122
123 config POWER8_CPU
124         bool "POWER8"
125         depends on PPC_BOOK3S_64
126         select ARCH_HAS_FAST_MULTIPLIER
127
128 config E5500_CPU
129         bool "Freescale e5500"
130         depends on E500
131
132 config E6500_CPU
133         bool "Freescale e6500"
134         depends on E500
135
136 endchoice
137
138 config PPC_BOOK3S
139         def_bool y
140         depends on PPC_BOOK3S_32 || PPC_BOOK3S_64
141
142 config PPC_BOOK3E
143         def_bool y
144         depends on PPC_BOOK3E_64
145
146 config 6xx
147         def_bool y
148         depends on PPC32 && PPC_BOOK3S
149         select PPC_HAVE_PMU_SUPPORT
150
151 config E500
152         select FSL_EMB_PERFMON
153         select PPC_FSL_BOOK3E
154         bool
155
156 config PPC_E500MC
157         bool "e500mc Support"
158         select PPC_FPU
159         select COMMON_CLK
160         depends on E500
161         help
162           This must be enabled for running on e500mc (and derivatives
163           such as e5500/e6500), and must be disabled for running on
164           e500v1 or e500v2.
165
166 config PPC_FPU
167         bool
168         default y if PPC64
169
170 config PPC_8xx_PERF_EVENT
171         bool "PPC 8xx perf events"
172         depends on PPC_8xx && PERF_EVENTS
173         help
174           This is Performance Events support for PPC 8xx. The 8xx doesn't
175           have a PMU but some events are emulated using 8xx features.
176
177 config FSL_EMB_PERFMON
178         bool "Freescale Embedded Perfmon"
179         depends on E500 || PPC_83xx
180         help
181           This is the Performance Monitor support found on the e500 core
182           and some e300 cores (c3 and c4).  Select this only if your
183           core supports the Embedded Performance Monitor APU
184
185 config FSL_EMB_PERF_EVENT
186         bool
187         depends on FSL_EMB_PERFMON && PERF_EVENTS && !PPC_PERF_CTRS
188         default y
189
190 config FSL_EMB_PERF_EVENT_E500
191         bool
192         depends on FSL_EMB_PERF_EVENT && E500
193         default y
194
195 config 4xx
196         bool
197         depends on 40x || 44x
198         default y
199
200 config BOOKE
201         bool
202         depends on E200 || E500 || 44x || PPC_BOOK3E
203         default y
204
205 config FSL_BOOKE
206         bool
207         depends on (E200 || E500) && PPC32
208         default y
209
210 # this is for common code between PPC32 & PPC64 FSL BOOKE
211 config PPC_FSL_BOOK3E
212         bool
213         select FSL_EMB_PERFMON
214         select PPC_SMP_MUXED_IPI
215         select SYS_SUPPORTS_HUGETLBFS if PHYS_64BIT || PPC64
216         select PPC_DOORBELL
217         default y if FSL_BOOKE
218
219 config PTE_64BIT
220         bool
221         depends on 44x || E500 || PPC_86xx
222         default y if PHYS_64BIT
223
224 config PHYS_64BIT
225         bool 'Large physical address support' if E500 || PPC_86xx
226         depends on (44x || E500 || PPC_86xx) && !PPC_83xx && !PPC_82xx
227         ---help---
228           This option enables kernel support for larger than 32-bit physical
229           addresses.  This feature may not be available on all cores.
230
231           If you have more than 3.5GB of RAM or so, you also need to enable
232           SWIOTLB under Kernel Options for this to work.  The actual number
233           is platform-dependent.
234
235           If in doubt, say N here.
236
237 config ALTIVEC
238         bool "AltiVec Support"
239         depends on 6xx || PPC_BOOK3S_64 || (PPC_E500MC && PPC64)
240         ---help---
241           This option enables kernel support for the Altivec extensions to the
242           PowerPC processor. The kernel currently supports saving and restoring
243           altivec registers, and turning on the 'altivec enable' bit so user
244           processes can execute altivec instructions.
245
246           This option is only usefully if you have a processor that supports
247           altivec (G4, otherwise known as 74xx series), but does not have
248           any affect on a non-altivec cpu (it does, however add code to the
249           kernel).
250
251           If in doubt, say Y here.
252
253 config VSX
254         bool "VSX Support"
255         depends on PPC_BOOK3S_64 && ALTIVEC && PPC_FPU
256         ---help---
257
258           This option enables kernel support for the Vector Scaler extensions
259           to the PowerPC processor. The kernel currently supports saving and
260           restoring VSX registers, and turning on the 'VSX enable' bit so user
261           processes can execute VSX instructions.
262
263           This option is only useful if you have a processor that supports
264           VSX (P7 and above), but does not have any affect on a non-VSX
265           CPUs (it does, however add code to the kernel).
266
267           If in doubt, say Y here.
268
269 config SPE_POSSIBLE
270         def_bool y
271         depends on E200 || (E500 && !PPC_E500MC)
272
273 config SPE
274         bool "SPE Support"
275         depends on SPE_POSSIBLE
276         default y
277         ---help---
278           This option enables kernel support for the Signal Processing
279           Extensions (SPE) to the PowerPC processor. The kernel currently
280           supports saving and restoring SPE registers, and turning on the
281           'spe enable' bit so user processes can execute SPE instructions.
282
283           This option is only useful if you have a processor that supports
284           SPE (e500, otherwise known as 85xx series), but does not have any
285           effect on a non-spe cpu (it does, however add code to the kernel).
286
287           If in doubt, say Y here.
288
289 config PPC_STD_MMU
290         def_bool y
291         depends on PPC_BOOK3S
292
293 config PPC_STD_MMU_32
294         def_bool y
295         depends on PPC_STD_MMU && PPC32
296
297 config PPC_STD_MMU_64
298         def_bool y
299         depends on PPC_STD_MMU && PPC64
300
301 config PPC_RADIX_MMU
302         bool "Radix MMU Support"
303         depends on PPC_BOOK3S_64
304         select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA
305         default y
306         help
307           Enable support for the Power ISA 3.0 Radix style MMU. Currently this
308           is only implemented by IBM Power9 CPUs, if you don't have one of them
309           you can probably disable this.
310
311 config ARCH_ENABLE_HUGEPAGE_MIGRATION
312         def_bool y
313         depends on PPC_BOOK3S_64 && HUGETLB_PAGE && MIGRATION
314
315
316 config PPC_MMU_NOHASH
317         def_bool y
318         depends on !PPC_STD_MMU
319
320 config PPC_BOOK3E_MMU
321         def_bool y
322         depends on FSL_BOOKE || PPC_BOOK3E
323
324 config PPC_MM_SLICES
325         bool
326         default y if PPC_STD_MMU_64
327         default n
328
329 config PPC_HAVE_PMU_SUPPORT
330        bool
331
332 config PPC_PERF_CTRS
333        def_bool y
334        depends on PERF_EVENTS && PPC_HAVE_PMU_SUPPORT
335        help
336          This enables the powerpc-specific perf_event back-end.
337
338 config FORCE_SMP
339         # Allow platforms to force SMP=y by selecting this
340         bool
341         default n
342         select SMP
343
344 config SMP
345         depends on PPC_BOOK3S || PPC_BOOK3E || FSL_BOOKE || PPC_47x
346         select GENERIC_IRQ_MIGRATION
347         bool "Symmetric multi-processing support" if !FORCE_SMP
348         ---help---
349           This enables support for systems with more than one CPU. If you have
350           a system with only one CPU, say N. If you have a system with more
351           than one CPU, say Y.  Note that the kernel does not currently
352           support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
353           since they have inadequate hardware support for multiprocessor
354           operation.
355
356           If you say N here, the kernel will run on single and multiprocessor
357           machines, but will use only one CPU of a multiprocessor machine. If
358           you say Y here, the kernel will run on single-processor machines.
359           On a single-processor machine, the kernel will run faster if you say
360           N here.
361
362           If you don't know what to do here, say N.
363
364 config NR_CPUS
365         int "Maximum number of CPUs (2-8192)"
366         range 2 8192
367         depends on SMP
368         default "32" if PPC64
369         default "4"
370
371 config NOT_COHERENT_CACHE
372         bool
373         depends on 4xx || PPC_8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON
374         default n if PPC_47x
375         default y
376
377 config CHECK_CACHE_COHERENCY
378         bool
379
380 config PPC_DOORBELL
381         bool
382         default n
383
384 endmenu
385
386 config VDSO32
387         def_bool y
388         depends on PPC32 || CPU_BIG_ENDIAN
389         help
390           This symbol controls whether we build the 32-bit VDSO. We obviously
391           want to do that if we're building a 32-bit kernel. If we're building
392           a 64-bit kernel then we only want a 32-bit VDSO if we're building for
393           big endian. That is because the only little endian configuration we
394           support is ppc64le which is 64-bit only.
395
396 choice
397         prompt "Endianness selection"
398         default CPU_BIG_ENDIAN
399         help
400           This option selects whether a big endian or little endian kernel will
401           be built.
402
403 config CPU_BIG_ENDIAN
404         bool "Build big endian kernel"
405         help
406           Build a big endian kernel.
407
408           If unsure, select this option.
409
410 config CPU_LITTLE_ENDIAN
411         bool "Build little endian kernel"
412         depends on PPC_BOOK3S_64
413         select PPC64_BOOT_WRAPPER
414         help
415           Build a little endian kernel.
416
417           Note that if cross compiling a little endian kernel,
418           CROSS_COMPILE must point to a toolchain capable of targeting
419           little endian powerpc.
420
421 endchoice
422
423 config PPC64_BOOT_WRAPPER
424         def_bool n
425         depends on CPU_LITTLE_ENDIAN