arm: use genalloc for the atomic pool
[linux-2.6-block.git] / arch / arm64 / Kconfig
CommitLineData
8c2c3df3
CM
1config ARM64
2 def_bool y
3 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
308c09f1 4 select ARCH_HAS_SG_CHAIN
1f85008e 5 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
c63c8700 6 select ARCH_USE_CMPXCHG_LOCKREF
4badad35 7 select ARCH_SUPPORTS_ATOMIC_RMW
9170100e 8 select ARCH_WANT_OPTIONAL_GPIOLIB
6212a512 9 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
b6f35981 10 select ARCH_WANT_FRAME_POINTERS
25c92a37 11 select ARM_AMBA
1aee5d7a 12 select ARM_ARCH_TIMER
c4188edc 13 select ARM_GIC
875cbf3e 14 select AUDIT_ARCH_COMPAT_GENERIC
021f6537 15 select ARM_GIC_V3
adace895 16 select BUILDTIME_EXTABLE_SORT
db2789b5 17 select CLONE_BACKWARDS
7ca2ef33 18 select COMMON_CLK
166936ba 19 select CPU_PM if (SUSPEND || CPU_IDLE)
7bc13fd3 20 select DCACHE_WORD_ACCESS
8c2c3df3 21 select GENERIC_CLOCKEVENTS
1f85008e 22 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
3be1a5c4 23 select GENERIC_CPU_AUTOPROBE
bf4b558e 24 select GENERIC_EARLY_IOREMAP
8c2c3df3
CM
25 select GENERIC_IOMAP
26 select GENERIC_IRQ_PROBE
27 select GENERIC_IRQ_SHOW
65cd4f6c 28 select GENERIC_SCHED_CLOCK
8c2c3df3 29 select GENERIC_SMP_IDLE_THREAD
12a0ef7b
WD
30 select GENERIC_STRNCPY_FROM_USER
31 select GENERIC_STRNLEN_USER
8c2c3df3 32 select GENERIC_TIME_VSYSCALL
a1ddc74a 33 select HANDLE_DOMAIN_IRQ
8c2c3df3 34 select HARDIRQS_SW_RESEND
875cbf3e 35 select HAVE_ARCH_AUDITSYSCALL
9732cafd 36 select HAVE_ARCH_JUMP_LABEL
9529247d 37 select HAVE_ARCH_KGDB
8c2c3df3 38 select HAVE_ARCH_TRACEHOOK
e54bcde3 39 select HAVE_BPF_JIT
af64d2aa 40 select HAVE_C_RECORDMCOUNT
c0c264ae 41 select HAVE_CC_STACKPROTECTOR
9b2a60c4 42 select HAVE_DEBUG_BUGVERBOSE
b69ec42b 43 select HAVE_DEBUG_KMEMLEAK
8c2c3df3
CM
44 select HAVE_DMA_API_DEBUG
45 select HAVE_DMA_ATTRS
6ac2104d 46 select HAVE_DMA_CONTIGUOUS
bd7d38db 47 select HAVE_DYNAMIC_FTRACE
50afc33a 48 select HAVE_EFFICIENT_UNALIGNED_ACCESS
af64d2aa 49 select HAVE_FTRACE_MCOUNT_RECORD
819e50e2
AT
50 select HAVE_FUNCTION_TRACER
51 select HAVE_FUNCTION_GRAPH_TRACER
8c2c3df3 52 select HAVE_GENERIC_DMA_COHERENT
8c2c3df3 53 select HAVE_HW_BREAKPOINT if PERF_EVENTS
8c2c3df3 54 select HAVE_MEMBLOCK
55834a77 55 select HAVE_PATA_PLATFORM
8c2c3df3 56 select HAVE_PERF_EVENTS
2ee0d7fd
JP
57 select HAVE_PERF_REGS
58 select HAVE_PERF_USER_STACK_DUMP
055b1212 59 select HAVE_SYSCALL_TRACEPOINTS
8c2c3df3 60 select IRQ_DOMAIN
fea2acaa 61 select MODULES_USE_ELF_RELA
8c2c3df3
CM
62 select NO_BOOTMEM
63 select OF
64 select OF_EARLY_FLATTREE
9bf14b7c 65 select OF_RESERVED_MEM
8c2c3df3 66 select PERF_USE_VMALLOC
aa1e8ec1
CM
67 select POWER_RESET
68 select POWER_SUPPLY
8c2c3df3
CM
69 select RTC_LIB
70 select SPARSE_IRQ
7ac57a89 71 select SYSCTL_EXCEPTION_TRACE
6c81fe79 72 select HAVE_CONTEXT_TRACKING
8c2c3df3
CM
73 help
74 ARM 64-bit (AArch64) Linux support.
75
76config 64BIT
77 def_bool y
78
79config ARCH_PHYS_ADDR_T_64BIT
80 def_bool y
81
82config MMU
83 def_bool y
84
ce816fa8 85config NO_IOPORT_MAP
8c2c3df3
CM
86 def_bool y
87
88config STACKTRACE_SUPPORT
89 def_bool y
90
91config LOCKDEP_SUPPORT
92 def_bool y
93
94config TRACE_IRQFLAGS_SUPPORT
95 def_bool y
96
c209f799 97config RWSEM_XCHGADD_ALGORITHM
8c2c3df3
CM
98 def_bool y
99
100config GENERIC_HWEIGHT
101 def_bool y
102
103config GENERIC_CSUM
104 def_bool y
105
106config GENERIC_CALIBRATE_DELAY
107 def_bool y
108
19e7640d 109config ZONE_DMA
8c2c3df3
CM
110 def_bool y
111
112config ARCH_DMA_ADDR_T_64BIT
113 def_bool y
114
115config NEED_DMA_MAP_STATE
116 def_bool y
117
118config NEED_SG_DMA_LENGTH
119 def_bool y
120
121config SWIOTLB
122 def_bool y
123
124config IOMMU_HELPER
125 def_bool SWIOTLB
126
4cfb3613
AB
127config KERNEL_MODE_NEON
128 def_bool y
129
92cc15fc
RH
130config FIX_EARLYCON_MEM
131 def_bool y
132
8c2c3df3
CM
133source "init/Kconfig"
134
135source "kernel/Kconfig.freezer"
136
1ae90e79
CM
137menu "Platform selection"
138
28f7420d
RMC
139config ARCH_THUNDER
140 bool "Cavium Inc. Thunder SoC Family"
141 help
142 This enables support for Cavium's Thunder Family of SoCs.
143
1ae90e79
CM
144config ARCH_VEXPRESS
145 bool "ARMv8 software model (Versatile Express)"
146 select ARCH_REQUIRE_GPIOLIB
147 select COMMON_CLK_VERSATILE
aa1e8ec1 148 select POWER_RESET_VEXPRESS
1ae90e79
CM
149 select VEXPRESS_CONFIG
150 help
151 This enables support for the ARMv8 software model (Versatile
152 Express).
8c2c3df3 153
15942853
VK
154config ARCH_XGENE
155 bool "AppliedMicro X-Gene SOC Family"
156 help
157 This enables support for AppliedMicro X-Gene SOC Family
158
8c2c3df3
CM
159endmenu
160
161menu "Bus support"
162
163config ARM_AMBA
164 bool
165
166endmenu
167
168menu "Kernel Features"
169
e41ceed0
JL
170choice
171 prompt "Page size"
172 default ARM64_4K_PAGES
173 help
174 Page size (translation granule) configuration.
175
176config ARM64_4K_PAGES
177 bool "4KB"
178 help
179 This feature enables 4KB pages support.
180
8c2c3df3 181config ARM64_64K_PAGES
e41ceed0 182 bool "64KB"
8c2c3df3
CM
183 help
184 This feature enables 64KB pages support (4KB by default)
185 allowing only two levels of page tables and faster TLB
186 look-up. AArch32 emulation is not available when this feature
187 is enabled.
188
e41ceed0
JL
189endchoice
190
191choice
192 prompt "Virtual address space size"
193 default ARM64_VA_BITS_39 if ARM64_4K_PAGES
194 default ARM64_VA_BITS_42 if ARM64_64K_PAGES
195 help
196 Allows choosing one of multiple possible virtual address
197 space sizes. The level of translation table is determined by
198 a combination of page size and virtual address space size.
199
200config ARM64_VA_BITS_39
201 bool "39-bit"
202 depends on ARM64_4K_PAGES
203
204config ARM64_VA_BITS_42
205 bool "42-bit"
206 depends on ARM64_64K_PAGES
207
c79b954b
JL
208config ARM64_VA_BITS_48
209 bool "48-bit"
210 depends on BROKEN
211
e41ceed0
JL
212endchoice
213
214config ARM64_VA_BITS
215 int
216 default 39 if ARM64_VA_BITS_39
217 default 42 if ARM64_VA_BITS_42
c79b954b 218 default 48 if ARM64_VA_BITS_48
e41ceed0 219
abe669d7
CM
220config ARM64_PGTABLE_LEVELS
221 int
222 default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
383c2799 223 default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
abe669d7
CM
224 default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
225 default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48
c79b954b 226
a872013d
WD
227config CPU_BIG_ENDIAN
228 bool "Build big-endian kernel"
229 help
230 Say Y if you plan on running a kernel in big-endian mode.
231
8c2c3df3
CM
232config SMP
233 bool "Symmetric Multi-Processing"
8c2c3df3
CM
234 help
235 This enables support for systems with more than one CPU. If
236 you say N here, the kernel will run on single and
237 multiprocessor machines, but will use only one CPU of a
238 multiprocessor machine. If you say Y here, the kernel will run
239 on many, but not all, single processor machines. On a single
240 processor machine, the kernel will run faster if you say N
241 here.
242
243 If you don't know what to do here, say N.
244
f6e763b9
MB
245config SCHED_MC
246 bool "Multi-core scheduler support"
247 depends on SMP
248 help
249 Multi-core scheduler support improves the CPU scheduler's decision
250 making when dealing with multi-core CPU chips at a cost of slightly
251 increased overhead in some places. If unsure say N here.
252
253config SCHED_SMT
254 bool "SMT scheduler support"
255 depends on SMP
256 help
257 Improves the CPU scheduler's decision making when dealing with
258 MultiThreading at a cost of slightly increased overhead in some
259 places. If unsure say N here.
260
8c2c3df3 261config NR_CPUS
e3672649
RR
262 int "Maximum number of CPUs (2-64)"
263 range 2 64
8c2c3df3 264 depends on SMP
15942853 265 # These have to remain sorted largest to smallest
e3672649 266 default "64"
8c2c3df3 267
9327e2c6
MR
268config HOTPLUG_CPU
269 bool "Support for hot-pluggable CPUs"
270 depends on SMP
271 help
272 Say Y here to experiment with turning CPUs off and on. CPUs
273 can be controlled through /sys/devices/system/cpu.
274
8c2c3df3
CM
275source kernel/Kconfig.preempt
276
277config HZ
278 int
279 default 100
280
281config ARCH_HAS_HOLES_MEMORYMODEL
282 def_bool y if SPARSEMEM
283
284config ARCH_SPARSEMEM_ENABLE
285 def_bool y
286 select SPARSEMEM_VMEMMAP_ENABLE
287
288config ARCH_SPARSEMEM_DEFAULT
289 def_bool ARCH_SPARSEMEM_ENABLE
290
291config ARCH_SELECT_MEMORY_MODEL
292 def_bool ARCH_SPARSEMEM_ENABLE
293
294config HAVE_ARCH_PFN_VALID
295 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
296
297config HW_PERF_EVENTS
298 bool "Enable hardware performance counter support for perf events"
299 depends on PERF_EVENTS
300 default y
301 help
302 Enable hardware performance counter support for perf events. If
303 disabled, perf events will use software events only.
304
084bd298
SC
305config SYS_SUPPORTS_HUGETLBFS
306 def_bool y
307
308config ARCH_WANT_GENERAL_HUGETLB
309 def_bool y
310
311config ARCH_WANT_HUGE_PMD_SHARE
312 def_bool y if !ARM64_64K_PAGES
313
af074848
SC
314config HAVE_ARCH_TRANSPARENT_HUGEPAGE
315 def_bool y
316
a41dc0e8
CM
317config ARCH_HAS_CACHE_LINE_SIZE
318 def_bool y
319
8c2c3df3
CM
320source "mm/Kconfig"
321
aa42aa13
SS
322config XEN_DOM0
323 def_bool y
324 depends on XEN
325
326config XEN
327 bool "Xen guest support on ARM64 (EXPERIMENTAL)"
328 depends on ARM64 && OF
83862ccf 329 select SWIOTLB_XEN
aa42aa13
SS
330 help
331 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
332
d03bb145
SC
333config FORCE_MAX_ZONEORDER
334 int
335 default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
336 default "11"
337
8c2c3df3
CM
338endmenu
339
340menu "Boot options"
341
342config CMDLINE
343 string "Default kernel command string"
344 default ""
345 help
346 Provide a set of default command-line options at build time by
347 entering them here. As a minimum, you should specify the the
348 root device (e.g. root=/dev/nfs).
349
350config CMDLINE_FORCE
351 bool "Always use the default kernel command string"
352 help
353 Always use the default kernel command string, even if the boot
354 loader passes other arguments to the kernel.
355 This is useful if you cannot or don't want to change the
356 command-line options your boot loader passes to the kernel.
357
f4f75ad5
AB
358config EFI_STUB
359 bool
360
f84d0275
MS
361config EFI
362 bool "UEFI runtime support"
363 depends on OF && !CPU_BIG_ENDIAN
364 select LIBFDT
365 select UCS2_STRING
366 select EFI_PARAMS_FROM_FDT
e15dd494 367 select EFI_RUNTIME_WRAPPERS
f4f75ad5
AB
368 select EFI_STUB
369 select EFI_ARMSTUB
f84d0275
MS
370 default y
371 help
372 This option provides support for runtime services provided
373 by UEFI firmware (such as non-volatile variables, realtime
3c7f2550
MS
374 clock, and platform reset). A UEFI stub is also provided to
375 allow the kernel to be booted as an EFI application. This
376 is only useful on systems that have UEFI firmware.
f84d0275 377
8c2c3df3
CM
378endmenu
379
380menu "Userspace binary formats"
381
382source "fs/Kconfig.binfmt"
383
384config COMPAT
385 bool "Kernel support for 32-bit EL0"
386 depends on !ARM64_64K_PAGES
387 select COMPAT_BINFMT_ELF
af1839eb 388 select HAVE_UID16
84b9e9b4 389 select OLD_SIGSUSPEND3
51682036 390 select COMPAT_OLD_SIGACTION
8c2c3df3
CM
391 help
392 This option enables support for a 32-bit EL0 running under a 64-bit
393 kernel at EL1. AArch32-specific components such as system calls,
394 the user helper functions, VFP support and the ptrace interface are
395 handled appropriately by the kernel.
396
397 If you want to execute 32-bit userspace applications, say Y.
398
399config SYSVIPC_COMPAT
400 def_bool y
401 depends on COMPAT && SYSVIPC
402
403endmenu
404
166936ba
LP
405menu "Power management options"
406
407source "kernel/power/Kconfig"
408
409config ARCH_SUSPEND_POSSIBLE
410 def_bool y
411
412config ARM64_CPU_SUSPEND
413 def_bool PM_SLEEP
414
415endmenu
416
1307220d
LP
417menu "CPU Power Management"
418
419source "drivers/cpuidle/Kconfig"
420
52e7e816
RH
421source "drivers/cpufreq/Kconfig"
422
423endmenu
424
8c2c3df3
CM
425source "net/Kconfig"
426
427source "drivers/Kconfig"
428
f84d0275
MS
429source "drivers/firmware/Kconfig"
430
8c2c3df3
CM
431source "fs/Kconfig"
432
c3eb5b14
MZ
433source "arch/arm64/kvm/Kconfig"
434
8c2c3df3
CM
435source "arch/arm64/Kconfig.debug"
436
437source "security/Kconfig"
438
439source "crypto/Kconfig"
2c98833a
AB
440if CRYPTO
441source "arch/arm64/crypto/Kconfig"
442endif
8c2c3df3
CM
443
444source "lib/Kconfig"