[POWERPC] Split out CPU specific options into a new Kconfig file
[powerpc.git] / arch / powerpc / platforms / Kconfig.cputype
1 config 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
8 menu "Processor support"
9 choice
10         prompt "Processor Type"
11         depends on PPC32
12         default 6xx
13
14 config 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
36 config PPC_82xx
37         bool "Freescale 82xx"
38         select 6xx
39         select PPC_FPU
40
41 config 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
49 config PPC_85xx
50         bool "Freescale 85xx"
51         select E500
52         select FSL_SOC
53         select 85xx
54         select WANT_DEVICE_TREE
55
56 config 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
66 config PPC_8xx
67         bool "Freescale 8xx"
68         select FSL_SOC
69         select 8xx
70
71 config 40x
72         bool "AMCC 40x"
73         select PPC_DCR_NATIVE
74
75 config 44x
76         bool "AMCC 44x"
77         select PPC_DCR_NATIVE
78         select WANT_DEVICE_TREE
79
80 config E200
81         bool "Freescale e200"
82
83 endchoice
84
85 config 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
94 config POWER3
95         bool
96         depends on PPC64
97         default y if !POWER4_ONLY
98
99 config POWER4
100         depends on PPC64
101         def_bool y
102
103 config 6xx
104         bool
105
106 # this is temp to handle compat with arch=ppc
107 config 8xx
108         bool
109
110 # this is temp to handle compat with arch=ppc
111 config 83xx
112         bool
113
114 # this is temp to handle compat with arch=ppc
115 config 85xx
116         bool
117
118 config E500
119         bool
120
121 config PPC_FPU
122         bool
123         default y if PPC64
124
125 config 4xx
126         bool
127         depends on 40x || 44x
128         default y
129
130 config BOOKE
131         bool
132         depends on E200 || E500 || 44x
133         default y
134
135 config FSL_BOOKE
136         bool
137         depends on E200 || E500
138         default y
139
140 config PTE_64BIT
141         bool
142         depends on 44x || E500
143         default y if 44x
144         default y if E500 && PHYS_64BIT
145
146 config 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
157 config 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
173 config 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
189 config PPC_STD_MMU
190         bool
191         depends on 6xx || POWER3 || POWER4 || PPC64
192         default y
193
194 config PPC_STD_MMU_32
195         def_bool y
196         depends on PPC_STD_MMU && PPC32
197
198 config PPC_MM_SLICES
199         bool
200         default y if HUGETLB_PAGE
201         default n
202
203 config 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
218 config 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
237 config 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
244 config NOT_COHERENT_CACHE
245         bool
246         depends on 4xx || 8xx || E200
247         default y
248
249 config CONFIG_CHECK_CACHE_COHERENCY
250         bool
251
252 endmenu