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