xref: /linux/arch/powerpc/Kconfig (revision f3d9478b2ce468c3115b02ecae7e975990697f15)
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	select PPC_970_NAP
370	default y
371
372config PPC_PREP
373	bool "  PowerPC Reference Platform (PReP) based machines"
374	depends on PPC_MULTIPLATFORM && PPC32 && BROKEN
375	select PPC_I8259
376	select PPC_INDIRECT_PCI
377	select PPC_UDBG_16550
378	default y
379
380config PPC_MAPLE
381	depends on PPC_MULTIPLATFORM && PPC64
382	bool "  Maple 970FX Evaluation Board"
383	select U3_DART
384	select MPIC_BROKEN_U3
385	select GENERIC_TBSYNC
386	select PPC_UDBG_16550
387	select PPC_970_NAP
388	default n
389	help
390          This option enables support for the Maple 970FX Evaluation Board.
391	  For more informations, refer to <http://www.970eval.com>
392
393config PPC_CELL
394	bool "  Cell Broadband Processor Architecture"
395	depends on PPC_MULTIPLATFORM && PPC64
396	select PPC_RTAS
397	select MMIO_NVRAM
398	select PPC_UDBG_16550
399
400config XICS
401	depends on PPC_PSERIES
402	bool
403	default y
404
405config U3_DART
406	bool
407	depends on PPC_MULTIPLATFORM && PPC64
408	default n
409
410config MPIC
411	depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE || PPC_CHRP
412	bool
413	default y
414
415config PPC_RTAS
416	bool
417	default n
418
419config RTAS_ERROR_LOGGING
420	bool
421	depends on PPC_RTAS
422	default n
423
424config RTAS_PROC
425	bool "Proc interface to RTAS"
426	depends on PPC_RTAS
427	default y
428
429config RTAS_FLASH
430	tristate "Firmware flash interface"
431	depends on PPC64 && RTAS_PROC
432
433config MMIO_NVRAM
434	bool
435	default n
436
437config MPIC_BROKEN_U3
438	bool
439	depends on PPC_MAPLE
440	default y
441
442config CELL_IIC
443	depends on PPC_CELL
444	bool
445	default y
446
447config IBMVIO
448	depends on PPC_PSERIES || PPC_ISERIES
449	bool
450	default y
451
452config IBMEBUS
453	depends on PPC_PSERIES
454	bool "Support for GX bus based adapters"
455	help
456	  Bus device driver for GX bus based adapters.
457
458config PPC_MPC106
459	bool
460	default n
461
462config PPC_970_NAP
463	bool
464	default n
465
466source "drivers/cpufreq/Kconfig"
467
468config CPU_FREQ_PMAC
469	bool "Support for Apple PowerBooks"
470	depends on CPU_FREQ && ADB_PMU && PPC32
471	select CPU_FREQ_TABLE
472	help
473	  This adds support for frequency switching on Apple PowerBooks,
474	  this currently includes some models of iBook & Titanium
475	  PowerBook.
476
477config CPU_FREQ_PMAC64
478	bool "Support for some Apple G5s"
479	depends on CPU_FREQ && PMAC_SMU && PPC64
480	select CPU_FREQ_TABLE
481	help
482	  This adds support for frequency switching on Apple iMac G5,
483	  and some of the more recent desktop G5 machines as well.
484
485config PPC601_SYNC_FIX
486	bool "Workarounds for PPC601 bugs"
487	depends on 6xx && (PPC_PREP || PPC_PMAC)
488	help
489	  Some versions of the PPC601 (the first PowerPC chip) have bugs which
490	  mean that extra synchronization instructions are required near
491	  certain instructions, typically those that make major changes to the
492	  CPU state.  These extra instructions reduce performance slightly.
493	  If you say N here, these extra instructions will not be included,
494	  resulting in a kernel which will run faster but may not run at all
495	  on some systems with the PPC601 chip.
496
497	  If in doubt, say Y here.
498
499config TAU
500	bool "On-chip CPU temperature sensor support"
501	depends on 6xx
502	help
503	  G3 and G4 processors have an on-chip temperature sensor called the
504	  'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
505	  temperature within 2-4 degrees Celsius. This option shows the current
506	  on-die temperature in /proc/cpuinfo if the cpu supports it.
507
508	  Unfortunately, on some chip revisions, this sensor is very inaccurate
509	  and in many cases, does not work at all, so don't assume the cpu
510	  temp is actually what /proc/cpuinfo says it is.
511
512config TAU_INT
513	bool "Interrupt driven TAU driver (DANGEROUS)"
514	depends on TAU
515	---help---
516	  The TAU supports an interrupt driven mode which causes an interrupt
517	  whenever the temperature goes out of range. This is the fastest way
518	  to get notified the temp has exceeded a range. With this option off,
519	  a timer is used to re-check the temperature periodically.
520
521	  However, on some cpus it appears that the TAU interrupt hardware
522	  is buggy and can cause a situation which would lead unexplained hard
523	  lockups.
524
525	  Unless you are extending the TAU driver, or enjoy kernel/hardware
526	  debugging, leave this option off.
527
528config TAU_AVERAGE
529	bool "Average high and low temp"
530	depends on TAU
531	---help---
532	  The TAU hardware can compare the temperature to an upper and lower
533	  bound.  The default behavior is to show both the upper and lower
534	  bound in /proc/cpuinfo. If the range is large, the temperature is
535	  either changing a lot, or the TAU hardware is broken (likely on some
536	  G4's). If the range is small (around 4 degrees), the temperature is
537	  relatively stable.  If you say Y here, a single temperature value,
538	  halfway between the upper and lower bounds, will be reported in
539	  /proc/cpuinfo.
540
541	  If in doubt, say N here.
542endmenu
543
544source arch/powerpc/platforms/embedded6xx/Kconfig
545source arch/powerpc/platforms/4xx/Kconfig
546source arch/powerpc/platforms/83xx/Kconfig
547source arch/powerpc/platforms/85xx/Kconfig
548source arch/powerpc/platforms/8xx/Kconfig
549source arch/powerpc/platforms/cell/Kconfig
550
551menu "Kernel options"
552
553config HIGHMEM
554	bool "High memory support"
555	depends on PPC32
556
557source kernel/Kconfig.hz
558source kernel/Kconfig.preempt
559source "fs/Kconfig.binfmt"
560
561# We optimistically allocate largepages from the VM, so make the limit
562# large enough (16MB). This badly named config option is actually
563# max order + 1
564config FORCE_MAX_ZONEORDER
565	int
566	depends on PPC64
567	default "9" if PPC_64K_PAGES
568	default "13"
569
570config MATH_EMULATION
571	bool "Math emulation"
572	depends on 4xx || 8xx || E200 || E500
573	---help---
574	  Some PowerPC chips designed for embedded applications do not have
575	  a floating-point unit and therefore do not implement the
576	  floating-point instructions in the PowerPC instruction set.  If you
577	  say Y here, the kernel will include code to emulate a floating-point
578	  unit, which will allow programs that use floating-point
579	  instructions to run.
580
581config IOMMU_VMERGE
582	bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
583	depends on EXPERIMENTAL && PPC64
584	default n
585	help
586	  Cause IO segments sent to a device for DMA to be merged virtually
587	  by the IOMMU when they happen to have been allocated contiguously.
588	  This doesn't add pressure to the IOMMU allocator. However, some
589	  drivers don't support getting large merged segments coming back
590	  from *_map_sg(). Say Y if you know the drivers you are using are
591	  properly handling this case.
592
593config HOTPLUG_CPU
594	bool "Support for enabling/disabling CPUs"
595	depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
596	---help---
597	  Say Y here to be able to disable and re-enable individual
598	  CPUs at runtime on SMP machines.
599
600	  Say N if you are unsure.
601
602config KEXEC
603	bool "kexec system call (EXPERIMENTAL)"
604	depends on PPC_MULTIPLATFORM && EXPERIMENTAL
605	help
606	  kexec is a system call that implements the ability to shutdown your
607	  current kernel, and to start another kernel.  It is like a reboot
608	  but it is indepedent of the system firmware.   And like a reboot
609	  you can start any kernel with it, not just Linux.
610
611	  The name comes from the similiarity to the exec system call.
612
613	  It is an ongoing process to be certain the hardware in a machine
614	  is properly shutdown, so do not be surprised if this code does not
615	  initially work for you.  It may help to enable device hotplugging
616	  support.  As of this writing the exact hardware interface is
617	  strongly in flux, so no good recommendation can be made.
618
619config CRASH_DUMP
620	bool "Build a kdump crash kernel (EXPERIMENTAL)"
621	depends on PPC_MULTIPLATFORM && PPC64 && EXPERIMENTAL
622	help
623	  Build a kernel suitable for use as a kdump capture kernel.
624	  The kernel will be linked at a different address than normal, and
625	  so can only be used for Kdump.
626
627	  Don't change this unless you know what you are doing.
628
629config EMBEDDEDBOOT
630	bool
631	depends on 8xx || 8260
632	default y
633
634config PC_KEYBOARD
635	bool "PC PS/2 style Keyboard"
636	depends on 4xx || CPM2
637
638config PPCBUG_NVRAM
639	bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
640	default y if PPC_PREP
641
642config IRQ_ALL_CPUS
643	bool "Distribute interrupts on all CPUs by default"
644	depends on SMP && !MV64360
645	help
646	  This option gives the kernel permission to distribute IRQs across
647	  multiple CPUs.  Saying N here will route all IRQs to the first
648	  CPU.  Generally saying Y is safe, although some problems have been
649	  reported with SMP Power Macintoshes with this option enabled.
650
651source "arch/powerpc/platforms/pseries/Kconfig"
652
653config NUMA
654	bool "NUMA support"
655	depends on PPC64
656	default y if SMP && PPC_PSERIES
657
658config NODES_SHIFT
659	int
660	default "4"
661	depends on NEED_MULTIPLE_NODES
662
663config ARCH_SELECT_MEMORY_MODEL
664	def_bool y
665	depends on PPC64
666
667config ARCH_FLATMEM_ENABLE
668	def_bool y
669	depends on (PPC64 && !NUMA) || PPC32
670
671config ARCH_SPARSEMEM_ENABLE
672	def_bool y
673	depends on PPC64
674
675config ARCH_SPARSEMEM_DEFAULT
676	def_bool y
677	depends on SMP && PPC_PSERIES
678
679source "mm/Kconfig"
680
681config HAVE_ARCH_EARLY_PFN_TO_NID
682	def_bool y
683	depends on NEED_MULTIPLE_NODES
684
685config ARCH_MEMORY_PROBE
686	def_bool y
687	depends on MEMORY_HOTPLUG
688
689config PPC_64K_PAGES
690	bool "64k page size"
691	depends on PPC64
692	help
693	  This option changes the kernel logical page size to 64k. On machines
694          without processor support for 64k pages, the kernel will simulate
695          them by loading each individual 4k page on demand transparently,
696          while on hardware with such support, it will be used to map
697          normal application pages.
698
699config SCHED_SMT
700	bool "SMT (Hyperthreading) scheduler support"
701	depends on PPC64 && SMP
702	default off
703	help
704	  SMT scheduler support improves the CPU scheduler's decision making
705	  when dealing with POWER5 cpus at a cost of slightly increased
706	  overhead in some places. If unsure say N here.
707
708config PROC_DEVICETREE
709	bool "Support for device tree in /proc"
710	depends on PROC_FS
711	help
712	  This option adds a device-tree directory under /proc which contains
713	  an image of the device tree that the kernel copies from Open
714	  Firmware or other boot firmware. If unsure, say Y here.
715
716source "arch/powerpc/platforms/prep/Kconfig"
717
718config CMDLINE_BOOL
719	bool "Default bootloader kernel arguments"
720	depends on !PPC_ISERIES
721
722config CMDLINE
723	string "Initial kernel command string"
724	depends on CMDLINE_BOOL
725	default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
726	help
727	  On some platforms, there is currently no way for the boot loader to
728	  pass arguments to the kernel. For these platforms, you can supply
729	  some command-line options at build time by entering them here.  In
730	  most cases you will need to specify the root device here.
731
732if !44x || BROKEN
733source kernel/power/Kconfig
734endif
735
736config SECCOMP
737	bool "Enable seccomp to safely compute untrusted bytecode"
738	depends on PROC_FS
739	default y
740	help
741	  This kernel feature is useful for number crunching applications
742	  that may need to compute untrusted bytecode during their
743	  execution. By using pipes or other transports made available to
744	  the process as file descriptors supporting the read/write
745	  syscalls, it's possible to isolate those applications in
746	  their own address space using seccomp. Once seccomp is
747	  enabled via /proc/<pid>/seccomp, it cannot be disabled
748	  and the task is only allowed to execute a few safe syscalls
749	  defined by each seccomp mode.
750
751	  If unsure, say Y. Only embedded should say N here.
752
753endmenu
754
755config ISA_DMA_API
756	bool
757	default y
758
759menu "Bus options"
760
761config ISA
762	bool "Support for ISA-bus hardware"
763	depends on PPC_PREP || PPC_CHRP
764	select PPC_I8259
765	help
766	  Find out whether you have ISA slots on your motherboard.  ISA is the
767	  name of a bus system, i.e. the way the CPU talks to the other stuff
768	  inside your box.  If you have an Apple machine, say N here; if you
769	  have an IBM RS/6000 or pSeries machine or a PReP machine, say Y.  If
770	  you have an embedded board, consult your board documentation.
771
772config GENERIC_ISA_DMA
773	bool
774	depends on PPC64 || POWER4 || 6xx && !CPM2
775	default y
776
777config PPC_I8259
778	bool
779	default n
780
781config PPC_INDIRECT_PCI
782	bool
783	depends on PCI
784	default y if 40x || 44x
785	default n
786
787config EISA
788	bool
789
790config SBUS
791	bool
792
793config FSL_SOC
794	bool
795
796# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
797config MCA
798	bool
799
800config PCI
801	bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
802	default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !PPC_85xx
803	default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
804	default PCI_QSPAN if !4xx && !CPM2 && 8xx
805	help
806	  Find out whether your system includes a PCI bus. PCI is the name of
807	  a bus system, i.e. the way the CPU talks to the other stuff inside
808	  your box.  If you say Y here, the kernel will include drivers and
809	  infrastructure code to support PCI bus devices.
810
811config PCI_DOMAINS
812	bool
813	default PCI
814
815config PCI_QSPAN
816	bool "QSpan PCI"
817	depends on !4xx && !CPM2 && 8xx
818	select PPC_I8259
819	help
820	  Say Y here if you have a system based on a Motorola 8xx-series
821	  embedded processor with a QSPAN PCI interface, otherwise say N.
822
823config PCI_8260
824	bool
825	depends on PCI && 8260
826	select PPC_INDIRECT_PCI
827	default y
828
829config 8260_PCI9
830	bool "  Enable workaround for MPC826x erratum PCI 9"
831	depends on PCI_8260 && !ADS8272
832	default y
833
834choice
835	prompt "  IDMA channel for PCI 9 workaround"
836	depends on 8260_PCI9
837
838config 8260_PCI9_IDMA1
839	bool "IDMA1"
840
841config 8260_PCI9_IDMA2
842	bool "IDMA2"
843
844config 8260_PCI9_IDMA3
845	bool "IDMA3"
846
847config 8260_PCI9_IDMA4
848	bool "IDMA4"
849
850endchoice
851
852source "drivers/pci/Kconfig"
853
854source "drivers/pcmcia/Kconfig"
855
856source "drivers/pci/hotplug/Kconfig"
857
858endmenu
859
860menu "Advanced setup"
861	depends on PPC32
862
863config ADVANCED_OPTIONS
864	bool "Prompt for advanced kernel configuration options"
865	help
866	  This option will enable prompting for a variety of advanced kernel
867	  configuration options.  These options can cause the kernel to not
868	  work if they are set incorrectly, but can be used to optimize certain
869	  aspects of kernel memory management.
870
871	  Unless you know what you are doing, say N here.
872
873comment "Default settings for advanced configuration options are used"
874	depends on !ADVANCED_OPTIONS
875
876config HIGHMEM_START_BOOL
877	bool "Set high memory pool address"
878	depends on ADVANCED_OPTIONS && HIGHMEM
879	help
880	  This option allows you to set the base address of the kernel virtual
881	  area used to map high memory pages.  This can be useful in
882	  optimizing the layout of kernel virtual memory.
883
884	  Say N here unless you know what you are doing.
885
886config HIGHMEM_START
887	hex "Virtual start address of high memory pool" if HIGHMEM_START_BOOL
888	default "0xfe000000"
889
890config LOWMEM_SIZE_BOOL
891	bool "Set maximum low memory"
892	depends on ADVANCED_OPTIONS
893	help
894	  This option allows you to set the maximum amount of memory which
895	  will be used as "low memory", that is, memory which the kernel can
896	  access directly, without having to set up a kernel virtual mapping.
897	  This can be useful in optimizing the layout of kernel virtual
898	  memory.
899
900	  Say N here unless you know what you are doing.
901
902config LOWMEM_SIZE
903	hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
904	default "0x30000000"
905
906config KERNEL_START_BOOL
907	bool "Set custom kernel base address"
908	depends on ADVANCED_OPTIONS
909	help
910	  This option allows you to set the kernel virtual address at which
911	  the kernel will map low memory (the kernel image will be linked at
912	  this address).  This can be useful in optimizing the virtual memory
913	  layout of the system.
914
915	  Say N here unless you know what you are doing.
916
917config KERNEL_START
918	hex "Virtual address of kernel base" if KERNEL_START_BOOL
919	default "0xc0000000"
920
921config TASK_SIZE_BOOL
922	bool "Set custom user task size"
923	depends on ADVANCED_OPTIONS
924	help
925	  This option allows you to set the amount of virtual address space
926	  allocated to user tasks.  This can be useful in optimizing the
927	  virtual memory layout of the system.
928
929	  Say N here unless you know what you are doing.
930
931config TASK_SIZE
932	hex "Size of user task space" if TASK_SIZE_BOOL
933	default "0x80000000"
934
935config CONSISTENT_START_BOOL
936	bool "Set custom consistent memory pool address"
937	depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
938	help
939	  This option allows you to set the base virtual address
940	  of the the consistent memory pool.  This pool of virtual
941	  memory is used to make consistent memory allocations.
942
943config CONSISTENT_START
944	hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
945	default "0xff100000" if NOT_COHERENT_CACHE
946
947config CONSISTENT_SIZE_BOOL
948	bool "Set custom consistent memory pool size"
949	depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
950	help
951	  This option allows you to set the size of the the
952	  consistent memory pool.  This pool of virtual memory
953	  is used to make consistent memory allocations.
954
955config CONSISTENT_SIZE
956	hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
957	default "0x00200000" if NOT_COHERENT_CACHE
958
959config BOOT_LOAD_BOOL
960	bool "Set the boot link/load address"
961	depends on ADVANCED_OPTIONS && !PPC_MULTIPLATFORM
962	help
963	  This option allows you to set the initial load address of the zImage
964	  or zImage.initrd file.  This can be useful if you are on a board
965	  which has a small amount of memory.
966
967	  Say N here unless you know what you are doing.
968
969config BOOT_LOAD
970	hex "Link/load address for booting" if BOOT_LOAD_BOOL
971	default "0x00400000" if 40x || 8xx || 8260
972	default "0x01000000" if 44x
973	default "0x00800000"
974
975config PIN_TLB
976	bool "Pinned Kernel TLBs (860 ONLY)"
977	depends on ADVANCED_OPTIONS && 8xx
978endmenu
979
980if PPC64
981config KERNEL_START
982	hex
983	default "0xc000000000000000"
984endif
985
986source "net/Kconfig"
987
988source "drivers/Kconfig"
989
990source "fs/Kconfig"
991
992# XXX source "arch/ppc/8xx_io/Kconfig"
993
994# XXX source "arch/ppc/8260_io/Kconfig"
995
996source "arch/powerpc/platforms/iseries/Kconfig"
997
998source "lib/Kconfig"
999
1000menu "Instrumentation Support"
1001        depends on EXPERIMENTAL
1002
1003source "arch/powerpc/oprofile/Kconfig"
1004
1005config KPROBES
1006	bool "Kprobes (EXPERIMENTAL)"
1007	depends on PPC64 && EXPERIMENTAL && MODULES
1008	help
1009	  Kprobes allows you to trap at almost any kernel address and
1010	  execute a callback function.  register_kprobe() establishes
1011	  a probepoint and specifies the callback.  Kprobes is useful
1012	  for kernel debugging, non-intrusive instrumentation and testing.
1013	  If in doubt, say "N".
1014endmenu
1015
1016source "arch/powerpc/Kconfig.debug"
1017
1018source "security/Kconfig"
1019
1020config KEYS_COMPAT
1021	bool
1022	depends on COMPAT && KEYS
1023	default y
1024
1025source "crypto/Kconfig"
1026