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