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