Merge branch 'linus' into perfcounters/core-v2
[pandora-kernel.git] / arch / powerpc / platforms / Kconfig.cputype
1 config PPC64
2         bool "64-bit kernel"
3         default n
4         select HAVE_PERF_COUNTERS
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         default 6xx
14         help
15           There are five families of 32 bit PowerPC chips supported.
16           The most common ones are the desktop and server CPUs (601, 603,
17           604, 740, 750, 74xx) CPUs from Freescale and IBM, with their
18           embedded 512x/52xx/82xx/83xx/86xx counterparts.
19           The other embeeded parts, namely 4xx, 8xx, e200 (55xx) and e500
20           (85xx) each form a family of their own that is not compatible
21           with the others.
22
23           If unsure, select 52xx/6xx/7xx/74xx/82xx/83xx/86xx.
24
25 config 6xx
26         bool "512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx"
27         select PPC_FPU
28
29 config PPC_85xx
30         bool "Freescale 85xx"
31         select E500
32         select FSL_SOC
33         select MPC85xx
34
35 config PPC_8xx
36         bool "Freescale 8xx"
37         select FSL_SOC
38         select 8xx
39         select PPC_LIB_RHEAP
40
41 config 40x
42         bool "AMCC 40x"
43         select PPC_DCR_NATIVE
44         select PPC_UDBG_16550
45         select 4xx_SOC
46         select PPC_PCI_CHOICE
47
48 config 44x
49         bool "AMCC 44x"
50         select PPC_DCR_NATIVE
51         select PPC_UDBG_16550
52         select 4xx_SOC
53         select PPC_PCI_CHOICE
54         select PHYS_64BIT
55
56 config E200
57         bool "Freescale e200"
58
59 endchoice
60
61 # Until we have a choice of exclusive CPU types on 64-bit, we always
62 # use PPC_BOOK3S. On 32-bit, this is equivalent to 6xx which is
63 # "classic" MMU
64
65 config PPC_BOOK3S
66        def_bool y
67        depends on PPC64 || 6xx
68
69 config POWER4_ONLY
70         bool "Optimize for POWER4"
71         depends on PPC64 && PPC_BOOK3S
72         default n
73         ---help---
74           Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
75           The resulting binary will not work on POWER3 or RS64 processors
76           when compiled with binutils 2.15 or later.
77
78 config POWER3
79         bool
80         depends on PPC64 && PPC_BOOK3S
81         default y if !POWER4_ONLY
82
83 config POWER4
84         depends on PPC64 && PPC_BOOK3S
85         def_bool y
86
87 config TUNE_CELL
88         bool "Optimize for Cell Broadband Engine"
89         depends on PPC64 && PPC_BOOK3S
90         help
91           Cause the compiler to optimize for the PPE of the Cell Broadband
92           Engine. This will make the code run considerably faster on Cell
93           but somewhat slower on other machines. This option only changes
94           the scheduling of instructions, not the selection of instructions
95           itself, so the resulting kernel will keep running on all other
96           machines. When building a kernel that is supposed to run only
97           on Cell, you should also select the POWER4_ONLY option.
98
99 # this is temp to handle compat with arch=ppc
100 config 8xx
101         bool
102
103 config E500
104         select FSL_EMB_PERFMON
105         bool
106
107 config PPC_E500MC
108         bool "e500mc Support"
109         select PPC_FPU
110         depends on E500
111
112 config PPC_FPU
113         bool
114         default y if PPC64
115
116 config 4xx
117         bool
118         depends on 40x || 44x
119         default y
120
121 config BOOKE
122         bool
123         depends on E200 || E500 || 44x
124         default y
125
126 config FSL_BOOKE
127         bool
128         depends on E200 || E500
129         default y
130
131 config FSL_EMB_PERFMON
132         bool "Freescale Embedded Perfmon"
133         depends on E500 || PPC_83xx
134         help
135           This is the Performance Monitor support found on the e500 core
136           and some e300 cores (c3 and c4).  Select this only if your
137           core supports the Embedded Performance Monitor APU
138
139 config PTE_64BIT
140         bool
141         depends on 44x || E500 || PPC_86xx
142         default y if PHYS_64BIT
143
144 config PHYS_64BIT
145         bool 'Large physical address support' if E500 || PPC_86xx
146         depends on (44x || E500 || PPC_86xx) && !PPC_83xx && !PPC_82xx
147         ---help---
148           This option enables kernel support for larger than 32-bit physical
149           addresses.  This feature may not be available on all cores.
150
151           If you have more than 3.5GB of RAM or so, you also need to enable
152           SWIOTLB under Kernel Options for this to work.  The actual number
153           is platform-dependent.
154
155           If in doubt, say N here.
156
157 config ALTIVEC
158         bool "AltiVec Support"
159         depends on 6xx || 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
173 config VSX
174         bool "VSX Support"
175         depends on POWER4 && ALTIVEC && PPC_FPU
176         ---help---
177
178           This option enables kernel support for the Vector Scaler extensions
179           to the PowerPC processor. The kernel currently supports saving and
180           restoring VSX registers, and turning on the 'VSX enable' bit so user
181           processes can execute VSX instructions.
182
183           This option is only useful if you have a processor that supports
184           VSX (P7 and above), but does not have any affect on a non-VSX
185           CPUs (it does, however add code to the kernel).
186
187           If in doubt, say Y here.
188
189 config SPE
190         bool "SPE Support"
191         depends on E200 || (E500 && !PPC_E500MC)
192         default y
193         ---help---
194           This option enables kernel support for the Signal Processing
195           Extensions (SPE) to the PowerPC processor. The kernel currently
196           supports saving and restoring SPE registers, and turning on the
197           'spe enable' bit so user processes can execute SPE instructions.
198
199           This option is only useful if you have a processor that supports
200           SPE (e500, otherwise known as 85xx series), but does not have any
201           effect on a non-spe cpu (it does, however add code to the kernel).
202
203           If in doubt, say Y here.
204
205 config PPC_STD_MMU
206         bool
207         depends on 6xx || PPC64
208         default y
209
210 config PPC_STD_MMU_32
211         def_bool y
212         depends on PPC_STD_MMU && PPC32
213
214 config PPC_STD_MMU_64
215         def_bool y
216         depends on PPC_STD_MMU && PPC64
217
218 config PPC_MMU_NOHASH
219         def_bool y
220         depends on !PPC_STD_MMU
221
222 config PPC_BOOK3E_MMU
223         def_bool y
224         depends on FSL_BOOKE
225
226 config PPC_MM_SLICES
227         bool
228         default y if HUGETLB_PAGE || (PPC_STD_MMU_64 && PPC_64K_PAGES)
229         default n
230
231 config VIRT_CPU_ACCOUNTING
232         bool "Deterministic task and CPU time accounting"
233         depends on PPC64
234         default y
235         help
236           Select this option to enable more accurate task and CPU time
237           accounting.  This is done by reading a CPU counter on each
238           kernel entry and exit and on transitions within the kernel
239           between system, softirq and hardirq state, so there is a
240           small performance impact.  This also enables accounting of
241           stolen time on logically-partitioned systems running on
242           IBM POWER5-based machines.
243
244           If in doubt, say Y here.
245
246 config SMP
247         depends on PPC_STD_MMU || FSL_BOOKE
248         bool "Symmetric multi-processing support"
249         ---help---
250           This enables support for systems with more than one CPU. If you have
251           a system with only one CPU, say N. If you have a system with more
252           than one CPU, say Y.  Note that the kernel does not currently
253           support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
254           since they have inadequate hardware support for multiprocessor
255           operation.
256
257           If you say N here, the kernel will run on single and multiprocessor
258           machines, but will use only one CPU of a multiprocessor machine. If
259           you say Y here, the kernel will run on single-processor machines.
260           On a single-processor machine, the kernel will run faster if you say
261           N here.
262
263           If you don't know what to do here, say N.
264
265 config NR_CPUS
266         int "Maximum number of CPUs (2-1024)"
267         range 2 1024
268         depends on SMP
269         default "32" if PPC64
270         default "4"
271
272 config NOT_COHERENT_CACHE
273         bool
274         depends on 4xx || 8xx || E200 || PPC_MPC512x
275         default y
276
277 config CHECK_CACHE_COHERENCY
278         bool
279
280 endmenu