blob: 3bb43adce44dc3c907d63de44660ba8cc4fb6531 [file] [log] [blame]
Paul Mackerras14cf11a2005-09-26 16:04:21 +10001# For a description of the syntax of this configuration file,
2# see Documentation/kbuild/kconfig-language.txt.
3#
4
5mainmenu "Linux/PowerPC Kernel Configuration"
6
Arnd Bergmanna0ae9c72007-06-13 02:30:17 +10007source "arch/powerpc/platforms/Kconfig.cputype"
Johannes Berg17e638b2007-03-19 11:53:53 +01008
Paul Mackerras14cf11a2005-09-26 16:04:21 +10009config PPC32
10 bool
11 default y if !PPC64
12
13config 64BIT
14 bool
15 default y if PPC64
16
Stephen Rothwell2578bfa2007-09-21 10:16:20 +100017config WORD_SIZE
18 int
19 default 64 if PPC64
20 default 32 if !PPC64
21
Jeremy Fitzhardinge600715d2008-09-11 01:31:45 -070022config ARCH_PHYS_ADDR_T_64BIT
23 def_bool PPC64 || PHYS_64BIT
24
Paul Mackerras14cf11a2005-09-26 16:04:21 +100025config MMU
26 bool
27 default y
28
Tony Breedsaa3be5f2007-09-21 13:26:02 +100029config GENERIC_CMOS_UPDATE
30 def_bool y
31
Tony Breeds4a4cfe32007-09-22 07:35:52 +100032config GENERIC_TIME
33 def_bool y
34
35config GENERIC_TIME_VSYSCALL
36 def_bool y
37
Tony Breedsd831d0b2007-09-21 13:26:03 +100038config GENERIC_CLOCKEVENTS
39 def_bool y
40
Paul Mackerras14cf11a2005-09-26 16:04:21 +100041config GENERIC_HARDIRQS
42 bool
43 default y
44
travis@sgi.com988c3882008-01-30 23:27:58 +010045config HAVE_SETUP_PER_CPU_AREA
travis@sgi.comb32ef632008-01-30 13:32:51 +010046 def_bool PPC64
47
Ingo Molnar0d7012a2006-06-29 02:24:43 -070048config IRQ_PER_CPU
49 bool
50 default y
51
Christoph Hellwigfd3e0bb2008-04-17 14:35:00 +100052config STACKTRACE_SUPPORT
53 bool
54 default y
55
Arnd Bergmann01f4b8b2008-07-11 00:08:18 +100056config HAVE_LATENCYTOP_SUPPORT
57 def_bool y
58
Benjamin Herrenschmidt945feb12008-04-17 14:35:01 +100059config TRACE_IRQFLAGS_SUPPORT
60 bool
61 depends on PPC64
62 default y
63
64config LOCKDEP_SUPPORT
65 bool
66 default y
67
Paul Mackerras14cf11a2005-09-26 16:04:21 +100068config RWSEM_GENERIC_SPINLOCK
69 bool
70
71config RWSEM_XCHGADD_ALGORITHM
72 bool
73 default y
74
Nick Piggin95c354f2008-01-30 13:31:20 +010075config GENERIC_LOCKBREAK
76 bool
77 default y
78 depends on SMP && PREEMPT
79
David Howellsf0d1b0b2006-12-08 02:37:49 -080080config ARCH_HAS_ILOG2_U32
81 bool
David Howellsef55d532006-12-08 02:37:53 -080082 default y
David Howellsf0d1b0b2006-12-08 02:37:49 -080083
84config ARCH_HAS_ILOG2_U64
85 bool
David Howellsef55d532006-12-08 02:37:53 -080086 default y if 64BIT
David Howellsf0d1b0b2006-12-08 02:37:49 -080087
Akinobu Mitae779b2f2006-03-26 01:39:33 -080088config GENERIC_HWEIGHT
89 bool
90 default y
91
Paul Mackerras14cf11a2005-09-26 16:04:21 +100092config GENERIC_CALIBRATE_DELAY
93 bool
94 default y
95
Jon Mason0a9cb462006-05-19 15:35:32 -050096config GENERIC_FIND_NEXT_BIT
97 bool
98 default y
99
Anton Vorontsovb7ce3412008-04-11 23:06:36 +1000100config GENERIC_GPIO
101 bool
102 help
103 Generic GPIO API support
104
Stephen Rothwellf057eac2007-07-15 23:40:05 -0700105config ARCH_NO_VIRT_TO_BUS
106 def_bool PPC64
107
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000108config PPC
109 bool
110 default y
Steven Rostedt2b79d692009-01-06 18:49:17 +0000111 select HAVE_FTRACE_MCOUNT_RECORD
112 select HAVE_DYNAMIC_FTRACE
Steven Rostedt606576c2008-10-06 19:06:12 -0400113 select HAVE_FUNCTION_TRACER
Steven Rostedt60ce8f72009-02-11 20:06:43 -0500114 select HAVE_FUNCTION_GRAPH_TRACER
Michael Buesch7444a722008-07-25 01:46:11 -0700115 select ARCH_WANT_OPTIONAL_GPIOLIB
Sam Ravnborgec7748b2008-02-09 10:46:40 +0100116 select HAVE_IDE
Benjamin Herrenschmidta1f242f2008-07-23 21:27:08 -0700117 select HAVE_IOREMAP_PROT
Johannes Berg58340a02008-07-25 01:45:33 -0700118 select HAVE_EFFICIENT_UNALIGNED_ACCESS
Mathieu Desnoyers3f550092008-02-02 15:10:35 -0500119 select HAVE_KPROBES
Jason Wessel17ce4522008-07-23 11:30:15 -0500120 select HAVE_ARCH_KGDB
Ananth N Mavinakayanahalli9edddaa2008-03-04 14:28:37 -0800121 select HAVE_KRETPROBES
Roland McGrathdec2b0d2008-07-27 16:53:20 +1000122 select HAVE_ARCH_TRACEHOOK
David S. Millerd9b2b2a2008-02-13 16:56:49 -0800123 select HAVE_LMB
Takashi Iwai7ff86b02008-07-16 02:20:11 +0200124 select HAVE_DMA_ATTRS if PPC64
Jens Axboeb7d7a242008-06-26 11:22:13 +0200125 select USE_GENERIC_SMP_HELPERS if SMP
Steven Rostedt4e491d12008-05-14 23:49:44 -0400126 select HAVE_OPROFILE
Benjamin Herrenschmidtee6a0932009-01-14 14:14:00 +0100127 select HAVE_SYSCALL_WRAPPERS if PPC64
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000128
129config EARLY_PRINTK
130 bool
Benjamin Herrenschmidt51d30822005-11-23 17:57:25 +1100131 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000132
133config COMPAT
134 bool
135 default y if PPC64
Roland McGrath01e31db2008-01-02 17:03:11 -0800136 select COMPAT_BINFMT_ELF
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000137
138config SYSVIPC_COMPAT
139 bool
140 depends on COMPAT && SYSVIPC
141 default y
142
143# All PPC32s use generic nvram driver through ppc_md
144config GENERIC_NVRAM
145 bool
146 default y if PPC32
147
Ingo Molnarae1e9132008-11-11 09:05:16 +0100148config SCHED_OMIT_FRAME_POINTER
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000149 bool
150 default y
151
152config ARCH_MAY_HAVE_PC_FDC
153 bool
Stephen Rothwellbed59272007-03-04 17:04:44 +1100154 default !PPC_PSERIES || PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000155
Kumar Gala08264cb2006-01-10 21:43:56 -0600156config PPC_OF
157 def_bool y
158
Stephen Rothwell97e873e2007-05-01 16:26:07 +1000159config OF
160 def_bool y
161
Kumar Gala08264cb2006-01-10 21:43:56 -0600162config PPC_UDBG_16550
163 bool
164 default n
165
Kumar Gala08264cb2006-01-10 21:43:56 -0600166config GENERIC_TBSYNC
167 bool
168 default y if PPC32 && SMP
169 default n
170
Al Viroe65e1fc2006-09-12 03:04:40 -0400171config AUDIT_ARCH
172 bool
173 default y
174
Jeremy Fitzhardinge73c9cea2006-12-08 03:30:41 -0800175config GENERIC_BUG
176 bool
177 default y
178 depends on BUG
179
Johannes Bergb3028872007-03-20 05:18:02 +1100180config SYS_SUPPORTS_APM_EMULATION
Kumar Gala58da10b2007-05-23 09:51:46 -0500181 default y if PMAC_APM_EMU
Johannes Bergb3028872007-03-20 05:18:02 +1100182 bool
183
David Gibson9fffb552009-04-30 15:25:53 +1000184config DTC
185 bool
186 default y
187
Kumar Galaf4fc4a52006-01-16 10:53:22 -0600188config DEFAULT_UIMAGE
189 bool
190 help
191 Used to allow a board to specify it wants a uImage built by default
192 default n
193
Scott Woodb09c1642008-01-17 16:31:40 -0600194config REDBOOT
195 bool
196
Johannes Berg801e4062007-12-08 02:12:39 +0100197config HIBERNATE_32
Johannes Berg543b9fd2007-05-03 22:31:38 +1000198 bool
Johannes Berg801e4062007-12-08 02:12:39 +0100199 depends on (PPC_PMAC && !SMP) || BROKEN
200 default y
201
202config HIBERNATE_64
203 bool
204 depends on BROKEN || (PPC_PMAC64 && EXPERIMENTAL)
205 default y
206
207config ARCH_HIBERNATION_POSSIBLE
208 bool
209 depends on (PPC64 && HIBERNATE_64) || (PPC32 && HIBERNATE_32)
Johannes Berg543b9fd2007-05-03 22:31:38 +1000210 default y
211
Johannes Bergf4cb5702007-12-08 02:14:00 +0100212config ARCH_SUSPEND_POSSIBLE
213 def_bool y
Scott Woodd49747b2007-10-09 12:37:13 -0500214 depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx
Johannes Bergf4cb5702007-12-08 02:14:00 +0100215
Benjamin Herrenschmidt4c75a6f2006-11-11 17:24:53 +1100216config PPC_DCR_NATIVE
217 bool
218 default n
219
220config PPC_DCR_MMIO
221 bool
222 default n
223
224config PPC_DCR
225 bool
226 depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
227 default y
228
Benjamin Herrenschmidt4c9d2802006-11-11 17:25:08 +1100229config PPC_OF_PLATFORM_PCI
230 bool
Stephen Rothwell373a6da2007-12-21 15:37:07 +1100231 depends on PCI
Benjamin Herrenschmidt4c9d2802006-11-11 17:25:08 +1100232 depends on PPC64 # not supported on 32 bits yet
233 default n
234
Akinobu Mita6a11f752009-03-31 15:23:17 -0700235config ARCH_SUPPORTS_DEBUG_PAGEALLOC
236 def_bool y
237
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000238source "init/Kconfig"
239
Matt Helsleydc52ddc2008-10-18 20:27:21 -0700240source "kernel/Kconfig.freezer"
241
Benjamin Herrenschmidta2d2e1e2007-12-21 15:39:24 +1100242source "arch/powerpc/sysdev/Kconfig"
Kumar Gala4330f5d2007-03-16 09:32:17 -0500243source "arch/powerpc/platforms/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000244
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000245menu "Kernel options"
246
247config HIGHMEM
248 bool "High memory support"
249 depends on PPC32
250
Tony Breeds1ad74992007-09-21 13:26:03 +1000251source kernel/time/Kconfig
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000252source kernel/Kconfig.hz
253source kernel/Kconfig.preempt
254source "fs/Kconfig.binfmt"
255
Mel Gormanba72cb82007-11-28 16:21:13 -0800256config HUGETLB_PAGE_SIZE_VARIABLE
257 bool
258 depends on HUGETLB_PAGE
259 default y
260
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000261config MATH_EMULATION
262 bool "Math emulation"
Kumar Gala4d527192007-01-26 00:23:34 -0600263 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000264 ---help---
265 Some PowerPC chips designed for embedded applications do not have
266 a floating-point unit and therefore do not implement the
267 floating-point instructions in the PowerPC instruction set. If you
268 say Y here, the kernel will include code to emulate a floating-point
269 unit, which will allow programs that use floating-point
270 instructions to run.
271
Scott Wood5dd57a12007-09-18 15:29:35 -0500272config 8XX_MINIMAL_FPEMU
273 bool "Minimal math emulation for 8xx"
274 depends on 8xx && !MATH_EMULATION
275 help
276 Older arch/ppc kernels still emulated a few floating point
277 instructions such as load and store, even when full math
278 emulation is disabled. Say "Y" here if you want to preserve
279 this behavior.
280
281 It is recommended that you build a soft-float userspace instead.
282
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000283config IOMMU_VMERGE
Linas Vepstas768cc2d2007-07-18 02:09:35 +1000284 bool "Enable IOMMU virtual merging"
285 depends on PPC64
286 default y
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000287 help
288 Cause IO segments sent to a device for DMA to be merged virtually
289 by the IOMMU when they happen to have been allocated contiguously.
290 This doesn't add pressure to the IOMMU allocator. However, some
291 drivers don't support getting large merged segments coming back
Linas Vepstas768cc2d2007-07-18 02:09:35 +1000292 from *_map_sg().
293
294 Most drivers don't have this problem; it is safe to say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000295
FUJITA Tomonorifb3475e2008-02-04 22:28:08 -0800296config IOMMU_HELPER
297 def_bool PPC64
298
Becky Bruce15e09c02008-11-20 06:49:16 +0000299config PPC_NEED_DMA_SYNC_OPS
300 def_bool y
301 depends on NOT_COHERENT_CACHE
302
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000303config HOTPLUG_CPU
304 bool "Support for enabling/disabling CPUs"
305 depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
306 ---help---
307 Say Y here to be able to disable and re-enable individual
308 CPUs at runtime on SMP machines.
309
310 Say N if you are unsure.
311
Yasunori Gotocc576372006-06-29 02:24:27 -0700312config ARCH_ENABLE_MEMORY_HOTPLUG
313 def_bool y
314
Badari Pulavartya99824f2008-02-05 00:10:18 -0800315config ARCH_HAS_WALK_MEMORY
316 def_bool y
317
Badari Pulavarty14824712008-02-05 00:10:17 -0800318config ARCH_ENABLE_MEMORY_HOTREMOVE
319 def_bool y
320
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000321config KEXEC
322 bool "kexec system call (EXPERIMENTAL)"
Geert Uytterhoevencb93d562009-04-02 06:25:41 +0000323 depends on PPC_BOOK3S && EXPERIMENTAL
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000324 help
325 kexec is a system call that implements the ability to shutdown your
326 current kernel, and to start another kernel. It is like a reboot
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400327 but it is independent of the system firmware. And like a reboot
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000328 you can start any kernel with it, not just Linux.
329
Matt LaPlante1f1332f2006-06-29 01:32:47 -0400330 The name comes from the similarity to the exec system call.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000331
332 It is an ongoing process to be certain the hardware in a machine
333 is properly shutdown, so do not be surprised if this code does not
334 initially work for you. It may help to enable device hotplugging
335 support. As of this writing the exact hardware interface is
336 strongly in flux, so no good recommendation can be made.
337
Haren Mynenie8625d462006-01-14 13:48:25 -0800338config CRASH_DUMP
Bernhard Walle3420b5d2008-06-27 03:02:15 +1000339 bool "Build a kdump crash kernel"
Mohan Kumar Mc6ac71a2009-01-06 00:23:01 +0000340 depends on PPC64 || 6xx
341 select RELOCATABLE if PPC64
Haren Mynenie8625d462006-01-14 13:48:25 -0800342 help
343 Build a kernel suitable for use as a kdump capture kernel.
Mohan Kumar M54622f12008-10-21 17:38:10 +0000344 The same kernel binary can be used as production kernel and dump
345 capture kernel.
Haren Mynenie8625d462006-01-14 13:48:25 -0800346
Manish Ahuja242f2712008-03-22 10:50:50 +1100347config PHYP_DUMP
348 bool "Hypervisor-assisted dump (EXPERIMENTAL)"
349 depends on PPC_PSERIES && EXPERIMENTAL
350 help
351 Hypervisor-assisted dump is meant to be a kdump replacement
352 offering robustness and speed not possible without system
Matt LaPlante692105b2009-01-26 11:12:25 +0100353 hypervisor assistance.
Manish Ahuja242f2712008-03-22 10:50:50 +1100354
355 If unsure, say "N"
356
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000357config PPCBUG_NVRAM
358 bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
359 default y if PPC_PREP
360
361config IRQ_ALL_CPUS
362 bool "Distribute interrupts on all CPUs by default"
363 depends on SMP && !MV64360
364 help
365 This option gives the kernel permission to distribute IRQs across
366 multiple CPUs. Saying N here will route all IRQs to the first
367 CPU. Generally saying Y is safe, although some problems have been
368 reported with SMP Power Macintoshes with this option enabled.
369
Andy Whitcroftffa27b62005-10-28 17:46:58 -0700370config NUMA
371 bool "NUMA support"
372 depends on PPC64
373 default y if SMP && PPC_PSERIES
374
Yasunori Gotoc80d79d2006-04-10 22:53:53 -0700375config NODES_SHIFT
376 int
377 default "4"
378 depends on NEED_MULTIPLE_NODES
379
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000380config ARCH_SELECT_MEMORY_MODEL
381 def_bool y
382 depends on PPC64
383
384config ARCH_FLATMEM_ENABLE
Andy Whitcroft9100b202005-11-29 19:20:55 +0000385 def_bool y
386 depends on (PPC64 && !NUMA) || PPC32
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000387
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000388config ARCH_SPARSEMEM_ENABLE
389 def_bool y
Andy Whitcroft9100b202005-11-29 19:20:55 +0000390 depends on PPC64
Andy Whitcroftd29eff72007-10-16 01:24:17 -0700391 select SPARSEMEM_VMEMMAP_ENABLE
Anton Blanchard45fb6ce2005-11-11 14:22:35 +1100392
393config ARCH_SPARSEMEM_DEFAULT
394 def_bool y
Benjamin Herrenschmidt78bde532007-02-13 11:46:06 +1100395 depends on (SMP && PPC_PSERIES) || PPC_PS3
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000396
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700397config ARCH_POPULATES_NODE_MAP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000398 def_bool y
Mel Gormanc67c3cb2006-09-27 01:49:49 -0700399
400source "mm/Kconfig"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000401
Mike Kravetz7e9191d2005-11-07 09:39:48 -0800402config ARCH_MEMORY_PROBE
403 def_bool y
404 depends on MEMORY_HOTPLUG
405
Andy Whitcroft75167952006-10-21 10:24:14 -0700406# Some NUMA nodes have memory ranges that span
407# other nodes. Even though a pfn is valid and
408# between a node's start and end pfns, it may not
409# reside on that node. See memmap_init_zone()
410# for details.
411config NODES_SPAN_OTHER_NODES
412 def_bool y
413 depends on NEED_MULTIPLE_NODES
414
Benjamin Herrenschmidt16c2d472007-05-08 16:27:28 +1000415config PPC_HAS_HASH_64K
416 bool
417 depends on PPC64
418 default n
419
Yuri Tikhonove1240122009-01-29 01:40:44 +0000420config STDBINUTILS
421 bool "Using standard binutils settings"
422 depends on 44x
423 default y
424 help
425 Turning this option off allows you to select 256KB PAGE_SIZE on 44x.
426 Note, that kernel will be able to run only those applications,
427 which had been compiled using binutils later than 2.17.50.0.3 with
428 '-zmax-page-size' set to 256K (the default is 64K). Or, if using
429 the older binutils, you can patch them with a trivial patch, which
430 changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000.
431
Ilya Yanokca9153a2008-12-11 04:55:41 +0300432choice
433 prompt "Page size"
434 default PPC_4K_PAGES
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100435 help
Ilya Yanokca9153a2008-12-11 04:55:41 +0300436 Select the kernel logical page size. Increasing the page size
437 will reduce software overhead at each page boundary, allow
438 hardware prefetch mechanisms to be more effective, and allow
439 larger dma transfers increasing IO efficiency and reducing
440 overhead. However the utilization of memory will increase.
441 For example, each cached file will using a multiple of the
442 page size to hold its contents and the difference between the
443 end of file and the end of page is wasted.
444
445 Some dedicated systems, such as software raid serving with
446 accelerated calculations, have shown significant increases.
447
448 If you configure a 64 bit kernel for 64k pages but the
449 processor does not support them, then the kernel will simulate
450 them with 4k pages, loading them on demand, but with the
451 reduced software overhead and larger internal fragmentation.
452 For the 32 bit kernel, a large page option will not be offered
453 unless it is supported by the configured processor.
454
455 If unsure, choose 4K_PAGES.
456
457config PPC_4K_PAGES
458 bool "4k page size"
459
460config PPC_16K_PAGES
461 bool "16k page size" if 44x
462
463config PPC_64K_PAGES
464 bool "64k page size" if 44x || PPC_STD_MMU_64
465 select PPC_HAS_HASH_64K if PPC_STD_MMU_64
466
Yuri Tikhonove1240122009-01-29 01:40:44 +0000467config PPC_256K_PAGES
468 bool "256k page size" if 44x
Hugh Dickinsadf213c2009-04-06 11:01:15 +0000469 depends on !STDBINUTILS
Yuri Tikhonove1240122009-01-29 01:40:44 +0000470 help
471 Make the page size 256k.
472
473 As the ELF standard only requires alignment to support page
474 sizes up to 64k, you will need to compile all of your user
475 space applications with a non-standard binutils settings
476 (see the STDBINUTILS description for details).
477
478 Say N unless you know what you are doing.
479
Ilya Yanokca9153a2008-12-11 04:55:41 +0300480endchoice
Benjamin Herrenschmidt3c726f82005-11-07 11:06:55 +1100481
Stephen Rothwell53bcddb2008-04-11 11:11:56 +1000482config FORCE_MAX_ZONEORDER
483 int "Maximum zone order"
Ilya Yanokca9153a2008-12-11 04:55:41 +0300484 range 9 64 if PPC_STD_MMU_64 && PPC_64K_PAGES
485 default "9" if PPC_STD_MMU_64 && PPC_64K_PAGES
486 range 13 64 if PPC_STD_MMU_64 && !PPC_64K_PAGES
487 default "13" if PPC_STD_MMU_64 && !PPC_64K_PAGES
488 range 9 64 if PPC_STD_MMU_32 && PPC_16K_PAGES
489 default "9" if PPC_STD_MMU_32 && PPC_16K_PAGES
490 range 7 64 if PPC_STD_MMU_32 && PPC_64K_PAGES
491 default "7" if PPC_STD_MMU_32 && PPC_64K_PAGES
Yuri Tikhonove1240122009-01-29 01:40:44 +0000492 range 5 64 if PPC_STD_MMU_32 && PPC_256K_PAGES
493 default "5" if PPC_STD_MMU_32 && PPC_256K_PAGES
Johannes Bergebe40c52008-09-24 04:29:08 +0000494 range 11 64
Stephen Rothwell53bcddb2008-04-11 11:11:56 +1000495 default "11"
496 help
497 The kernel memory allocator divides physically contiguous memory
498 blocks into "zones", where each zone is a power of two number of
499 pages. This option selects the largest power of two that the kernel
500 keeps in the memory allocator. If you need to allocate very large
501 blocks of physically contiguous memory, then you may need to
502 increase this value.
503
504 This config option is actually maximum order plus one. For example,
505 a value of 11 means that the largest free memory block is 2^10 pages.
506
507 The page size is not necessarily 4KB. For example, on 64-bit
508 systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep
509 this in mind when choosing a value for this option.
510
Paul Mackerrasfa282372008-01-24 08:35:13 +1100511config PPC_SUBPAGE_PROT
512 bool "Support setting protections for 4k subpages"
Ilya Yanokca9153a2008-12-11 04:55:41 +0300513 depends on PPC_STD_MMU_64 && PPC_64K_PAGES
Paul Mackerrasfa282372008-01-24 08:35:13 +1100514 help
515 This option adds support for a system call to allow user programs
516 to set access permissions (read/write, readonly, or no access)
517 on the 4k subpages of each 64k page.
518
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000519config SCHED_SMT
520 bool "SMT (Hyperthreading) scheduler support"
521 depends on PPC64 && SMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000522 help
523 SMT scheduler support improves the CPU scheduler's decision making
524 when dealing with POWER5 cpus at a cost of slightly increased
525 overhead in some places. If unsure say N here.
526
527config PROC_DEVICETREE
Paul Mackerras5f296752005-10-17 20:14:59 +1000528 bool "Support for device tree in /proc"
529 depends on PROC_FS
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000530 help
531 This option adds a device-tree directory under /proc which contains
532 an image of the device tree that the kernel copies from Open
Paul Mackerras5f296752005-10-17 20:14:59 +1000533 Firmware or other boot firmware. If unsure, say Y here.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000534
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000535config CMDLINE_BOOL
536 bool "Default bootloader kernel arguments"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000537
538config CMDLINE
539 string "Initial kernel command string"
540 depends on CMDLINE_BOOL
541 default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
542 help
543 On some platforms, there is currently no way for the boot loader to
544 pass arguments to the kernel. For these platforms, you can supply
545 some command-line options at build time by entering them here. In
546 most cases you will need to specify the root device here.
547
Grant Likelyc356aa42008-07-09 09:41:52 -0600548config EXTRA_TARGETS
549 string "Additional default image types"
550 help
551 List additional targets to be built by the bootwrapper here (separated
552 by spaces). This is useful for targets that depend of device tree
553 files in the .dts directory.
554
555 Targets in this list will be build as part of the default build
556 target, or when the user does a 'make zImage' or a
557 'make zImage.initrd'.
558
559 If unsure, leave blank
560
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000561if !44x || BROKEN
Johannes Bergb28f5082008-01-15 23:17:00 -0500562config ARCH_WANTS_FREEZER_CONTROL
563 def_bool y
564 depends on ADB_PMU
565
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000566source kernel/power/Kconfig
567endif
568
569config SECCOMP
570 bool "Enable seccomp to safely compute untrusted bytecode"
571 depends on PROC_FS
572 default y
573 help
574 This kernel feature is useful for number crunching applications
575 that may need to compute untrusted bytecode during their
576 execution. By using pipes or other transports made available to
577 the process as file descriptors supporting the read/write
578 syscalls, it's possible to isolate those applications in
579 their own address space using seccomp. Once seccomp is
580 enabled via /proc/<pid>/seccomp, it cannot be disabled
581 and the task is only allowed to execute a few safe syscalls
582 defined by each seccomp mode.
583
584 If unsure, say Y. Only embedded should say N here.
585
586endmenu
587
588config ISA_DMA_API
589 bool
Stephen Rothwell373a6da2007-12-21 15:37:07 +1100590 default !PPC_ISERIES || PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000591
592menu "Bus options"
593
594config ISA
595 bool "Support for ISA-bus hardware"
596 depends on PPC_PREP || PPC_CHRP
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000597 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000598 help
599 Find out whether you have ISA slots on your motherboard. ISA is the
600 name of a bus system, i.e. the way the CPU talks to the other stuff
601 inside your box. If you have an Apple machine, say N here; if you
602 have an IBM RS/6000 or pSeries machine or a PReP machine, say Y. If
603 you have an embedded board, consult your board documentation.
604
Christoph Lameter5ac6da62007-02-10 01:43:14 -0800605config ZONE_DMA
606 bool
607 default y
608
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000609config GENERIC_ISA_DMA
610 bool
611 depends on PPC64 || POWER4 || 6xx && !CPM2
612 default y
613
Paul Mackerras25635c72005-10-26 16:36:55 +1000614config PPC_INDIRECT_PCI
615 bool
616 depends on PCI
Becky Bruce63dafe52006-01-14 16:57:39 -0600617 default y if 40x || 44x
Paul Mackerras25635c72005-10-26 16:36:55 +1000618 default n
619
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000620config EISA
621 bool
622
623config SBUS
624 bool
625
Kumar Gala08264cb2006-01-10 21:43:56 -0600626config FSL_SOC
627 bool
628
Roy Zang55c44992007-07-10 18:44:34 +0800629config FSL_PCI
630 bool
631 select PPC_INDIRECT_PCI
Kumar Galad0839112009-01-28 13:25:29 -0600632 select PCI_QUIRKS
Roy Zang55c44992007-07-10 18:44:34 +0800633
Stefan Roese2a706912008-03-26 22:39:50 +1100634config 4xx_SOC
635 bool
636
Anton Vorontsovacaa7aa2008-04-11 21:03:40 +0400637config FSL_LBC
638 bool
639 help
640 Freescale Localbus support
641
Anton Vorontsov83ff9dc2008-05-23 20:38:54 +0400642config FSL_GTM
643 bool
644 depends on PPC_83xx || QUICC_ENGINE || CPM2
645 help
646 Freescale General-purpose Timers support
647
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000648# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
649config MCA
650 bool
651
John Rigbyb5005632008-06-26 11:07:56 -0600652# Platforms that what PCI turned unconditionally just do select PCI
653# in their config node. Platforms that want to choose at config
654# time should select PPC_PCI_CHOICE
655config PPC_PCI_CHOICE
656 bool
657
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000658config PCI
John Rigbyb5005632008-06-26 11:07:56 -0600659 bool "PCI support" if PPC_PCI_CHOICE
660 default y if !40x && !CPM2 && !8xx && !PPC_83xx \
Jon Loeliger53158622006-08-09 10:37:28 -0500661 && !PPC_85xx && !PPC_86xx
David Gibsonf21f49e2007-06-13 14:52:54 +1000662 default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000663 default PCI_QSPAN if !4xx && !CPM2 && 8xx
Michael Ellermandf87ef52007-05-08 12:58:34 +1000664 select ARCH_SUPPORTS_MSI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000665 help
666 Find out whether your system includes a PCI bus. PCI is the name of
667 a bus system, i.e. the way the CPU talks to the other stuff inside
668 your box. If you say Y here, the kernel will include drivers and
669 infrastructure code to support PCI bus devices.
670
671config PCI_DOMAINS
Matthew Wilcox36e23592007-07-10 10:54:40 -0600672 def_bool PCI
673
674config PCI_SYSCALL
675 def_bool PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000676
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000677config PCI_QSPAN
678 bool "QSpan PCI"
679 depends on !4xx && !CPM2 && 8xx
Paul Mackerrasf9bd1702005-10-26 16:47:42 +1000680 select PPC_I8259
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000681 help
682 Say Y here if you have a system based on a Motorola 8xx-series
683 embedded processor with a QSPAN PCI interface, otherwise say N.
684
685config PCI_8260
686 bool
687 depends on PCI && 8260
Paul Mackerras25635c72005-10-26 16:36:55 +1000688 select PPC_INDIRECT_PCI
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000689 default y
690
691config 8260_PCI9
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700692 bool "Enable workaround for MPC826x erratum PCI 9"
Scott Woode00c5492007-09-14 15:41:56 -0500693 depends on PCI_8260 && !8272
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000694 default y
695
696choice
Andrew Morton4a3ecc62006-06-01 20:36:04 -0700697 prompt "IDMA channel for PCI 9 workaround"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000698 depends on 8260_PCI9
699
700config 8260_PCI9_IDMA1
701 bool "IDMA1"
702
703config 8260_PCI9_IDMA2
704 bool "IDMA2"
705
706config 8260_PCI9_IDMA3
707 bool "IDMA3"
708
709config 8260_PCI9_IDMA4
710 bool "IDMA4"
711
712endchoice
713
Jake Moilanenbb53bb32006-06-07 16:05:46 -0500714source "drivers/pci/pcie/Kconfig"
715
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000716source "drivers/pci/Kconfig"
717
718source "drivers/pcmcia/Kconfig"
719
720source "drivers/pci/hotplug/Kconfig"
721
Zhang Weif1f389d2008-04-18 13:33:39 -0700722config HAS_RAPIDIO
723 bool
724 default n
725
726config RAPIDIO
727 bool "RapidIO support"
728 depends on HAS_RAPIDIO
729 help
730 If you say Y here, the kernel will include drivers and
731 infrastructure code to support RapidIO interconnect devices.
732
733source "drivers/rapidio/Kconfig"
734
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000735endmenu
736
737menu "Advanced setup"
738 depends on PPC32
739
740config ADVANCED_OPTIONS
741 bool "Prompt for advanced kernel configuration options"
742 help
743 This option will enable prompting for a variety of advanced kernel
744 configuration options. These options can cause the kernel to not
745 work if they are set incorrectly, but can be used to optimize certain
746 aspects of kernel memory management.
747
748 Unless you know what you are doing, say N here.
749
750comment "Default settings for advanced configuration options are used"
751 depends on !ADVANCED_OPTIONS
752
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000753config LOWMEM_SIZE_BOOL
754 bool "Set maximum low memory"
755 depends on ADVANCED_OPTIONS
756 help
757 This option allows you to set the maximum amount of memory which
758 will be used as "low memory", that is, memory which the kernel can
759 access directly, without having to set up a kernel virtual mapping.
760 This can be useful in optimizing the layout of kernel virtual
761 memory.
762
763 Say N here unless you know what you are doing.
764
765config LOWMEM_SIZE
766 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
767 default "0x30000000"
768
Trent Piepho96051462008-12-08 19:34:58 -0800769config LOWMEM_CAM_NUM_BOOL
770 bool "Set number of CAMs to use to map low memory"
771 depends on ADVANCED_OPTIONS && FSL_BOOKE
772 help
773 This option allows you to set the maximum number of CAM slots that
774 will be used to map low memory. There are a limited number of slots
775 available and even more limited number that will fit in the L1 MMU.
776 However, using more entries will allow mapping more low memory. This
777 can be useful in optimizing the layout of kernel virtual memory.
778
779 Say N here unless you know what you are doing.
780
781config LOWMEM_CAM_NUM
Josh Boyer9b71dbd2009-03-31 08:05:50 -0400782 depends on FSL_BOOKE
Trent Piepho96051462008-12-08 19:34:58 -0800783 int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
784 default 3
785
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000786config RELOCATABLE
787 bool "Build a relocatable kernel (EXPERIMENTAL)"
788 depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
789 help
790 This builds a kernel image that is capable of running at the
791 location the kernel is loaded at (some alignment restrictions may
792 exist).
793
794 One use is for the kexec on panic case where the recovery kernel
795 must live at a different physical address than the primary
796 kernel.
797
798 Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
799 it has been loaded at and the compile time physical addresses
800 CONFIG_PHYSICAL_START is ignored. However CONFIG_PHYSICAL_START
801 setting can still be useful to bootwrappers that need to know the
802 load location of the kernel (eg. u-boot/mkimage).
803
804config PAGE_OFFSET_BOOL
805 bool "Set custom page offset address"
806 depends on ADVANCED_OPTIONS
807 help
808 This option allows you to set the kernel virtual address at which
809 the kernel will map low memory. This can be useful in optimizing
810 the virtual memory layout of the system.
811
812 Say N here unless you know what you are doing.
813
814config PAGE_OFFSET
815 hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
816 default "0xc0000000"
817
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000818config KERNEL_START_BOOL
819 bool "Set custom kernel base address"
820 depends on ADVANCED_OPTIONS
821 help
822 This option allows you to set the kernel virtual address at which
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000823 the kernel will be loaded. Normally this should match PAGE_OFFSET
824 however there are times (like kdump) that one might not want them
825 to be the same.
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000826
827 Say N here unless you know what you are doing.
828
829config KERNEL_START
830 hex "Virtual address of kernel base" if KERNEL_START_BOOL
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000831 default PAGE_OFFSET if PAGE_OFFSET_BOOL
832 default "0xc2000000" if CRASH_DUMP
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000833 default "0xc0000000"
834
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000835config PHYSICAL_START_BOOL
836 bool "Set physical address where the kernel is loaded"
837 depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
838 help
839 This gives the physical address where the kernel is loaded.
840
841 Say N here unless you know what you are doing.
842
843config PHYSICAL_START
844 hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
845 default "0x02000000" if PPC_STD_MMU && CRASH_DUMP
846 default "0x00000000"
847
848config PHYSICAL_ALIGN
849 hex
Trent Piephoc8f35702008-12-08 19:34:59 -0800850 default "0x04000000" if FSL_BOOKE
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000851 help
852 This value puts the alignment restrictions on physical address
853 where kernel is loaded and run from. Kernel is compiled for an
854 address which meets above alignment restriction.
855
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000856config TASK_SIZE_BOOL
857 bool "Set custom user task size"
858 depends on ADVANCED_OPTIONS
859 help
860 This option allows you to set the amount of virtual address space
861 allocated to user tasks. This can be useful in optimizing the
862 virtual memory layout of the system.
863
864 Say N here unless you know what you are doing.
865
866config TASK_SIZE
867 hex "Size of user task space" if TASK_SIZE_BOOL
Kumar Gala4d9e55102007-10-11 13:40:21 -0500868 default "0x80000000" if PPC_PREP || PPC_8xx
869 default "0xc0000000"
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000870
Benjamin Herrenschmidt84532a02009-05-27 13:33:14 +1000871config CONSISTENT_START_BOOL
872 bool "Set custom consistent memory pool address"
873 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
874 help
875 This option allows you to set the base virtual address
876 of the consistent memory pool. This pool of virtual
877 memory is used to make consistent memory allocations.
878
879config CONSISTENT_START
880 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
881 default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
882 default "0xff100000" if NOT_COHERENT_CACHE
883
884config CONSISTENT_SIZE_BOOL
885 bool "Set custom consistent memory pool size"
886 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
887 help
888 This option allows you to set the size of the
889 consistent memory pool. This pool of virtual memory
890 is used to make consistent memory allocations.
891
892config CONSISTENT_SIZE
893 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
894 default "0x00200000" if NOT_COHERENT_CACHE
895
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000896config PIN_TLB
897 bool "Pinned Kernel TLBs (860 ONLY)"
898 depends on ADVANCED_OPTIONS && 8xx
899endmenu
900
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000901if PPC64
Paul Mackerras549e8152008-08-30 11:43:47 +1000902config RELOCATABLE
903 bool "Build a relocatable kernel"
904 help
905 This builds a kernel image that is capable of running anywhere
906 in the RMA (real memory area) at any 16k-aligned base address.
907 The kernel is linked as a position-independent executable (PIE)
908 and contains dynamic relocations which are processed early
909 in the bootup process.
910
911 One use is for the kexec on panic case where the recovery kernel
912 must live at a different physical address than the primary
913 kernel.
914
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000915config PAGE_OFFSET
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000916 hex
Stephen Rothwelleeb2d212005-09-30 17:24:15 +1000917 default "0xc000000000000000"
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000918config KERNEL_START
919 hex
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000920 default "0xc000000000000000"
921config PHYSICAL_START
922 hex
Kumar Gala37dd2ba2008-04-22 04:22:34 +1000923 default "0x00000000"
Stephen Rothwellcabb5582005-09-30 16:16:52 +1000924endif
925
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000926source "net/Kconfig"
927
928source "drivers/Kconfig"
929
930source "fs/Kconfig"
931
Li Yang98658532006-10-03 23:10:46 -0500932source "arch/powerpc/sysdev/qe_lib/Kconfig"
933
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000934source "lib/Kconfig"
935
Paul Mackerras14cf11a2005-09-26 16:04:21 +1000936source "arch/powerpc/Kconfig.debug"
937
938source "security/Kconfig"
939
940config KEYS_COMPAT
941 bool
942 depends on COMPAT && KEYS
943 default y
944
945source "crypto/Kconfig"
Domen Puncer6f668282007-09-21 00:00:11 +1000946
947config PPC_CLOCK
948 bool
949 default n
David Brownell9483a572008-07-23 21:26:48 -0700950 select HAVE_CLK
Sylvain Munaut1088a202007-09-16 20:53:25 +1000951
952config PPC_LIB_RHEAP
953 bool
954
Hollis Blanchardbbf45ba2008-04-16 23:28:09 -0500955source "arch/powerpc/kvm/Kconfig"