Merge branches 'stable/ia64', 'stable/blkfront-cleanup' and 'stable/cleanup' of git...
[pandora-kernel.git] / arch / powerpc / Kconfig
1 source "arch/powerpc/platforms/Kconfig.cputype"
2
3 config PPC32
4         bool
5         default y if !PPC64
6
7 config 32BIT
8         bool
9         default y if PPC32
10
11 config 64BIT
12         bool
13         default y if PPC64
14
15 config WORD_SIZE
16         int
17         default 64 if PPC64
18         default 32 if !PPC64
19
20 config ARCH_PHYS_ADDR_T_64BIT
21        def_bool PPC64 || PHYS_64BIT
22
23 config ARCH_DMA_ADDR_T_64BIT
24         def_bool ARCH_PHYS_ADDR_T_64BIT
25
26 config MMU
27         bool
28         default y
29
30 config GENERIC_CMOS_UPDATE
31         def_bool y
32
33 config GENERIC_TIME_VSYSCALL
34         def_bool y
35
36 config GENERIC_CLOCKEVENTS
37         def_bool y
38
39 config HAVE_SETUP_PER_CPU_AREA
40         def_bool PPC64
41
42 config NEED_PER_CPU_EMBED_FIRST_CHUNK
43         def_bool PPC64
44
45 config NR_IRQS
46         int "Number of virtual interrupt numbers"
47         range 32 32768
48         default "512"
49         help
50           This defines the number of virtual interrupt numbers the kernel
51           can manage. Virtual interrupt numbers are what you see in
52           /proc/interrupts. If you configure your system to have too few,
53           drivers will fail to load or worse - handle with care.
54
55 config STACKTRACE_SUPPORT
56         bool
57         default y
58
59 config HAVE_LATENCYTOP_SUPPORT
60         def_bool y
61
62 config TRACE_IRQFLAGS_SUPPORT
63         bool
64         default y
65
66 config LOCKDEP_SUPPORT
67         bool
68         default y
69
70 config RWSEM_GENERIC_SPINLOCK
71         bool
72
73 config RWSEM_XCHGADD_ALGORITHM
74         bool
75         default y
76
77 config GENERIC_LOCKBREAK
78         bool
79         default y
80         depends on SMP && PREEMPT
81
82 config ARCH_HAS_ILOG2_U32
83         bool
84         default y
85
86 config ARCH_HAS_ILOG2_U64
87         bool
88         default y if 64BIT
89
90 config GENERIC_HWEIGHT
91         bool
92         default y
93
94 config GENERIC_FIND_NEXT_BIT
95         bool
96         default y
97
98 config GENERIC_GPIO
99         bool
100         help
101           Generic GPIO API support
102
103 config ARCH_NO_VIRT_TO_BUS
104         def_bool PPC64
105
106 config PPC
107         bool
108         default y
109         select OF
110         select OF_EARLY_FLATTREE
111         select HAVE_FTRACE_MCOUNT_RECORD
112         select HAVE_DYNAMIC_FTRACE
113         select HAVE_FUNCTION_TRACER
114         select HAVE_FUNCTION_GRAPH_TRACER
115         select ARCH_WANT_OPTIONAL_GPIOLIB
116         select HAVE_IDE
117         select HAVE_IOREMAP_PROT
118         select HAVE_EFFICIENT_UNALIGNED_ACCESS
119         select HAVE_KPROBES
120         select HAVE_ARCH_KGDB
121         select HAVE_KRETPROBES
122         select HAVE_ARCH_TRACEHOOK
123         select HAVE_MEMBLOCK
124         select HAVE_DMA_ATTRS
125         select HAVE_DMA_API_DEBUG
126         select USE_GENERIC_SMP_HELPERS if SMP
127         select HAVE_OPROFILE
128         select HAVE_SYSCALL_WRAPPERS if PPC64
129         select GENERIC_ATOMIC64 if PPC32
130         select HAVE_IRQ_WORK
131         select HAVE_PERF_EVENTS
132         select HAVE_REGS_AND_STACK_ACCESS_API
133         select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64
134         select HAVE_GENERIC_HARDIRQS
135         select HAVE_SPARSE_IRQ
136         select IRQ_PER_CPU
137
138 config EARLY_PRINTK
139         bool
140         default y
141
142 config COMPAT
143         bool
144         default y if PPC64
145         select COMPAT_BINFMT_ELF
146
147 config SYSVIPC_COMPAT
148         bool
149         depends on COMPAT && SYSVIPC
150         default y
151
152 # All PPC32s use generic nvram driver through ppc_md
153 config GENERIC_NVRAM
154         bool
155         default y if PPC32
156
157 config SCHED_OMIT_FRAME_POINTER
158         bool
159         default y
160
161 config ARCH_MAY_HAVE_PC_FDC
162         bool
163         default !PPC_PSERIES || PCI
164
165 config PPC_OF
166         def_bool y
167
168 config PPC_UDBG_16550
169         bool
170         default n
171
172 config GENERIC_TBSYNC
173         bool
174         default y if PPC32 && SMP
175         default n
176
177 config AUDIT_ARCH
178         bool
179         default y
180
181 config GENERIC_BUG
182         bool
183         default y
184         depends on BUG
185
186 config SYS_SUPPORTS_APM_EMULATION
187         default y if PMAC_APM_EMU
188         bool
189
190 config DEFAULT_UIMAGE
191         bool
192         help
193           Used to allow a board to specify it wants a uImage built by default
194         default n
195
196 config REDBOOT
197         bool
198
199 config ARCH_HIBERNATION_POSSIBLE
200         bool
201         default y
202
203 config ARCH_SUSPEND_POSSIBLE
204         def_bool y
205         depends on ADB_PMU || PPC_EFIKA || PPC_LITE5200 || PPC_83xx || \
206                    PPC_85xx || PPC_86xx || PPC_PSERIES || 44x || 40x
207
208 config PPC_DCR_NATIVE
209         bool
210         default n
211
212 config PPC_DCR_MMIO
213         bool
214         default n
215
216 config PPC_DCR
217         bool
218         depends on PPC_DCR_NATIVE || PPC_DCR_MMIO
219         default y
220
221 config PPC_OF_PLATFORM_PCI
222         bool
223         depends on PCI
224         depends on PPC64 # not supported on 32 bits yet
225         default n
226
227 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
228         def_bool y
229
230 config PPC_ADV_DEBUG_REGS
231         bool
232         depends on 40x || BOOKE
233         default y
234
235 config PPC_ADV_DEBUG_IACS
236         int
237         depends on PPC_ADV_DEBUG_REGS
238         default 4 if 44x
239         default 2
240
241 config PPC_ADV_DEBUG_DACS
242         int
243         depends on PPC_ADV_DEBUG_REGS
244         default 2
245
246 config PPC_ADV_DEBUG_DVCS
247         int
248         depends on PPC_ADV_DEBUG_REGS
249         default 2 if 44x
250         default 0
251
252 config PPC_ADV_DEBUG_DAC_RANGE
253         bool
254         depends on PPC_ADV_DEBUG_REGS && 44x
255         default y
256
257 source "init/Kconfig"
258
259 source "kernel/Kconfig.freezer"
260
261 source "arch/powerpc/sysdev/Kconfig"
262 source "arch/powerpc/platforms/Kconfig"
263
264 menu "Kernel options"
265
266 config HIGHMEM
267         bool "High memory support"
268         depends on PPC32
269
270 source kernel/time/Kconfig
271 source kernel/Kconfig.hz
272 source kernel/Kconfig.preempt
273 source "fs/Kconfig.binfmt"
274
275 config HUGETLB_PAGE_SIZE_VARIABLE
276         bool
277         depends on HUGETLB_PAGE
278         default y
279
280 config MATH_EMULATION
281         bool "Math emulation"
282         depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
283         ---help---
284           Some PowerPC chips designed for embedded applications do not have
285           a floating-point unit and therefore do not implement the
286           floating-point instructions in the PowerPC instruction set.  If you
287           say Y here, the kernel will include code to emulate a floating-point
288           unit, which will allow programs that use floating-point
289           instructions to run.
290
291 config 8XX_MINIMAL_FPEMU
292         bool "Minimal math emulation for 8xx"
293         depends on 8xx && !MATH_EMULATION
294         help
295           Older arch/ppc kernels still emulated a few floating point
296           instructions such as load and store, even when full math
297           emulation is disabled.  Say "Y" here if you want to preserve
298           this behavior.
299
300           It is recommended that you build a soft-float userspace instead.
301
302 config IOMMU_HELPER
303         def_bool PPC64
304
305 config SWIOTLB
306         bool "SWIOTLB support"
307         default n
308         select IOMMU_HELPER
309         ---help---
310           Support for IO bounce buffering for systems without an IOMMU.
311           This allows us to DMA to the full physical address space on
312           platforms where the size of a physical address is larger
313           than the bus address.  Not all platforms support this.
314
315 config HOTPLUG_CPU
316         bool "Support for enabling/disabling CPUs"
317         depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || PPC_PMAC)
318         ---help---
319           Say Y here to be able to disable and re-enable individual
320           CPUs at runtime on SMP machines.
321
322           Say N if you are unsure.
323
324 config ARCH_CPU_PROBE_RELEASE
325         def_bool y
326         depends on HOTPLUG_CPU
327
328 config ARCH_ENABLE_MEMORY_HOTPLUG
329         def_bool y
330
331 config ARCH_HAS_WALK_MEMORY
332         def_bool y
333
334 config ARCH_ENABLE_MEMORY_HOTREMOVE
335         def_bool y
336
337 config KEXEC
338         bool "kexec system call (EXPERIMENTAL)"
339         depends on (PPC_BOOK3S || FSL_BOOKE) && EXPERIMENTAL
340         help
341           kexec is a system call that implements the ability to shutdown your
342           current kernel, and to start another kernel.  It is like a reboot
343           but it is independent of the system firmware.   And like a reboot
344           you can start any kernel with it, not just Linux.
345
346           The name comes from the similarity to the exec system call.
347
348           It is an ongoing process to be certain the hardware in a machine
349           is properly shutdown, so do not be surprised if this code does not
350           initially work for you.  It may help to enable device hotplugging
351           support.  As of this writing the exact hardware interface is
352           strongly in flux, so no good recommendation can be made.
353
354 config CRASH_DUMP
355         bool "Build a kdump crash kernel"
356         depends on PPC64 || 6xx || FSL_BOOKE
357         select RELOCATABLE if PPC64 || FSL_BOOKE
358         help
359           Build a kernel suitable for use as a kdump capture kernel.
360           The same kernel binary can be used as production kernel and dump
361           capture kernel.
362
363 config PHYP_DUMP
364         bool "Hypervisor-assisted dump (EXPERIMENTAL)"
365         depends on PPC_PSERIES && EXPERIMENTAL
366         help
367           Hypervisor-assisted dump is meant to be a kdump replacement
368           offering robustness and speed not possible without system
369           hypervisor assistance.
370
371           If unsure, say "N"
372
373 config PPCBUG_NVRAM
374         bool "Enable reading PPCBUG NVRAM during boot" if PPLUS || LOPEC
375         default y if PPC_PREP
376
377 config IRQ_ALL_CPUS
378         bool "Distribute interrupts on all CPUs by default"
379         depends on SMP && !MV64360
380         help
381           This option gives the kernel permission to distribute IRQs across
382           multiple CPUs.  Saying N here will route all IRQs to the first
383           CPU.  Generally saying Y is safe, although some problems have been
384           reported with SMP Power Macintoshes with this option enabled.
385
386 config NUMA
387         bool "NUMA support"
388         depends on PPC64
389         default y if SMP && PPC_PSERIES
390
391 config NODES_SHIFT
392         int
393         default "8" if PPC64
394         default "4"
395         depends on NEED_MULTIPLE_NODES
396
397 config MAX_ACTIVE_REGIONS
398         int
399         default "256" if PPC64
400         default "32"
401
402 config ARCH_SELECT_MEMORY_MODEL
403         def_bool y
404         depends on PPC64
405
406 config ARCH_FLATMEM_ENABLE
407         def_bool y
408         depends on (PPC64 && !NUMA) || PPC32
409
410 config ARCH_SPARSEMEM_ENABLE
411         def_bool y
412         depends on PPC64
413         select SPARSEMEM_VMEMMAP_ENABLE
414
415 config ARCH_SPARSEMEM_DEFAULT
416         def_bool y
417         depends on (SMP && PPC_PSERIES) || PPC_PS3
418
419 config ARCH_POPULATES_NODE_MAP
420         def_bool y
421
422 config SYS_SUPPORTS_HUGETLBFS
423        def_bool y
424        depends on PPC_BOOK3S_64
425
426 source "mm/Kconfig"
427
428 config ARCH_MEMORY_PROBE
429         def_bool y
430         depends on MEMORY_HOTPLUG
431
432 # Some NUMA nodes have memory ranges that span
433 # other nodes.  Even though a pfn is valid and
434 # between a node's start and end pfns, it may not
435 # reside on that node.  See memmap_init_zone()
436 # for details.
437 config NODES_SPAN_OTHER_NODES
438         def_bool y
439         depends on NEED_MULTIPLE_NODES
440
441 config PPC_HAS_HASH_64K
442         bool
443         depends on PPC64
444         default n
445
446 config STDBINUTILS
447         bool "Using standard binutils settings"
448         depends on 44x
449         default y
450         help
451           Turning this option off allows you to select 256KB PAGE_SIZE on 44x.
452           Note, that kernel will be able to run only those applications,
453           which had been compiled using binutils later than 2.17.50.0.3 with
454           '-zmax-page-size' set to 256K (the default is 64K). Or, if using
455           the older binutils, you can patch them with a trivial patch, which
456           changes the ELF_MAXPAGESIZE definition from 0x10000 to 0x40000.
457
458 choice
459         prompt "Page size"
460         default PPC_4K_PAGES
461         help
462           Select the kernel logical page size. Increasing the page size
463           will reduce software overhead at each page boundary, allow
464           hardware prefetch mechanisms to be more effective, and allow
465           larger dma transfers increasing IO efficiency and reducing
466           overhead. However the utilization of memory will increase.
467           For example, each cached file will using a multiple of the
468           page size to hold its contents and the difference between the
469           end of file and the end of page is wasted.
470
471           Some dedicated systems, such as software raid serving with
472           accelerated calculations, have shown significant increases.
473
474           If you configure a 64 bit kernel for 64k pages but the
475           processor does not support them, then the kernel will simulate
476           them with 4k pages, loading them on demand, but with the
477           reduced software overhead and larger internal fragmentation.
478           For the 32 bit kernel, a large page option will not be offered
479           unless it is supported by the configured processor.
480
481           If unsure, choose 4K_PAGES.
482
483 config PPC_4K_PAGES
484         bool "4k page size"
485
486 config PPC_16K_PAGES
487         bool "16k page size" if 44x
488
489 config PPC_64K_PAGES
490         bool "64k page size" if 44x || PPC_STD_MMU_64 || PPC_BOOK3E_64
491         select PPC_HAS_HASH_64K if PPC_STD_MMU_64
492
493 config PPC_256K_PAGES
494         bool "256k page size" if 44x
495         depends on !STDBINUTILS
496         help
497           Make the page size 256k.
498
499           As the ELF standard only requires alignment to support page
500           sizes up to 64k, you will need to compile all of your user
501           space applications with a non-standard binutils settings
502           (see the STDBINUTILS description for details).
503
504           Say N unless you know what you are doing.
505
506 endchoice
507
508 config FORCE_MAX_ZONEORDER
509         int "Maximum zone order"
510         range 9 64 if PPC64 && PPC_64K_PAGES
511         default "9" if PPC64 && PPC_64K_PAGES
512         range 13 64 if PPC64 && !PPC_64K_PAGES
513         default "13" if PPC64 && !PPC_64K_PAGES
514         range 9 64 if PPC32 && PPC_16K_PAGES
515         default "9" if PPC32 && PPC_16K_PAGES
516         range 7 64 if PPC32 && PPC_64K_PAGES
517         default "7" if PPC32 && PPC_64K_PAGES
518         range 5 64 if PPC32 && PPC_256K_PAGES
519         default "5" if PPC32 && PPC_256K_PAGES
520         range 11 64
521         default "11"
522         help
523           The kernel memory allocator divides physically contiguous memory
524           blocks into "zones", where each zone is a power of two number of
525           pages.  This option selects the largest power of two that the kernel
526           keeps in the memory allocator.  If you need to allocate very large
527           blocks of physically contiguous memory, then you may need to
528           increase this value.
529
530           This config option is actually maximum order plus one. For example,
531           a value of 11 means that the largest free memory block is 2^10 pages.
532
533           The page size is not necessarily 4KB.  For example, on 64-bit
534           systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES.  Keep
535           this in mind when choosing a value for this option.
536
537 config PPC_SUBPAGE_PROT
538         bool "Support setting protections for 4k subpages"
539         depends on PPC_STD_MMU_64 && PPC_64K_PAGES
540         help
541           This option adds support for a system call to allow user programs
542           to set access permissions (read/write, readonly, or no access)
543           on the 4k subpages of each 64k page.
544
545 config SCHED_SMT
546         bool "SMT (Hyperthreading) scheduler support"
547         depends on PPC64 && SMP
548         help
549           SMT scheduler support improves the CPU scheduler's decision making
550           when dealing with POWER5 cpus at a cost of slightly increased
551           overhead in some places. If unsure say N here.
552
553 config CMDLINE_BOOL
554         bool "Default bootloader kernel arguments"
555
556 config CMDLINE
557         string "Initial kernel command string"
558         depends on CMDLINE_BOOL
559         default "console=ttyS0,9600 console=tty0 root=/dev/sda2"
560         help
561           On some platforms, there is currently no way for the boot loader to
562           pass arguments to the kernel. For these platforms, you can supply
563           some command-line options at build time by entering them here.  In
564           most cases you will need to specify the root device here.
565
566 config EXTRA_TARGETS
567         string "Additional default image types"
568         help
569           List additional targets to be built by the bootwrapper here (separated
570           by spaces).  This is useful for targets that depend of device tree
571           files in the .dts directory.
572
573           Targets in this list will be build as part of the default build
574           target, or when the user does a 'make zImage' or a
575           'make zImage.initrd'.
576
577           If unsure, leave blank
578
579 config ARCH_WANTS_FREEZER_CONTROL
580         def_bool y
581         depends on ADB_PMU
582
583 source kernel/power/Kconfig
584
585 config SECCOMP
586         bool "Enable seccomp to safely compute untrusted bytecode"
587         depends on PROC_FS
588         default y
589         help
590           This kernel feature is useful for number crunching applications
591           that may need to compute untrusted bytecode during their
592           execution. By using pipes or other transports made available to
593           the process as file descriptors supporting the read/write
594           syscalls, it's possible to isolate those applications in
595           their own address space using seccomp. Once seccomp is
596           enabled via /proc/<pid>/seccomp, it cannot be disabled
597           and the task is only allowed to execute a few safe syscalls
598           defined by each seccomp mode.
599
600           If unsure, say Y. Only embedded should say N here.
601
602 endmenu
603
604 config ISA_DMA_API
605         bool
606         default !PPC_ISERIES || PCI
607
608 menu "Bus options"
609
610 config ISA
611         bool "Support for ISA-bus hardware"
612         depends on PPC_PREP || PPC_CHRP
613         select PPC_I8259
614         help
615           Find out whether you have ISA slots on your motherboard.  ISA is the
616           name of a bus system, i.e. the way the CPU talks to the other stuff
617           inside your box.  If you have an Apple machine, say N here; if you
618           have an IBM RS/6000 or pSeries machine or a PReP machine, say Y.  If
619           you have an embedded board, consult your board documentation.
620
621 config ZONE_DMA
622         bool
623         default y
624
625 config NEED_DMA_MAP_STATE
626         def_bool (PPC64 || NOT_COHERENT_CACHE)
627
628 config NEED_SG_DMA_LENGTH
629         def_bool y
630
631 config GENERIC_ISA_DMA
632         bool
633         depends on ISA_DMA_API
634         default y
635
636 config PPC_INDIRECT_PCI
637         bool
638         depends on PCI
639         default y if 40x || 44x
640         default n
641
642 config EISA
643         bool
644
645 config SBUS
646         bool
647
648 config FSL_SOC
649         bool
650
651 config FSL_PCI
652         bool
653         select PPC_INDIRECT_PCI
654         select PCI_QUIRKS
655
656 config FSL_PMC
657         bool
658         default y
659         depends on SUSPEND && (PPC_85xx || PPC_86xx)
660         help
661           Freescale MPC85xx/MPC86xx power management controller support
662           (suspend/resume). For MPC83xx see platforms/83xx/suspend.c
663
664 config PPC4xx_CPM
665         bool
666         default y
667         depends on SUSPEND && (44x || 40x)
668         help
669           PPC4xx Clock Power Management (CPM) support (suspend/resume).
670           It also enables support for two different idle states (idle-wait
671           and idle-doze).
672
673 config 4xx_SOC
674         bool
675
676 config FSL_LBC
677         bool "Freescale Local Bus support"
678         depends on FSL_SOC
679         help
680           Enables reporting of errors from the Freescale local bus
681           controller.  Also contains some common code used by
682           drivers for specific local bus peripherals.
683
684 config FSL_GTM
685         bool
686         depends on PPC_83xx || QUICC_ENGINE || CPM2
687         help
688           Freescale General-purpose Timers support
689
690 # Yes MCA RS/6000s exist but Linux-PPC does not currently support any
691 config MCA
692         bool
693
694 # Platforms that what PCI turned unconditionally just do select PCI
695 # in their config node.  Platforms that want to choose at config
696 # time should select PPC_PCI_CHOICE
697 config PPC_PCI_CHOICE
698         bool
699
700 config PCI
701         bool "PCI support" if PPC_PCI_CHOICE
702         default y if !40x && !CPM2 && !8xx && !PPC_83xx \
703                 && !PPC_85xx && !PPC_86xx && !GAMECUBE_COMMON
704         default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
705         default PCI_QSPAN if !4xx && !CPM2 && 8xx
706         select ARCH_SUPPORTS_MSI
707         help
708           Find out whether your system includes a PCI bus. PCI is the name of
709           a bus system, i.e. the way the CPU talks to the other stuff inside
710           your box.  If you say Y here, the kernel will include drivers and
711           infrastructure code to support PCI bus devices.
712
713 config PCI_DOMAINS
714         def_bool PCI
715
716 config PCI_SYSCALL
717         def_bool PCI
718
719 config PCI_QSPAN
720         bool "QSpan PCI"
721         depends on !4xx && !CPM2 && 8xx
722         select PPC_I8259
723         help
724           Say Y here if you have a system based on a Motorola 8xx-series
725           embedded processor with a QSPAN PCI interface, otherwise say N.
726
727 config PCI_8260
728         bool
729         depends on PCI && 8260
730         select PPC_INDIRECT_PCI
731         default y
732
733 config 8260_PCI9
734         bool "Enable workaround for MPC826x erratum PCI 9"
735         depends on PCI_8260 && !8272
736         default y
737
738 choice
739         prompt "IDMA channel for PCI 9 workaround"
740         depends on 8260_PCI9
741
742 config 8260_PCI9_IDMA1
743         bool "IDMA1"
744
745 config 8260_PCI9_IDMA2
746         bool "IDMA2"
747
748 config 8260_PCI9_IDMA3
749         bool "IDMA3"
750
751 config 8260_PCI9_IDMA4
752         bool "IDMA4"
753
754 endchoice
755
756 source "drivers/pci/pcie/Kconfig"
757
758 source "drivers/pci/Kconfig"
759
760 source "drivers/pcmcia/Kconfig"
761
762 source "drivers/pci/hotplug/Kconfig"
763
764 config HAS_RAPIDIO
765         bool
766         default n
767
768 config RAPIDIO
769         bool "RapidIO support"
770         depends on HAS_RAPIDIO
771         help
772           If you say Y here, the kernel will include drivers and
773           infrastructure code to support RapidIO interconnect devices.
774
775 source "drivers/rapidio/Kconfig"
776
777 endmenu
778
779 menu "Advanced setup"
780         depends on PPC32
781
782 config ADVANCED_OPTIONS
783         bool "Prompt for advanced kernel configuration options"
784         help
785           This option will enable prompting for a variety of advanced kernel
786           configuration options.  These options can cause the kernel to not
787           work if they are set incorrectly, but can be used to optimize certain
788           aspects of kernel memory management.
789
790           Unless you know what you are doing, say N here.
791
792 comment "Default settings for advanced configuration options are used"
793         depends on !ADVANCED_OPTIONS
794
795 config LOWMEM_SIZE_BOOL
796         bool "Set maximum low memory"
797         depends on ADVANCED_OPTIONS
798         help
799           This option allows you to set the maximum amount of memory which
800           will be used as "low memory", that is, memory which the kernel can
801           access directly, without having to set up a kernel virtual mapping.
802           This can be useful in optimizing the layout of kernel virtual
803           memory.
804
805           Say N here unless you know what you are doing.
806
807 config LOWMEM_SIZE
808         hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
809         default "0x30000000"
810
811 config LOWMEM_CAM_NUM_BOOL
812         bool "Set number of CAMs to use to map low memory"
813         depends on ADVANCED_OPTIONS && FSL_BOOKE
814         help
815           This option allows you to set the maximum number of CAM slots that
816           will be used to map low memory.  There are a limited number of slots
817           available and even more limited number that will fit in the L1 MMU.
818           However, using more entries will allow mapping more low memory.  This
819           can be useful in optimizing the layout of kernel virtual memory.
820
821           Say N here unless you know what you are doing.
822
823 config LOWMEM_CAM_NUM
824         depends on FSL_BOOKE
825         int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
826         default 3
827
828 config RELOCATABLE
829         bool "Build a relocatable kernel (EXPERIMENTAL)"
830         depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
831         help
832           This builds a kernel image that is capable of running at the
833           location the kernel is loaded at (some alignment restrictions may
834           exist).
835
836           One use is for the kexec on panic case where the recovery kernel
837           must live at a different physical address than the primary
838           kernel.
839
840           Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
841           it has been loaded at and the compile time physical addresses
842           CONFIG_PHYSICAL_START is ignored.  However CONFIG_PHYSICAL_START
843           setting can still be useful to bootwrappers that need to know the
844           load location of the kernel (eg. u-boot/mkimage).
845
846 config PAGE_OFFSET_BOOL
847         bool "Set custom page offset address"
848         depends on ADVANCED_OPTIONS
849         help
850           This option allows you to set the kernel virtual address at which
851           the kernel will map low memory.  This can be useful in optimizing
852           the virtual memory layout of the system.
853
854           Say N here unless you know what you are doing.
855
856 config PAGE_OFFSET
857         hex "Virtual address of memory base" if PAGE_OFFSET_BOOL
858         default "0xc0000000"
859
860 config KERNEL_START_BOOL
861         bool "Set custom kernel base address"
862         depends on ADVANCED_OPTIONS
863         help
864           This option allows you to set the kernel virtual address at which
865           the kernel will be loaded.  Normally this should match PAGE_OFFSET
866           however there are times (like kdump) that one might not want them
867           to be the same.
868
869           Say N here unless you know what you are doing.
870
871 config KERNEL_START
872         hex "Virtual address of kernel base" if KERNEL_START_BOOL
873         default PAGE_OFFSET if PAGE_OFFSET_BOOL
874         default "0xc2000000" if CRASH_DUMP && !RELOCATABLE
875         default "0xc0000000"
876
877 config PHYSICAL_START_BOOL
878         bool "Set physical address where the kernel is loaded"
879         depends on ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
880         help
881           This gives the physical address where the kernel is loaded.
882
883           Say N here unless you know what you are doing.
884
885 config PHYSICAL_START
886         hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
887         default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !RELOCATABLE
888         default "0x00000000"
889
890 config PHYSICAL_ALIGN
891         hex
892         default "0x04000000" if FSL_BOOKE
893         help
894           This value puts the alignment restrictions on physical address
895           where kernel is loaded and run from. Kernel is compiled for an
896           address which meets above alignment restriction.
897
898 config TASK_SIZE_BOOL
899         bool "Set custom user task size"
900         depends on ADVANCED_OPTIONS
901         help
902           This option allows you to set the amount of virtual address space
903           allocated to user tasks.  This can be useful in optimizing the
904           virtual memory layout of the system.
905
906           Say N here unless you know what you are doing.
907
908 config TASK_SIZE
909         hex "Size of user task space" if TASK_SIZE_BOOL
910         default "0x80000000" if PPC_PREP || PPC_8xx
911         default "0xc0000000"
912
913 config CONSISTENT_SIZE_BOOL
914         bool "Set custom consistent memory pool size"
915         depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
916         help
917           This option allows you to set the size of the
918           consistent memory pool.  This pool of virtual memory
919           is used to make consistent memory allocations.
920
921 config CONSISTENT_SIZE
922         hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
923         default "0x00200000" if NOT_COHERENT_CACHE
924
925 config PIN_TLB
926         bool "Pinned Kernel TLBs (860 ONLY)"
927         depends on ADVANCED_OPTIONS && 8xx
928 endmenu
929
930 if PPC64
931 config RELOCATABLE
932         bool "Build a relocatable kernel"
933         help
934           This builds a kernel image that is capable of running anywhere
935           in the RMA (real memory area) at any 16k-aligned base address.
936           The kernel is linked as a position-independent executable (PIE)
937           and contains dynamic relocations which are processed early
938           in the bootup process.
939
940           One use is for the kexec on panic case where the recovery kernel
941           must live at a different physical address than the primary
942           kernel.
943
944 config PAGE_OFFSET
945         hex
946         default "0xc000000000000000"
947 config KERNEL_START
948         hex
949         default "0xc000000000000000"
950 config PHYSICAL_START
951         hex
952         default "0x00000000"
953 endif
954
955 source "net/Kconfig"
956
957 source "drivers/Kconfig"
958
959 source "fs/Kconfig"
960
961 source "arch/powerpc/sysdev/qe_lib/Kconfig"
962
963 source "lib/Kconfig"
964
965 source "arch/powerpc/Kconfig.debug"
966
967 source "security/Kconfig"
968
969 config KEYS_COMPAT
970         bool
971         depends on COMPAT && KEYS
972         default y
973
974 source "crypto/Kconfig"
975
976 config PPC_CLOCK
977         bool
978         default n
979         select HAVE_CLK
980
981 config PPC_LIB_RHEAP
982         bool
983
984 source "arch/powerpc/kvm/Kconfig"