• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1config PPC64
2	bool "64-bit kernel"
3	default n
4	select HAVE_VIRT_CPU_ACCOUNTING
5	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
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 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.
21
22	  If unsure, select 52xx/6xx/7xx/74xx/82xx/83xx/86xx.
23
24config PPC_BOOK3S_32
25	bool "512x/52xx/6xx/7xx/74xx/82xx/83xx/86xx"
26	select PPC_FPU
27
28config PPC_85xx
29	bool "Freescale 85xx"
30	select E500
31
32config PPC_8xx
33	bool "Freescale 8xx"
34	select FSL_SOC
35	select 8xx
36	select PPC_LIB_RHEAP
37
38config 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
45config 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
53config E200
54	bool "Freescale e200"
55
56endchoice
57
58choice
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	  (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"
71	select PPC_FPU
72	select PPC_HAVE_PMU_SUPPORT
73	select SYS_SUPPORTS_HUGETLBFS
74
75config PPC_BOOK3E_64
76	bool "Embedded processors"
77	select PPC_FPU # Make it a choice ?
78	select PPC_SMP_MUXED_IPI
79	select PPC_DOORBELL
80
81endchoice
82
83choice
84	prompt "CPU selection"
85	depends on PPC64
86	default GENERIC_CPU
87	help
88	  This will create a kernel which is optimised for a particular CPU.
89	  The resulting kernel may not run on other CPUs, so use this with care.
90
91	  If unsure, select Generic.
92
93config GENERIC_CPU
94	bool "Generic"
95
96config CELL_CPU
97	bool "Cell Broadband Engine"
98
99config POWER4_CPU
100	bool "POWER4"
101
102config POWER5_CPU
103	bool "POWER5"
104
105config POWER6_CPU
106	bool "POWER6"
107
108config POWER7_CPU
109	bool "POWER7"
110
111endchoice
112
113config PPC_BOOK3S
114	def_bool y
115	depends on PPC_BOOK3S_32 || PPC_BOOK3S_64
116
117config PPC_BOOK3E
118	def_bool y
119	depends on PPC_BOOK3E_64
120
121config 6xx
122	def_bool y
123	depends on PPC32 && PPC_BOOK3S
124	select PPC_HAVE_PMU_SUPPORT
125
126config POWER3
127	depends on PPC64 && PPC_BOOK3S
128	def_bool y
129
130config POWER4
131	depends on PPC64 && PPC_BOOK3S
132	def_bool y
133
134config PPC_A2
135	bool
136	depends on PPC_BOOK3E_64
137
138config TUNE_CELL
139	bool "Optimize for Cell Broadband Engine"
140	depends on PPC64 && PPC_BOOK3S
141	help
142	  Cause the compiler to optimize for the PPE of the Cell Broadband
143	  Engine. This will make the code run considerably faster on Cell
144	  but somewhat slower on other machines. This option only changes
145	  the scheduling of instructions, not the selection of instructions
146	  itself, so the resulting kernel will keep running on all other
147	  machines.
148
149# this is temp to handle compat with arch=ppc
150config 8xx
151	bool
152
153config E500
154	select FSL_EMB_PERFMON
155	select PPC_FSL_BOOK3E
156	bool
157
158config PPC_E500MC
159	bool "e500mc Support"
160	select PPC_FPU
161	depends on E500
162	help
163	  This must be enabled for running on e500mc (and derivatives
164	  such as e5500/e6500), and must be disabled for running on
165	  e500v1 or e500v2.
166
167config PPC_FPU
168	bool
169	default y if PPC64
170
171config FSL_EMB_PERFMON
172	bool "Freescale Embedded Perfmon"
173	depends on E500 || PPC_83xx
174	help
175	  This is the Performance Monitor support found on the e500 core
176	  and some e300 cores (c3 and c4).  Select this only if your
177	  core supports the Embedded Performance Monitor APU
178
179config FSL_EMB_PERF_EVENT
180	bool
181	depends on FSL_EMB_PERFMON && PERF_EVENTS && !PPC_PERF_CTRS
182	default y
183
184config FSL_EMB_PERF_EVENT_E500
185	bool
186	depends on FSL_EMB_PERF_EVENT && E500
187	default y
188
189config 4xx
190	bool
191	depends on 40x || 44x
192	default y
193
194config BOOKE
195	bool
196	depends on E200 || E500 || 44x || PPC_BOOK3E
197	default y
198
199config FSL_BOOKE
200	bool
201	depends on (E200 || E500) && PPC32
202	default y
203
204# this is for common code between PPC32 & PPC64 FSL BOOKE
205config PPC_FSL_BOOK3E
206	bool
207	select FSL_EMB_PERFMON
208	select PPC_SMP_MUXED_IPI
209	select SYS_SUPPORTS_HUGETLBFS if PHYS_64BIT || PPC64
210	select PPC_DOORBELL
211	default y if FSL_BOOKE
212
213config PTE_64BIT
214	bool
215	depends on 44x || E500 || PPC_86xx
216	default y if PHYS_64BIT
217
218config PHYS_64BIT
219	bool 'Large physical address support' if E500 || PPC_86xx
220	depends on (44x || E500 || PPC_86xx) && !PPC_83xx && !PPC_82xx
221	---help---
222	  This option enables kernel support for larger than 32-bit physical
223	  addresses.  This feature may not be available on all cores.
224
225	  If you have more than 3.5GB of RAM or so, you also need to enable
226	  SWIOTLB under Kernel Options for this to work.  The actual number
227	  is platform-dependent.
228
229	  If in doubt, say N here.
230
231config ALTIVEC
232	bool "AltiVec Support"
233	depends on 6xx || POWER4 || (PPC_E500MC && PPC64)
234	---help---
235	  This option enables kernel support for the Altivec extensions to the
236	  PowerPC processor. The kernel currently supports saving and restoring
237	  altivec registers, and turning on the 'altivec enable' bit so user
238	  processes can execute altivec instructions.
239
240	  This option is only usefully if you have a processor that supports
241	  altivec (G4, otherwise known as 74xx series), but does not have
242	  any affect on a non-altivec cpu (it does, however add code to the
243	  kernel).
244
245	  If in doubt, say Y here.
246
247config VSX
248	bool "VSX Support"
249	depends on POWER4 && ALTIVEC && PPC_FPU
250	---help---
251
252	  This option enables kernel support for the Vector Scaler extensions
253	  to the PowerPC processor. The kernel currently supports saving and
254	  restoring VSX registers, and turning on the 'VSX enable' bit so user
255	  processes can execute VSX instructions.
256
257	  This option is only useful if you have a processor that supports
258	  VSX (P7 and above), but does not have any affect on a non-VSX
259	  CPUs (it does, however add code to the kernel).
260
261	  If in doubt, say Y here.
262
263config PPC_ICSWX
264	bool "Support for PowerPC icswx coprocessor instruction"
265	depends on POWER4 || PPC_A2
266	default n
267	---help---
268
269	  This option enables kernel support for the PowerPC Initiate
270	  Coprocessor Store Word (icswx) coprocessor instruction on POWER7
271	  or newer processors.
272
273	  This option is only useful if you have a processor that supports
274	  the icswx coprocessor instruction. It does not have any effect
275	  on processors without the icswx coprocessor instruction.
276
277	  This option slightly increases kernel memory usage.
278
279	  If in doubt, say N here.
280
281config PPC_ICSWX_PID
282	bool "icswx requires direct PID management"
283	depends on PPC_ICSWX && POWER4
284	default y
285	---help---
286	  The PID register in server is used explicitly for ICSWX.  In
287	  embedded systems PID management is done by the system.
288
289config PPC_ICSWX_USE_SIGILL
290	bool "Should a bad CT cause a SIGILL?"
291	depends on PPC_ICSWX
292	default n
293	---help---
294	  Should a bad CT used for "non-record form ICSWX" cause an
295	  illegal instruction signal or should it be silent as
296	  architected.
297
298	  If in doubt, say N here.
299
300config SPE
301	bool "SPE Support"
302	depends on E200 || (E500 && !PPC_E500MC)
303	default y
304	---help---
305	  This option enables kernel support for the Signal Processing
306	  Extensions (SPE) to the PowerPC processor. The kernel currently
307	  supports saving and restoring SPE registers, and turning on the
308	  'spe enable' bit so user processes can execute SPE instructions.
309
310	  This option is only useful if you have a processor that supports
311	  SPE (e500, otherwise known as 85xx series), but does not have any
312	  effect on a non-spe cpu (it does, however add code to the kernel).
313
314	  If in doubt, say Y here.
315
316config PPC_STD_MMU
317	def_bool y
318	depends on PPC_BOOK3S
319
320config PPC_STD_MMU_32
321	def_bool y
322	depends on PPC_STD_MMU && PPC32
323
324config PPC_STD_MMU_64
325	def_bool y
326	depends on PPC_STD_MMU && PPC64
327
328config PPC_MMU_NOHASH
329	def_bool y
330	depends on !PPC_STD_MMU
331
332config PPC_BOOK3E_MMU
333	def_bool y
334	depends on FSL_BOOKE || PPC_BOOK3E
335
336config PPC_MM_SLICES
337	bool
338	default y if (!PPC_FSL_BOOK3E && PPC64 && HUGETLB_PAGE) || (PPC_STD_MMU_64 && PPC_64K_PAGES)
339	default n
340
341config PPC_HAVE_PMU_SUPPORT
342       bool
343
344config PPC_PERF_CTRS
345       def_bool y
346       depends on PERF_EVENTS && PPC_HAVE_PMU_SUPPORT
347       help
348         This enables the powerpc-specific perf_event back-end.
349
350config SMP
351	depends on PPC_BOOK3S || PPC_BOOK3E || FSL_BOOKE || PPC_47x
352	bool "Symmetric multi-processing support"
353	---help---
354	  This enables support for systems with more than one CPU. If you have
355	  a system with only one CPU, say N. If you have a system with more
356	  than one CPU, say Y.  Note that the kernel does not currently
357	  support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
358	  since they have inadequate hardware support for multiprocessor
359	  operation.
360
361	  If you say N here, the kernel will run on single and multiprocessor
362	  machines, but will use only one CPU of a multiprocessor machine. If
363	  you say Y here, the kernel will run on single-processor machines.
364	  On a single-processor machine, the kernel will run faster if you say
365	  N here.
366
367	  If you don't know what to do here, say N.
368
369config NR_CPUS
370	int "Maximum number of CPUs (2-8192)"
371	range 2 8192
372	depends on SMP
373	default "32" if PPC64
374	default "4"
375
376config NOT_COHERENT_CACHE
377	bool
378	depends on 4xx || 8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON
379	default n if PPC_47x
380	default y
381
382config CHECK_CACHE_COHERENCY
383	bool
384
385config PPC_DOORBELL
386	bool
387	default n
388
389endmenu
390