Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/perfcou...
[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 config POWER4_ONLY
62         bool "Optimize for POWER4"
63         depends on PPC64
64         default n
65         ---help---
66           Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
67           The resulting binary will not work on POWER3 or RS64 processors
68           when compiled with binutils 2.15 or later.
69
70 config POWER3
71         bool
72         depends on PPC64
73         default y if !POWER4_ONLY
74
75 config POWER4
76         depends on PPC64
77         def_bool y
78
79 config TUNE_CELL
80         bool "Optimize for Cell Broadband Engine"
81         depends on PPC64
82         help
83           Cause the compiler to optimize for the PPE of the Cell Broadband
84           Engine. This will make the code run considerably faster on Cell
85           but somewhat slower on other machines. This option only changes
86           the scheduling of instructions, not the selection of instructions
87           itself, so the resulting kernel will keep running on all other
88           machines. When building a kernel that is supposed to run only
89           on Cell, you should also select the POWER4_ONLY option.
90
91 # this is temp to handle compat with arch=ppc
92 config 8xx
93         bool
94
95 config E500
96         select FSL_EMB_PERFMON
97         bool
98
99 config PPC_E500MC
100         bool "e500mc Support"
101         select PPC_FPU
102         depends on E500
103
104 config PPC_FPU
105         bool
106         default y if PPC64
107
108 config 4xx
109         bool
110         depends on 40x || 44x
111         default y
112
113 config BOOKE
114         bool
115         depends on E200 || E500 || 44x
116         default y
117
118 config FSL_BOOKE
119         bool
120         depends on E200 || E500
121         default y
122
123 config FSL_EMB_PERFMON
124         bool "Freescale Embedded Perfmon"
125         depends on E500 || PPC_83xx
126         help
127           This is the Performance Monitor support found on the e500 core
128           and some e300 cores (c3 and c4).  Select this only if your
129           core supports the Embedded Performance Monitor APU
130
131 config PTE_64BIT
132         bool
133         depends on 44x || E500 || PPC_86xx
134         default y if PHYS_64BIT
135
136 config PHYS_64BIT
137         bool 'Large physical address support' if E500 || PPC_86xx
138         depends on (44x || E500 || PPC_86xx) && !PPC_83xx && !PPC_82xx
139         ---help---
140           This option enables kernel support for larger than 32-bit physical
141           addresses.  This feature may not be available on all cores.
142
143           If you have more than 3.5GB of RAM or so, you also need to enable
144           SWIOTLB under Kernel Options for this to work.  The actual number
145           is platform-dependent.
146
147           If in doubt, say N here.
148
149 config ALTIVEC
150         bool "AltiVec Support"
151         depends on CLASSIC32 || POWER4
152         ---help---
153           This option enables kernel support for the Altivec extensions to the
154           PowerPC processor. The kernel currently supports saving and restoring
155           altivec registers, and turning on the 'altivec enable' bit so user
156           processes can execute altivec instructions.
157
158           This option is only usefully if you have a processor that supports
159           altivec (G4, otherwise known as 74xx series), but does not have
160           any affect on a non-altivec cpu (it does, however add code to the
161           kernel).
162
163           If in doubt, say Y here.
164
165 config VSX
166         bool "VSX Support"
167         depends on POWER4 && ALTIVEC && PPC_FPU
168         ---help---
169
170           This option enables kernel support for the Vector Scaler extensions
171           to the PowerPC processor. The kernel currently supports saving and
172           restoring VSX registers, and turning on the 'VSX enable' bit so user
173           processes can execute VSX instructions.
174
175           This option is only useful if you have a processor that supports
176           VSX (P7 and above), but does not have any affect on a non-VSX
177           CPUs (it does, however add code to the kernel).
178
179           If in doubt, say Y here.
180
181 config SPE
182         bool "SPE Support"
183         depends on E200 || (E500 && !PPC_E500MC)
184         default y
185         ---help---
186           This option enables kernel support for the Signal Processing
187           Extensions (SPE) to the PowerPC processor. The kernel currently
188           supports saving and restoring SPE registers, and turning on the
189           'spe enable' bit so user processes can execute SPE instructions.
190
191           This option is only useful if you have a processor that supports
192           SPE (e500, otherwise known as 85xx series), but does not have any
193           effect on a non-spe cpu (it does, however add code to the kernel).
194
195           If in doubt, say Y here.
196
197 config PPC_STD_MMU
198         bool
199         depends on 6xx || PPC64
200         default y
201
202 config PPC_STD_MMU_32
203         def_bool y
204         depends on PPC_STD_MMU && PPC32
205
206 config PPC_STD_MMU_64
207         def_bool y
208         depends on PPC_STD_MMU && PPC64
209
210 config PPC_MMU_NOHASH
211         def_bool y
212         depends on !PPC_STD_MMU
213
214 config PPC_MM_SLICES
215         bool
216         default y if HUGETLB_PAGE || (PPC_STD_MMU_64 && PPC_64K_PAGES)
217         default n
218
219 config VIRT_CPU_ACCOUNTING
220         bool "Deterministic task and CPU time accounting"
221         depends on PPC64
222         default y
223         help
224           Select this option to enable more accurate task and CPU time
225           accounting.  This is done by reading a CPU counter on each
226           kernel entry and exit and on transitions within the kernel
227           between system, softirq and hardirq state, so there is a
228           small performance impact.  This also enables accounting of
229           stolen time on logically-partitioned systems running on
230           IBM POWER5-based machines.
231
232           If in doubt, say Y here.
233
234 config SMP
235         depends on PPC_STD_MMU || FSL_BOOKE
236         bool "Symmetric multi-processing support"
237         ---help---
238           This enables support for systems with more than one CPU. If you have
239           a system with only one CPU, say N. If you have a system with more
240           than one CPU, say Y.  Note that the kernel does not currently
241           support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
242           since they have inadequate hardware support for multiprocessor
243           operation.
244
245           If you say N here, the kernel will run on single and multiprocessor
246           machines, but will use only one CPU of a multiprocessor machine. If
247           you say Y here, the kernel will run on single-processor machines.
248           On a single-processor machine, the kernel will run faster if you say
249           N here.
250
251           If you don't know what to do here, say N.
252
253 config NR_CPUS
254         int "Maximum number of CPUs (2-1024)"
255         range 2 1024
256         depends on SMP
257         default "32" if PPC64
258         default "4"
259
260 config NOT_COHERENT_CACHE
261         bool
262         depends on 4xx || 8xx || E200 || PPC_MPC512x
263         default y
264
265 config CHECK_CACHE_COHERENCY
266         bool
267
268 endmenu