xref: /linux/arch/powerpc/Kconfig (revision 72e77a1b941e24e67f396246310438afbad9e6b3)
1# 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
7config PPC64
8	bool "64-bit kernel"
9	default n
10	help
11	  This option selects whether a 32-bit or a 64-bit kernel
12	  will be built.
13
14config PPC32
15	bool
16	default y if !PPC64
17
18config 64BIT
19	bool
20	default y if PPC64
21
22config PPC_MERGE
23	def_bool y
24
25config MMU
26	bool
27	default y
28
29config GENERIC_HARDIRQS
30	bool
31	default y
32
33config IRQ_PER_CPU
34	bool
35	default y
36
37config RWSEM_GENERIC_SPINLOCK
38	bool
39
40config RWSEM_XCHGADD_ALGORITHM
41	bool
42	default y
43
44config ARCH_HAS_ILOG2_U32
45	bool
46	default y
47
48config ARCH_HAS_ILOG2_U64
49	bool
50	default y if 64BIT
51
52config GENERIC_HWEIGHT
53	bool
54	default y
55
56config GENERIC_CALIBRATE_DELAY
57	bool
58	default y
59
60config GENERIC_FIND_NEXT_BIT
61	bool
62	default y
63
64config PPC
65	bool
66	default y
67
68config EARLY_PRINTK
69	bool
70	default y
71
72config COMPAT
73	bool
74	default y if PPC64
75
76config SYSVIPC_COMPAT
77	bool
78	depends on COMPAT && SYSVIPC
79	default y
80
81# All PPC32s use generic nvram driver through ppc_md
82config GENERIC_NVRAM
83	bool
84	default y if PPC32
85
86config SCHED_NO_NO_OMIT_FRAME_POINTER
87	bool
88	default y
89
90config ARCH_MAY_HAVE_PC_FDC
91	bool
92	default !PPC_PSERIES || PCI
93
94config PPC_OF
95	def_bool y
96
97config PPC_UDBG_16550
98	bool
99	default n
100
101config GENERIC_TBSYNC
102	bool
103	default y if PPC32 && SMP
104	default n
105
106config AUDIT_ARCH
107	bool
108	default y
109
110config GENERIC_BUG
111	bool
112	default y
113	depends on BUG
114
115config DEFAULT_UIMAGE
116	bool
117	help
118	  Used to allow a board to specify it wants a uImage built by default
119	default n
120
121menu "Processor support"
122choice
123	prompt "Processor Type"
124	depends on PPC32
125	default 6xx
126
127config CLASSIC32
128	bool "52xx/6xx/7xx/74xx"
129	select PPC_FPU
130	select 6xx
131	help
132	  There are four families of PowerPC chips supported.  The more common
133	  types (601, 603, 604, 740, 750, 7400), the Motorola embedded
134	  versions (821, 823, 850, 855, 860, 52xx, 82xx, 83xx), the AMCC
135	  embedded versions (403 and 405) and the high end 64 bit Power
136	  processors (POWER 3, POWER4, and IBM PPC970 also known as G5).
137
138	  This option is the catch-all for 6xx types, including some of the
139	  embedded versions.  Unless there is see an option for the specific
140	  chip family you are using, you want this option.
141
142	  You do not want this if you are building a kernel for a 64 bit
143	  IBM RS/6000 or an Apple G5, choose 6xx.
144
145	  If unsure, select this option
146
147	  Note that the kernel runs in 32-bit mode even on 64-bit chips.
148
149config PPC_82xx
150	bool "Freescale 82xx"
151	select 6xx
152	select PPC_FPU
153
154config PPC_83xx
155	bool "Freescale 83xx"
156	select 6xx
157	select FSL_SOC
158	select 83xx
159	select PPC_FPU
160
161config PPC_85xx
162	bool "Freescale 85xx"
163	select E500
164	select FSL_SOC
165	select 85xx
166
167config PPC_86xx
168	bool "Freescale 86xx"
169	select 6xx
170	select FSL_SOC
171	select PPC_FPU
172	select ALTIVEC
173	help
174	  The Freescale E600 SoCs have 74xx cores.
175
176config PPC_8xx
177	bool "Freescale 8xx"
178	select FSL_SOC
179	select 8xx
180
181config 40x
182	bool "AMCC 40x"
183	select PPC_DCR_NATIVE
184
185config 44x
186	bool "AMCC 44x"
187	select PPC_DCR_NATIVE
188
189
190config E200
191	bool "Freescale e200"
192
193endchoice
194
195config POWER4_ONLY
196	bool "Optimize for POWER4"
197	depends on PPC64
198	default n
199	---help---
200	  Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
201	  The resulting binary will not work on POWER3 or RS64 processors
202	  when compiled with binutils 2.15 or later.
203
204config POWER3
205	bool
206	depends on PPC64
207	default y if !POWER4_ONLY
208
209config POWER4
210	depends on PPC64
211	def_bool y
212
213config 6xx
214	bool
215
216# this is temp to handle compat with arch=ppc
217config 8xx
218	bool
219
220# this is temp to handle compat with arch=ppc
221config 83xx
222	bool
223
224# this is temp to handle compat with arch=ppc
225config 85xx
226	bool
227
228config E500
229	bool
230
231config PPC_FPU
232	bool
233	default y if PPC64
234
235config PPC_DCR_NATIVE
236	bool
237	default n
238
239config PPC_DCR_MMIO
240	bool
241	default n
242
243config PPC_DCR
244	bool
245	depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
246	default y
247
248config PPC_OF_PLATFORM_PCI
249	bool
250	depends on PPC64 # not supported on 32 bits yet
251	default n
252
253config BOOKE
254	bool
255	depends on E200 || E500
256	default y
257
258config FSL_BOOKE
259	bool
260	depends on E200 || E500
261	default y
262
263config PTE_64BIT
264	bool
265	depends on 44x || E500
266	default y if 44x
267	default y if E500 && PHYS_64BIT
268
269config PHYS_64BIT
270	bool 'Large physical address support' if E500
271	depends on 44x || E500
272	select RESOURCES_64BIT
273	default y if 44x
274	---help---
275	  This option enables kernel support for larger than 32-bit physical
276	  addresses.  This features is not be available on all e500 cores.
277
278	  If in doubt, say N here.
279
280config ALTIVEC
281	bool "AltiVec Support"
282	depends on CLASSIC32 || POWER4
283	---help---
284	  This option enables kernel support for the Altivec extensions to the
285	  PowerPC processor. The kernel currently supports saving and restoring
286	  altivec registers, and turning on the 'altivec enable' bit so user
287	  processes can execute altivec instructions.
288
289	  This option is only usefully if you have a processor that supports
290	  altivec (G4, otherwise known as 74xx series), but does not have
291	  any affect on a non-altivec cpu (it does, however add code to the
292	  kernel).
293
294	  If in doubt, say Y here.
295
296config SPE
297	bool "SPE Support"
298	depends on E200 || E500
299	default y
300	---help---
301	  This option enables kernel support for the Signal Processing
302	  Extensions (SPE) to the PowerPC processor. The kernel currently
303	  supports saving and restoring SPE registers, and turning on the
304	  'spe enable' bit so user processes can execute SPE instructions.
305
306	  This option is only useful if you have a processor that supports
307	  SPE (e500, otherwise known as 85xx series), but does not have any
308	  effect on a non-spe cpu (it does, however add code to the kernel).
309
310	  If in doubt, say Y here.
311
312config PPC_STD_MMU
313	bool
314	depends on 6xx || POWER3 || POWER4 || PPC64
315	default y
316
317config PPC_STD_MMU_32
318	def_bool y
319	depends on PPC_STD_MMU && PPC32
320
321config VIRT_CPU_ACCOUNTING
322	bool "Deterministic task and CPU time accounting"
323	depends on PPC64
324	default y
325	help
326	  Select this option to enable more accurate task and CPU time
327	  accounting.  This is done by reading a CPU counter on each
328	  kernel entry and exit and on transitions within the kernel
329	  between system, softirq and hardirq state, so there is a
330	  small performance impact.  This also enables accounting of
331	  stolen time on logically-partitioned systems running on
332	  IBM POWER5-based machines.
333
334	  If in doubt, say Y here.
335
336config SMP
337	depends on PPC_STD_MMU
338	bool "Symmetric multi-processing support"
339	---help---
340	  This enables support for systems with more than one CPU. If you have
341	  a system with only one CPU, say N. If you have a system with more
342	  than one CPU, say Y.  Note that the kernel does not currently
343	  support SMP machines with 603/603e/603ev or PPC750 ("G3") processors
344	  since they have inadequate hardware support for multiprocessor
345	  operation.
346
347	  If you say N here, the kernel will run on single and multiprocessor
348	  machines, but will use only one CPU of a multiprocessor machine. If
349	  you say Y here, the kernel will run on single-processor machines.
350	  On a single-processor machine, the kernel will run faster if you say
351	  N here.
352
353	  If you don't know what to do here, say N.
354
355config NR_CPUS
356	int "Maximum number of CPUs (2-128)"
357	range 2 128
358	depends on SMP
359	default "32" if PPC64
360	default "4"
361
362config NOT_COHERENT_CACHE
363	bool
364	depends on 4xx || 8xx || E200
365	default y
366endmenu
367
368source "init/Kconfig"
369
370menu "Platform support"
371	depends on PPC64 || CLASSIC32
372
373choice
374	prompt "Machine type"
375	default PPC_MULTIPLATFORM
376
377config PPC_MULTIPLATFORM
378	bool "Generic desktop/server/laptop"
379	help
380	  Select this option if configuring for an IBM pSeries or
381	  RS/6000 machine, an Apple machine, or a PReP, CHRP,
382	  Maple or Cell-based machine.
383
384config EMBEDDED6xx
385	bool "Embedded 6xx/7xx/7xxx-based board"
386	depends on PPC32 && (BROKEN||BROKEN_ON_SMP)
387
388config APUS
389	bool "Amiga-APUS"
390	depends on PPC32 && BROKEN
391	help
392	  Select APUS if configuring for a PowerUP Amiga.
393	  More information is available at:
394	  <http://linux-apus.sourceforge.net/>.
395endchoice
396
397config QUICC_ENGINE
398	bool
399	depends on PPC_MPC836x || PPC_MPC832x
400	default y
401	help
402	  The QUICC Engine (QE) is a new generation of communications
403	  coprocessors on Freescale embedded CPUs (akin to CPM in older chips).
404	  Selecting this option means that you wish to build a kernel
405	  for a machine with a QE coprocessor.
406
407config PPC_PSERIES
408	depends on PPC_MULTIPLATFORM && PPC64
409	bool "IBM pSeries & new (POWER5-based) iSeries"
410	select MPIC
411	select PPC_I8259
412	select PPC_RTAS
413	select RTAS_ERROR_LOGGING
414	select PPC_UDBG_16550
415	select PPC_NATIVE
416	default y
417
418config PPC_ISERIES
419	bool "IBM Legacy iSeries"
420	depends on PPC_MULTIPLATFORM && PPC64
421	select PPC_INDIRECT_IO
422
423config PPC_CHRP
424	bool "Common Hardware Reference Platform (CHRP) based machines"
425	depends on PPC_MULTIPLATFORM && PPC32
426	select MPIC
427	select PPC_I8259
428	select PPC_INDIRECT_PCI
429	select PPC_RTAS
430	select PPC_MPC106
431	select PPC_UDBG_16550
432	select PPC_NATIVE
433	default y
434
435source "arch/powerpc/platforms/52xx/Kconfig"
436source "arch/powerpc/platforms/powermac/Kconfig"
437
438config PPC_PREP
439	bool "PowerPC Reference Platform (PReP) based machines"
440	depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
441	select MPIC
442	select PPC_I8259
443	select PPC_INDIRECT_PCI
444	select PPC_UDBG_16550
445	select PPC_NATIVE
446	default n
447
448config PPC_MAPLE
449	depends on PPC_MULTIPLATFORM && PPC64
450	bool "Maple 970FX Evaluation Board"
451	select MPIC
452	select U3_DART
453	select MPIC_BROKEN_U3
454	select GENERIC_TBSYNC
455	select PPC_UDBG_16550
456	select PPC_970_NAP
457	select PPC_NATIVE
458	select PPC_RTAS
459	select MMIO_NVRAM
460	select ATA_NONSTANDARD if ATA
461	default n
462	help
463          This option enables support for the Maple 970FX Evaluation Board.
464	  For more information, refer to <http://www.970eval.com>
465
466config PPC_PASEMI
467	depends on PPC_MULTIPLATFORM && PPC64
468	bool "PA Semi SoC-based platforms"
469	default n
470	select MPIC
471	select PPC_UDBG_16550
472	select GENERIC_TBSYNC
473	select PPC_NATIVE
474	help
475	  This option enables support for PA Semi's PWRficient line
476	  of SoC processors, including PA6T-1682M
477
478source arch/powerpc/platforms/celleb/Kconfig
479source arch/powerpc/platforms/ps3/Kconfig
480source arch/powerpc/platforms/cell/Kconfig
481
482config PPC_NATIVE
483	bool
484	depends on PPC_MULTIPLATFORM
485	help
486	  Support for running natively on the hardware, i.e. without
487	  a hypervisor. This option is not user-selectable but should
488	  be selected by all platforms that need it.
489
490config UDBG_RTAS_CONSOLE
491	bool "RTAS based debug console"
492	depends on PPC_RTAS
493	default n
494
495config PPC_UDBG_BEAT
496	bool "BEAT based debug console"
497	depends on PPC_CELLEB
498	default n
499
500config XICS
501	depends on PPC_PSERIES
502	bool
503	default y
504
505config U3_DART
506	bool
507	depends on PPC_MULTIPLATFORM && PPC64
508	default n
509
510config PPC_RTAS
511	bool
512	default n
513
514config RTAS_ERROR_LOGGING
515	bool
516	depends on PPC_RTAS
517	default n
518
519config RTAS_PROC
520	bool "Proc interface to RTAS"
521	depends on PPC_RTAS
522	default y
523
524config RTAS_FLASH
525	tristate "Firmware flash interface"
526	depends on PPC64 && RTAS_PROC
527
528config PPC_PMI
529	tristate "Support for PMI"
530	depends PPC_IBM_CELL_BLADE
531	help
532	  PMI (Platform Management Interrupt) is a way to
533	  communicate with the BMC (Baseboard Mangement Controller).
534	  It is used in some IBM Cell blades.
535	default m
536
537config MMIO_NVRAM
538	bool
539	default n
540
541config MPIC_BROKEN_U3
542	bool
543	depends on PPC_MAPLE
544	default y
545
546config IBMVIO
547	depends on PPC_PSERIES || PPC_ISERIES
548	bool
549	default y
550
551config IBMEBUS
552	depends on PPC_PSERIES
553	bool "Support for GX bus based adapters"
554	help
555	  Bus device driver for GX bus based adapters.
556
557config PPC_MPC106
558	bool
559	default n
560
561config PPC_970_NAP
562	bool
563	default n
564
565config PPC_INDIRECT_IO
566	bool
567	select GENERIC_IOMAP
568	default n
569
570config GENERIC_IOMAP
571	bool
572	default n
573
574source "drivers/cpufreq/Kconfig"
575
576config CPU_FREQ_PMAC
577	bool "Support for Apple PowerBooks"
578	depends on CPU_FREQ && ADB_PMU && PPC32
579	select CPU_FREQ_TABLE
580	help
581	  This adds support for frequency switching on Apple PowerBooks,
582	  this currently includes some models of iBook & Titanium
583	  PowerBook.
584
585config CPU_FREQ_PMAC64
586	bool "Support for some Apple G5s"
587	depends on CPU_FREQ && PPC64
588	select CPU_FREQ_TABLE
589	help
590	  This adds support for frequency switching on Apple iMac G5,
591	  and some of the more recent desktop G5 machines as well.
592
593config PPC601_SYNC_FIX
594	bool "Workarounds for PPC601 bugs"
595	depends on 6xx && (PPC_PREP || PPC_PMAC)
596	help
597	  Some versions of the PPC601 (the first PowerPC chip) have bugs which
598	  mean that extra synchronization instructions are required near
599	  certain instructions, typically those that make major changes to the
600	  CPU state.  These extra instructions reduce performance slightly.
601	  If you say N here, these extra instructions will not be included,
602	  resulting in a kernel which will run faster but may not run at all
603	  on some systems with the PPC601 chip.
604
605	  If in doubt, say Y here.
606
607config TAU
608	bool "On-chip CPU temperature sensor support"
609	depends on 6xx
610	help
611	  G3 and G4 processors have an on-chip temperature sensor called the
612	  'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
613	  temperature within 2-4 degrees Celsius. This option shows the current
614	  on-die temperature in /proc/cpuinfo if the cpu supports it.
615
616	  Unfortunately, on some chip revisions, this sensor is very inaccurate
617	  and in many cases, does not work at all, so don't assume the cpu
618	  temp is actually what /proc/cpuinfo says it is.
619
620config TAU_INT
621	bool "Interrupt driven TAU driver (DANGEROUS)"
622	depends on TAU
623	---help---
624	  The TAU supports an interrupt driven mode which causes an interrupt
625	  whenever the temperature goes out of range. This is the fastest way
626	  to get notified the temp has exceeded a range. With this option off,
627	  a timer is used to re-check the temperature periodically.
628
629	  However, on some cpus it appears that the TAU interrupt hardware
630	  is buggy and can cause a situation which would lead unexplained hard
631	  lockups.
632
633	  Unless you are extending the TAU driver, or enjoy kernel/hardware
634	  debugging, leave this option off.
635
636config TAU_AVERAGE
637	bool "Average high and low temp"
638	depends on TAU
639	---help---
640	  The TAU hardware can compare the temperature to an upper and lower
641	  bound.  The default behavior is to show both the upper and lower
642	  bound in /proc/cpuinfo. If the range is large, the temperature is
643	  either changing a lot, or the TAU hardware is broken (likely on some
644	  G4's). If the range is small (around 4 degrees), the temperature is
645	  relatively stable.  If you say Y here, a single temperature value,
646	  halfway between the upper and lower bounds, will be reported in
647	  /proc/cpuinfo.
648
649	  If in doubt, say N here.
650
651endmenu
652
653source arch/powerpc/platforms/embedded6xx/Kconfig
654source arch/powerpc/platforms/4xx/Kconfig
655source arch/powerpc/platforms/82xx/Kconfig
656source arch/powerpc/platforms/83xx/Kconfig
657source arch/powerpc/platforms/85xx/Kconfig
658source arch/powerpc/platforms/86xx/Kconfig
659source arch/powerpc/platforms/8xx/Kconfig
660source arch/powerpc/platforms/pasemi/Kconfig
661
662menu "Kernel options"
663
664config HIGHMEM
665	bool "High memory support"
666	depends on PPC32
667
668source kernel/Kconfig.hz
669source kernel/Kconfig.preempt
670source "fs/Kconfig.binfmt"
671
672# We optimistically allocate largepages from the VM, so make the limit
673# large enough (16MB). This badly named config option is actually
674# max order + 1
675config FORCE_MAX_ZONEORDER
676	int
677	depends on PPC64
678	default "9" if PPC_64K_PAGES
679	default "13"
680
681config MATH_EMULATION
682	bool "Math emulation"
683	depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
684	---help---
685	  Some PowerPC chips designed for embedded applications do not have
686	  a floating-point unit and therefore do not implement the
687	  floating-point instructions in the PowerPC instruction set.  If you
688	  say Y here, the kernel will include code to emulate a floating-point
689	  unit, which will allow programs that use floating-point
690	  instructions to run.
691
692config IOMMU_VMERGE
693	bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
694	depends on EXPERIMENTAL && PPC64
695	default n
696	help
697	  Cause IO segments sent to a device for DMA to be merged virtually
698	  by the IOMMU when they happen to have been allocated contiguously.
699	  This doesn't add pressure to the IOMMU allocator. However, some
700	  drivers don't support getting large merged segments coming back
701	  from *_map_sg(). Say Y if you know the drivers you are using are
702	  properly handling this case.
703
704config HOTPLUG_CPU
705	bool "Support for enabling/disabling CPUs"
706	depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
707	---help---
708	  Say Y here to be able to disable and re-enable individual
709	  CPUs at runtime on SMP machines.
710
711	  Say N if you are unsure.
712
713config ARCH_ENABLE_MEMORY_HOTPLUG
714	def_bool y
715
716config KEXEC
717	bool "kexec system call (EXPERIMENTAL)"
718	depends on PPC_MULTIPLATFORM && EXPERIMENTAL
719	help
720	  kexec is a system call that implements the ability to shutdown your
721	  current kernel, and to start another kernel.  It is like a reboot
722	  but it is independent of the system firmware.   And like a reboot
723	  you can start any kernel with it, not just Linux.
724
725	  The name comes from the similarity to the exec system call.
726
727	  It is an ongoing process to be certain the hardware in a machine
728	  is properly shutdown, so do not be surprised if this code does not
729	  initially work for you.  It may help to enable device hotplugging
730	  support.  As of this writing the exact hardware interface is
731	  strongly in flux, so no good recommendation can be made.
732
733config CRASH_DUMP
734	bool "Build a kdump crash kernel (EXPERIMENTAL)"
735	depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
736	help
737	  Build a kernel suitable for use as a kdump capture kernel.
738	  The kernel will be linked at a different address than normal, and
739	  so can only be used for Kdump.
740
741	  Don't change this unless you know what you are doing.
742
743config EMBEDDEDBOOT
744	bool
745	depends on 8xx || 8260
746	default y
747
748config PC_KEYBOARD
749	bool "PC PS/2 style Keyboard"
750	depends on 4xx || CPM2
751
752config PPCBUG_NVRAM
753	bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
754	default y if PPC_PREP
755
756config IRQ_ALL_CPUS
757	bool "Distribute interrupts on all CPUs by default"
758	depends on SMP && !MV64360
759	help
760	  This option gives the kernel permission to distribute IRQs across
761	  multiple CPUs.  Saying N here will route all IRQs to the first
762	  CPU.  Generally saying Y is safe, although some problems have been
763	  reported with SMP Power Macintoshes with this option enabled.
764
765source "arch/powerpc/platforms/pseries/Kconfig"
766
767config NUMA
768	bool "NUMA support"
769	depends on PPC64
770	default y if SMP && PPC_PSERIES
771
772config NODES_SHIFT
773	int
774	default "4"
775	depends on NEED_MULTIPLE_NODES
776
777config ARCH_SELECT_MEMORY_MODEL
778	def_bool y
779	depends on PPC64
780
781config ARCH_FLATMEM_ENABLE
782	def_bool y
783	depends on (PPC64 && !NUMA) || PPC32
784
785config ARCH_SPARSEMEM_ENABLE
786	def_bool y
787	depends on PPC64
788
789config ARCH_SPARSEMEM_DEFAULT
790	def_bool y
791	depends on (SMP && PPC_PSERIES) || PPC_PS3
792
793config ARCH_POPULATES_NODE_MAP
794	def_bool y
795
796source "mm/Kconfig"
797
798config ARCH_MEMORY_PROBE
799	def_bool y
800	depends on MEMORY_HOTPLUG
801
802# Some NUMA nodes have memory ranges that span
803# other nodes.  Even though a pfn is valid and
804# between a node's start and end pfns, it may not
805# reside on that node.  See memmap_init_zone()
806# for details.
807config NODES_SPAN_OTHER_NODES
808	def_bool y
809	depends on NEED_MULTIPLE_NODES
810
811config PPC_64K_PAGES
812	bool "64k page size"
813	depends on PPC64
814	help
815	  This option changes the kernel logical page size to 64k. On machines
816          without processor support for 64k pages, the kernel will simulate
817          them by loading each individual 4k page on demand transparently,
818          while on hardware with such support, it will be used to map
819          normal application pages.
820
821config SCHED_SMT
822	bool "SMT (Hyperthreading) scheduler support"
823	depends on PPC64 && SMP
824	help
825	  SMT scheduler support improves the CPU scheduler's decision making
826	  when dealing with POWER5 cpus at a cost of slightly increased
827	  overhead in some places. If unsure say N here.
828
829config PROC_DEVICETREE
830	bool "Support for device tree in /proc"
831	depends on PROC_FS
832	help
833	  This option adds a device-tree directory under /proc which contains
834	  an image of the device tree that the kernel copies from Open
835	  Firmware or other boot firmware. If unsure, say Y here.
836
837source "arch/powerpc/platforms/prep/Kconfig"
838
839config CMDLINE_BOOL
840	bool "Default bootloader kernel arguments"
841
842config CMDLINE
843	string "Initial kernel command string"
844	depends on CMDLINE_BOOL
845	default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
846	help
847	  On some platforms, there is currently no way for the boot loader to
848	  pass arguments to the kernel. For these platforms, you can supply
849	  some command-line options at build time by entering them here.  In
850	  most cases you will need to specify the root device here.
851
852if !44x || BROKEN
853source kernel/power/Kconfig
854endif
855
856config SECCOMP
857	bool "Enable seccomp to safely compute untrusted bytecode"
858	depends on PROC_FS
859	default y
860	help
861	  This kernel feature is useful for number crunching applications
862	  that may need to compute untrusted bytecode during their
863	  execution. By using pipes or other transports made available to
864	  the process as file descriptors supporting the read/write
865	  syscalls, it's possible to isolate those applications in
866	  their own address space using seccomp. Once seccomp is
867	  enabled via /proc/<pid>/seccomp, it cannot be disabled
868	  and the task is only allowed to execute a few safe syscalls
869	  defined by each seccomp mode.
870
871	  If unsure, say Y. Only embedded should say N here.
872
873endmenu
874
875config ISA_DMA_API
876	bool
877	default y
878
879menu "Bus options"
880
881config ISA
882	bool "Support for ISA-bus hardware"
883	depends on PPC_PREP || PPC_CHRP
884	select PPC_I8259
885	help
886	  Find out whether you have ISA slots on your motherboard.  ISA is the
887	  name of a bus system, i.e. the way the CPU talks to the other stuff
888	  inside your box.  If you have an Apple machine, say N here; if you
889	  have an IBM RS/6000 or pSeries machine or a PReP machine, say Y.  If
890	  you have an embedded board, consult your board documentation.
891
892config ZONE_DMA
893	bool
894	default y
895
896config GENERIC_ISA_DMA
897	bool
898	depends on PPC64 || POWER4 || 6xx && !CPM2
899	default y
900
901config MPIC
902	bool
903	default n
904
905config MPIC_WEIRD
906	bool
907	default n
908
909config PPC_I8259
910	bool
911	default n
912
913config PPC_INDIRECT_PCI
914	bool
915	depends on PCI
916	default y if 40x || 44x
917	default n
918
919config EISA
920	bool
921
922config SBUS
923	bool
924
925config FSL_SOC
926	bool
927
928# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
929config MCA
930	bool
931
932config PCI
933	bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
934		|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
935		|| MPC7448HPC2 || PPC_PS3
936	default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
937		&& !PPC_85xx && !PPC_86xx
938	default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
939	default PCI_QSPAN if !4xx && !CPM2 && 8xx
940	help
941	  Find out whether your system includes a PCI bus. PCI is the name of
942	  a bus system, i.e. the way the CPU talks to the other stuff inside
943	  your box.  If you say Y here, the kernel will include drivers and
944	  infrastructure code to support PCI bus devices.
945
946config PCI_DOMAINS
947	bool
948	default PCI
949
950config PCI_QSPAN
951	bool "QSpan PCI"
952	depends on !4xx && !CPM2 && 8xx
953	select PPC_I8259
954	help
955	  Say Y here if you have a system based on a Motorola 8xx-series
956	  embedded processor with a QSPAN PCI interface, otherwise say N.
957
958config PCI_8260
959	bool
960	depends on PCI && 8260
961	select PPC_INDIRECT_PCI
962	default y
963
964config 8260_PCI9
965	bool "Enable workaround for MPC826x erratum PCI 9"
966	depends on PCI_8260 && !ADS8272
967	default y
968
969choice
970	prompt "IDMA channel for PCI 9 workaround"
971	depends on 8260_PCI9
972
973config 8260_PCI9_IDMA1
974	bool "IDMA1"
975
976config 8260_PCI9_IDMA2
977	bool "IDMA2"
978
979config 8260_PCI9_IDMA3
980	bool "IDMA3"
981
982config 8260_PCI9_IDMA4
983	bool "IDMA4"
984
985endchoice
986
987source "drivers/pci/pcie/Kconfig"
988
989source "drivers/pci/Kconfig"
990
991source "drivers/pcmcia/Kconfig"
992
993source "drivers/pci/hotplug/Kconfig"
994
995endmenu
996
997menu "Advanced setup"
998	depends on PPC32
999
1000config ADVANCED_OPTIONS
1001	bool "Prompt for advanced kernel configuration options"
1002	help
1003	  This option will enable prompting for a variety of advanced kernel
1004	  configuration options.  These options can cause the kernel to not
1005	  work if they are set incorrectly, but can be used to optimize certain
1006	  aspects of kernel memory management.
1007
1008	  Unless you know what you are doing, say N here.
1009
1010comment "Default settings for advanced configuration options are used"
1011	depends on !ADVANCED_OPTIONS
1012
1013config HIGHMEM_START_BOOL
1014	bool "Set high memory pool address"
1015	depends on ADVANCED_OPTIONS && HIGHMEM
1016	help
1017	  This option allows you to set the base address of the kernel virtual
1018	  area used to map high memory pages.  This can be useful in
1019	  optimizing the layout of kernel virtual memory.
1020
1021	  Say N here unless you know what you are doing.
1022
1023config HIGHMEM_START
1024	hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
1025	default "0xfe000000"
1026
1027config LOWMEM_SIZE_BOOL
1028	bool "Set maximum low memory"
1029	depends on ADVANCED_OPTIONS
1030	help
1031	  This option allows you to set the maximum amount of memory which
1032	  will be used as "low memory", that is, memory which the kernel can
1033	  access directly, without having to set up a kernel virtual mapping.
1034	  This can be useful in optimizing the layout of kernel virtual
1035	  memory.
1036
1037	  Say N here unless you know what you are doing.
1038
1039config LOWMEM_SIZE
1040	hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
1041	default "0x30000000"
1042
1043config KERNEL_START_BOOL
1044	bool "Set custom kernel base address"
1045	depends on ADVANCED_OPTIONS
1046	help
1047	  This option allows you to set the kernel virtual address at which
1048	  the kernel will map low memory (the kernel image will be linked at
1049	  this address).  This can be useful in optimizing the virtual memory
1050	  layout of the system.
1051
1052	  Say N here unless you know what you are doing.
1053
1054config KERNEL_START
1055	hex "Virtual address of kernel base" if KERNEL_START_BOOL
1056	default "0xc0000000"
1057
1058config TASK_SIZE_BOOL
1059	bool "Set custom user task size"
1060	depends on ADVANCED_OPTIONS
1061	help
1062	  This option allows you to set the amount of virtual address space
1063	  allocated to user tasks.  This can be useful in optimizing the
1064	  virtual memory layout of the system.
1065
1066	  Say N here unless you know what you are doing.
1067
1068config TASK_SIZE
1069	hex "Size of user task space" if TASK_SIZE_BOOL
1070	default "0x80000000"
1071
1072config CONSISTENT_START_BOOL
1073	bool "Set custom consistent memory pool address"
1074	depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1075	help
1076	  This option allows you to set the base virtual address
1077	  of the consistent memory pool.  This pool of virtual
1078	  memory is used to make consistent memory allocations.
1079
1080config CONSISTENT_START
1081	hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
1082	default "0xff100000" if NOT_COHERENT_CACHE
1083
1084config CONSISTENT_SIZE_BOOL
1085	bool "Set custom consistent memory pool size"
1086	depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
1087	help
1088	  This option allows you to set the size of the
1089	  consistent memory pool.  This pool of virtual memory
1090	  is used to make consistent memory allocations.
1091
1092config CONSISTENT_SIZE
1093	hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
1094	default "0x00200000" if NOT_COHERENT_CACHE
1095
1096config BOOT_LOAD_BOOL
1097	bool "Set the boot link/load address"
1098	depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
1099	help
1100	  This option allows you to set the initial load address of the zImage
1101	  or zImage.initrd file.  This can be useful if you are on a board
1102	  which has a small amount of memory.
1103
1104	  Say N here unless you know what you are doing.
1105
1106config BOOT_LOAD
1107	hex "Link/load address for booting" if BOOT_LOAD_BOOL
1108	default "0x00400000" if 40x || 8xx || 8260
1109	default "0x01000000" if 44x
1110	default "0x00800000"
1111
1112config PIN_TLB
1113	bool "Pinned Kernel TLBs (860 ONLY)"
1114	depends on ADVANCED_OPTIONS && 8xx
1115endmenu
1116
1117if PPC64
1118config KERNEL_START
1119	hex
1120	default "0xc000000000000000"
1121endif
1122
1123source "net/Kconfig"
1124
1125source "drivers/Kconfig"
1126
1127source "fs/Kconfig"
1128
1129# XXX source "arch/ppc/8xx_io/Kconfig"
1130
1131# XXX source "arch/ppc/8260_io/Kconfig"
1132
1133source "arch/powerpc/sysdev/qe_lib/Kconfig"
1134
1135source "arch/powerpc/platforms/iseries/Kconfig"
1136
1137source "lib/Kconfig"
1138
1139menu "Instrumentation Support"
1140        depends on EXPERIMENTAL
1141
1142source "arch/powerpc/oprofile/Kconfig"
1143
1144config KPROBES
1145	bool "Kprobes (EXPERIMENTAL)"
1146	depends on !BOOKE && !4xx && KALLSYMS && EXPERIMENTAL && MODULES
1147	help
1148	  Kprobes allows you to trap at almost any kernel address and
1149	  execute a callback function.  register_kprobe() establishes
1150	  a probepoint and specifies the callback.  Kprobes is useful
1151	  for kernel debugging, non-intrusive instrumentation and testing.
1152	  If in doubt, say "N".
1153endmenu
1154
1155source "arch/powerpc/Kconfig.debug"
1156
1157source "security/Kconfig"
1158
1159config KEYS_COMPAT
1160	bool
1161	depends on COMPAT && KEYS
1162	default y
1163
1164source "crypto/Kconfig"
1165