kernel: remove CONFIG_USE_GENERIC_SMP_HELPERS
[linux-3.10.git] / arch / arm64 / Kconfig
1 config ARM64
2         def_bool y
3         select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
4         select ARCH_HAVE_CUSTOM_GPIO_H
5         select ARCH_USE_CMPXCHG_LOCKREF
6         select ARCH_WANT_OPTIONAL_GPIOLIB
7         select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
8         select ARCH_WANT_FRAME_POINTERS
9         select ARM_AMBA
10         select ARM_ARCH_TIMER
11         select ARM_GIC
12         select CLONE_BACKWARDS
13 #       select COMMON_CLK
14         select CPU_PM if (SUSPEND || CPU_IDLE)
15         select GENERIC_CLOCKEVENTS
16         select GENERIC_IOMAP
17         select GENERIC_IRQ_PROBE
18         select GENERIC_IRQ_SHOW
19         select GENERIC_SCHED_CLOCK
20         select GENERIC_SMP_IDLE_THREAD
21         select GENERIC_TIME_VSYSCALL
22         select HARDIRQS_SW_RESEND
23         select GENERIC_PCI_IOMAP
24         select HAVE_ARCH_TRACEHOOK
25         select HAVE_DEBUG_BUGVERBOSE
26         select HAVE_DEBUG_KMEMLEAK
27         select HAVE_DMA_API_DEBUG
28         select HAVE_DMA_ATTRS
29         select HAVE_DMA_CONTIGUOUS if MMU
30         select HAVE_GENERIC_DMA_COHERENT
31         select HAVE_GENERIC_HARDIRQS
32         select HAVE_HW_BREAKPOINT if PERF_EVENTS
33         select HAVE_MEMBLOCK
34         select HAVE_PERF_EVENTS
35         select IRQ_DOMAIN
36         select MODULES_USE_ELF_RELA
37         select NO_BOOTMEM
38         select OF
39         select OF_EARLY_FLATTREE
40         select PERF_USE_VMALLOC
41         select POWER_RESET
42         select POWER_SUPPLY
43         select RTC_LIB
44         select SPARSE_IRQ if !ARCH_TEGRA
45         select SYSCTL_EXCEPTION_TRACE
46         help
47           ARM 64-bit (AArch64) Linux support.
48
49 config NEED_MACH_MEMORY_H
50     bool
51     help
52       Select this when mach/memory.h is required to provide special
53       definitions for this platform.  The need for mach/memory.h should
54       be avoided when possible.
55
56 config 64BIT
57         def_bool y
58
59 config ARCH_PHYS_ADDR_T_64BIT
60         def_bool y
61
62 config MMU
63         def_bool y
64
65 config NO_IOPORT
66         bool
67
68 config STACKTRACE_SUPPORT
69         def_bool y
70
71 config LOCKDEP_SUPPORT
72         def_bool y
73
74 config TRACE_IRQFLAGS_SUPPORT
75         def_bool y
76
77 config GENERIC_LOCKBREAK
78         def_bool y
79         depends on SMP && PREEMPT
80
81 config RWSEM_GENERIC_SPINLOCK
82         def_bool y
83
84 config ARM64_SIMPLE_SPINLOCK
85         def_bool n
86         help
87           The simple locks are designed to be simpler, faster, and more power
88           efficent than the normal locks when there are not many cores
89           contending for the lock. It does this by minimizing the time before
90           executing wfe in the contention case while minimizing the work in the
91           uncontended case.
92
93 config GENERIC_HWEIGHT
94         def_bool y
95
96 config GENERIC_CSUM
97         def_bool y
98
99 config GENERIC_CALIBRATE_DELAY
100         def_bool y
101
102 config ZONE_DMA32
103         def_bool y
104
105 config ARCH_DMA_ADDR_T_64BIT
106         def_bool y
107
108 config NEED_DMA_MAP_STATE
109         def_bool y
110
111 config ARM_HAS_SG_CHAIN
112         def_bool y
113
114 config NEED_SG_DMA_LENGTH
115         def_bool y
116
117 config SWIOTLB
118         def_bool y if !ARM_DMA_USE_IOMMU
119
120 config IOMMU_HELPER
121         def_bool SWIOTLB
122
123 config ARM_DMA_USE_IOMMU
124         select NEED_SG_DMA_LENGTH
125         select ARM_HAS_SG_CHAIN
126         bool
127
128 config MULTI_IRQ_HANDLER
129         bool
130         help
131           Allow each machine to specify it's own IRQ handler at run time.
132 config KERNEL_MODE_NEON
133         def_bool y
134
135 source "init/Kconfig"
136
137 source "kernel/Kconfig.freezer"
138
139 menu "Platform selection"
140
141 config ARCH_VEXPRESS
142         bool "ARMv8 software model (Versatile Express)"
143         select ARCH_REQUIRE_GPIOLIB
144         select COMMON_CLK_VERSATILE
145         select POWER_RESET_VEXPRESS
146         select VEXPRESS_CONFIG
147         help
148           This enables support for the ARMv8 software model (Versatile
149           Express).
150
151 config ARCH_TEGRA
152         bool "NVIDIA Tegra"
153         select CLKDEV_LOOKUP
154         select CLKSRC_MMIO
155         select GENERIC_CLOCKEVENTS
156         select GENERIC_GPIO
157         select HAVE_CLK
158         select HAVE_SMP
159         select NEED_MACH_MEMORY_H
160         select PCI
161         help
162           This enables support for NVIDIA Tegra based systems (Tegra APX,
163           Tegra 6xx and Tegra 2 series).
164
165 source "arch/arm64/mach-tegra/Kconfig"
166
167 endmenu
168
169 menu "Bus support"
170
171 config ARM_AMBA
172         bool
173
174 config PCI
175         bool "PCI support" if MIGHT_HAVE_PCI
176         help
177           Find out whether you have a PCI motherboard. PCI is the name of a
178           bus system, i.e. the way the CPU talks to the other stuff inside
179           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
180           VESA. If you have PCI, say Y, otherwise N.
181
182 source "drivers/pci/Kconfig"
183
184 source "drivers/pci/pcie/Kconfig"
185
186 endmenu
187
188 menu "Kernel Features"
189
190 config ARM64_64K_PAGES
191         bool "Enable 64KB pages support"
192         help
193           This feature enables 64KB pages support (4KB by default)
194           allowing only two levels of page tables and faster TLB
195           look-up. AArch32 emulation is not available when this feature
196           is enabled.
197
198 config CPU_BIG_ENDIAN
199        bool "Build big-endian kernel"
200        help
201          Say Y if you plan on running a kernel in big-endian mode.
202
203 config SMP
204         bool "Symmetric Multi-Processing"
205         help
206           This enables support for systems with more than one CPU.  If
207           you say N here, the kernel will run on single and
208           multiprocessor machines, but will use only one CPU of a
209           multiprocessor machine. If you say Y here, the kernel will run
210           on many, but not all, single processor machines. On a single
211           processor machine, the kernel will run faster if you say N
212           here.
213
214           If you don't know what to do here, say N.
215
216 config NR_CPUS
217         int "Maximum number of CPUs (2-32)"
218         range 2 32
219         depends on SMP
220         default "4"
221
222 config HOTPLUG_CPU
223         bool "Support for hot-pluggable CPUs"
224         depends on SMP && HOTPLUG
225         help
226           Say Y here to experiment with turning CPUs off and on.  CPUs
227           can be controlled through /sys/devices/system/cpu.
228
229           If you don't know what to do here, say N.
230
231 config HOTPLUG_CPU0
232         bool "Support for CPU0 hotplug"
233         depends on HOTPLUG_CPU
234         default n
235         help
236           CPU0 hotplug is not supported on all arm64 platforms. Select Y to
237           enable CPU0 hotplug. If you're unsure, leave CPU0 hotplug disabled.
238
239 config SWP_EMULATE
240         bool "Emulate SWP/SWPB instructions"
241         help
242           ARMv6 architecture deprecates use of the SWP/SWPB instructions. ARMv8
243           oblosetes the use of SWP/SWPB instructions. ARMv7 multiprocessing
244           extensions introduce the ability to disable these instructions,
245           triggering an undefined instruction exception when executed. Say Y
246           here to enable software emulation of these instructions for userspace
247           (not kernel) using LDREX/STREX. Also creates /proc/cpu/swp_emulation
248           for statistics.
249
250           In some older versions of glibc [<=2.8] SWP is used during futex
251           trylock() operations with the assumption that the code will not
252           be preempted. This invalid assumption may be more likely to fail
253           with SWP emulation enabled, leading to deadlock of the user
254           application.
255
256           NOTE: when accessing uncached shared regions, LDREX/STREX rely
257           on an external transaction monitoring block called a global
258           monitor to maintain update atomicity. If your system does not
259           implement a global monitor, this option can cause programs that
260           perform SWP operations to uncached memory to deadlock.
261
262           If unsure, say Y.
263
264 source kernel/Kconfig.preempt
265
266 config ARCH_NR_GPIO
267         int
268         default 1024 if ARCH_TEGRA
269         default 0
270         help
271
272           Maximum number of GPIOs in the system.
273           If unsure, leave the default value.
274
275 config HZ
276         int
277         default 100
278
279 config ARCH_HAS_HOLES_MEMORYMODEL
280         def_bool y if SPARSEMEM
281
282 config ARCH_SPARSEMEM_ENABLE
283         def_bool y
284         select SPARSEMEM_VMEMMAP_ENABLE
285
286 config ARCH_SPARSEMEM_DEFAULT
287         def_bool ARCH_SPARSEMEM_ENABLE
288
289 config ARCH_SELECT_MEMORY_MODEL
290         def_bool ARCH_SPARSEMEM_ENABLE
291
292 config HAVE_ARCH_PFN_VALID
293         def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
294
295 config HW_PERF_EVENTS
296         bool "Enable hardware performance counter support for perf events"
297         depends on PERF_EVENTS
298         default y
299         help
300           Enable hardware performance counter support for perf events. If
301           disabled, perf events will use software events only.
302
303 config ARMV7_COMPAT
304         bool "Kernel support for ARMv7 applications"
305         depends on COMPAT
306         select SWP_EMULATE
307         help
308          This option enables features that allow that ran on an ARMv7 or older
309          processor to continue functioning.
310
311          If you want to execute ARMv7 applications, say Y
312
313 config ARMV7_COMPAT_CPUINFO
314         bool "Report backwards compatible cpu features in /proc/cpuinfo"
315         depends on ARMV7_COMPAT
316         default y
317         help
318          This option makes /proc/cpuinfo list CPU features that an ARMv7 or
319          earlier kernel would report, but are not optional on an ARMv8 or later
320          processor.
321
322          If you want to execute ARMv7 applications, say Y
323
324 config ARMV7_COMPAT_CP15_BARRIER
325         bool "Allow applications to use the CP15 barrier operations"
326         depends on ARMV7_COMPAT
327         default y
328         help
329          This option allows applications to use deprecated CP15 barrier
330          instructions. This is useful because this was the only way to create
331          a barrier on older ARM processors.
332
333          If you want to execute ARMv7 applications, say Y
334
335 source "mm/Kconfig"
336
337 endmenu
338
339 menu "Boot options"
340
341 config CMDLINE
342         string "Default kernel command string"
343         default ""
344         help
345           Provide a set of default command-line options at build time by
346           entering them here. As a minimum, you should specify the the
347           root device (e.g. root=/dev/nfs).
348
349 config CMDLINE_FORCE
350         bool "Always use the default kernel command string"
351         help
352           Always use the default kernel command string, even if the boot
353           loader passes other arguments to the kernel.
354           This is useful if you cannot or don't want to change the
355           command-line options your boot loader passes to the kernel.
356
357 endmenu
358
359 menu "Userspace binary formats"
360
361 source "fs/Kconfig.binfmt"
362
363 config COMPAT
364         bool "Kernel support for 32-bit EL0"
365         depends on !ARM64_64K_PAGES
366         select COMPAT_BINFMT_ELF
367         select HAVE_UID16
368         select OLD_SIGSUSPEND3
369         select COMPAT_OLD_SIGACTION
370         help
371           This option enables support for a 32-bit EL0 running under a 64-bit
372           kernel at EL1. AArch32-specific components such as system calls,
373           the user helper functions, VFP support and the ptrace interface are
374           handled appropriately by the kernel.
375
376           If you want to execute 32-bit userspace applications, say Y.
377
378 config SYSVIPC_COMPAT
379         def_bool y
380         depends on COMPAT && SYSVIPC
381
382 endmenu
383
384 menu "Power management options"
385
386 source "kernel/power/Kconfig"
387
388 config ARCH_SUSPEND_POSSIBLE
389         def_bool y
390
391 config ARM_CPU_SUSPEND
392         def_bool y
393
394 endmenu
395
396 menu "CPU Power Management"
397
398 source "drivers/cpufreq/Kconfig"
399
400 source "drivers/cpuidle/Kconfig"
401
402 source "drivers/cpuquiet/Kconfig"
403
404 endmenu
405
406 source "net/Kconfig"
407
408 source "drivers/Kconfig"
409
410 source "fs/Kconfig"
411
412 source "arch/arm64/Kconfig.debug"
413
414 source "security/Kconfig"
415
416 source "crypto/Kconfig"
417
418 source "lib/Kconfig"