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