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