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