]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm64/Kconfig
Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-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_THUNDER
139         bool "Cavium Inc. Thunder SoC Family"
140         help
141           This enables support for Cavium's Thunder Family of SoCs.
142
143 config ARCH_VEXPRESS
144         bool "ARMv8 software model (Versatile Express)"
145         select ARCH_REQUIRE_GPIOLIB
146         select COMMON_CLK_VERSATILE
147         select POWER_RESET_VEXPRESS
148         select VEXPRESS_CONFIG
149         help
150           This enables support for the ARMv8 software model (Versatile
151           Express).
152
153 config ARCH_XGENE
154         bool "AppliedMicro X-Gene SOC Family"
155         help
156           This enables support for AppliedMicro X-Gene SOC Family
157
158 endmenu
159
160 menu "Bus support"
161
162 config ARM_AMBA
163         bool
164
165 endmenu
166
167 menu "Kernel Features"
168
169 choice
170         prompt "Page size"
171         default ARM64_4K_PAGES
172         help
173           Page size (translation granule) configuration.
174
175 config ARM64_4K_PAGES
176         bool "4KB"
177         help
178           This feature enables 4KB pages support.
179
180 config ARM64_64K_PAGES
181         bool "64KB"
182         help
183           This feature enables 64KB pages support (4KB by default)
184           allowing only two levels of page tables and faster TLB
185           look-up. AArch32 emulation is not available when this feature
186           is enabled.
187
188 endchoice
189
190 choice
191         prompt "Virtual address space size"
192         default ARM64_VA_BITS_39 if ARM64_4K_PAGES
193         default ARM64_VA_BITS_42 if ARM64_64K_PAGES
194         help
195           Allows choosing one of multiple possible virtual address
196           space sizes. The level of translation table is determined by
197           a combination of page size and virtual address space size.
198
199 config ARM64_VA_BITS_39
200         bool "39-bit"
201         depends on ARM64_4K_PAGES
202
203 config ARM64_VA_BITS_42
204         bool "42-bit"
205         depends on ARM64_64K_PAGES
206
207 config ARM64_VA_BITS_48
208         bool "48-bit"
209         depends on BROKEN
210
211 endchoice
212
213 config ARM64_VA_BITS
214         int
215         default 39 if ARM64_VA_BITS_39
216         default 42 if ARM64_VA_BITS_42
217         default 48 if ARM64_VA_BITS_48
218
219 config ARM64_PGTABLE_LEVELS
220         int
221         default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
222         default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
223         default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
224         default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48
225
226 config CPU_BIG_ENDIAN
227        bool "Build big-endian kernel"
228        help
229          Say Y if you plan on running a kernel in big-endian mode.
230
231 config SMP
232         bool "Symmetric Multi-Processing"
233         help
234           This enables support for systems with more than one CPU.  If
235           you say N here, the kernel will run on single and
236           multiprocessor machines, but will use only one CPU of a
237           multiprocessor machine. If you say Y here, the kernel will run
238           on many, but not all, single processor machines. On a single
239           processor machine, the kernel will run faster if you say N
240           here.
241
242           If you don't know what to do here, say N.
243
244 config SCHED_MC
245         bool "Multi-core scheduler support"
246         depends on SMP
247         help
248           Multi-core scheduler support improves the CPU scheduler's decision
249           making when dealing with multi-core CPU chips at a cost of slightly
250           increased overhead in some places. If unsure say N here.
251
252 config SCHED_SMT
253         bool "SMT scheduler support"
254         depends on SMP
255         help
256           Improves the CPU scheduler's decision making when dealing with
257           MultiThreading at a cost of slightly increased overhead in some
258           places. If unsure say N here.
259
260 config NR_CPUS
261         int "Maximum number of CPUs (2-64)"
262         range 2 64
263         depends on SMP
264         # These have to remain sorted largest to smallest
265         default "64"
266
267 config HOTPLUG_CPU
268         bool "Support for hot-pluggable CPUs"
269         depends on SMP
270         help
271           Say Y here to experiment with turning CPUs off and on.  CPUs
272           can be controlled through /sys/devices/system/cpu.
273
274 source kernel/Kconfig.preempt
275
276 config HZ
277         int
278         default 100
279
280 config ARCH_HAS_HOLES_MEMORYMODEL
281         def_bool y if SPARSEMEM
282
283 config ARCH_SPARSEMEM_ENABLE
284         def_bool y
285         select SPARSEMEM_VMEMMAP_ENABLE
286
287 config ARCH_SPARSEMEM_DEFAULT
288         def_bool ARCH_SPARSEMEM_ENABLE
289
290 config ARCH_SELECT_MEMORY_MODEL
291         def_bool ARCH_SPARSEMEM_ENABLE
292
293 config HAVE_ARCH_PFN_VALID
294         def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
295
296 config HW_PERF_EVENTS
297         bool "Enable hardware performance counter support for perf events"
298         depends on PERF_EVENTS
299         default y
300         help
301           Enable hardware performance counter support for perf events. If
302           disabled, perf events will use software events only.
303
304 config SYS_SUPPORTS_HUGETLBFS
305         def_bool y
306
307 config ARCH_WANT_GENERAL_HUGETLB
308         def_bool y
309
310 config ARCH_WANT_HUGE_PMD_SHARE
311         def_bool y if !ARM64_64K_PAGES
312
313 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
314         def_bool y
315
316 config ARCH_HAS_CACHE_LINE_SIZE
317         def_bool y
318
319 source "mm/Kconfig"
320
321 config XEN_DOM0
322         def_bool y
323         depends on XEN
324
325 config XEN
326         bool "Xen guest support on ARM64 (EXPERIMENTAL)"
327         depends on ARM64 && OF
328         select SWIOTLB_XEN
329         help
330           Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
331
332 config FORCE_MAX_ZONEORDER
333         int
334         default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
335         default "11"
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 config EFI_STUB
358         bool
359
360 config EFI
361         bool "UEFI runtime support"
362         depends on OF && !CPU_BIG_ENDIAN
363         select LIBFDT
364         select UCS2_STRING
365         select EFI_PARAMS_FROM_FDT
366         select EFI_RUNTIME_WRAPPERS
367         select EFI_STUB
368         select EFI_ARMSTUB
369         default y
370         help
371           This option provides support for runtime services provided
372           by UEFI firmware (such as non-volatile variables, realtime
373           clock, and platform reset). A UEFI stub is also provided to
374           allow the kernel to be booted as an EFI application. This
375           is only useful on systems that have UEFI firmware.
376
377 endmenu
378
379 menu "Userspace binary formats"
380
381 source "fs/Kconfig.binfmt"
382
383 config COMPAT
384         bool "Kernel support for 32-bit EL0"
385         depends on !ARM64_64K_PAGES
386         select COMPAT_BINFMT_ELF
387         select HAVE_UID16
388         select OLD_SIGSUSPEND3
389         select COMPAT_OLD_SIGACTION
390         help
391           This option enables support for a 32-bit EL0 running under a 64-bit
392           kernel at EL1. AArch32-specific components such as system calls,
393           the user helper functions, VFP support and the ptrace interface are
394           handled appropriately by the kernel.
395
396           If you want to execute 32-bit userspace applications, say Y.
397
398 config SYSVIPC_COMPAT
399         def_bool y
400         depends on COMPAT && SYSVIPC
401
402 endmenu
403
404 menu "Power management options"
405
406 source "kernel/power/Kconfig"
407
408 config ARCH_SUSPEND_POSSIBLE
409         def_bool y
410
411 config ARM64_CPU_SUSPEND
412         def_bool PM_SLEEP
413
414 endmenu
415
416 menu "CPU Power Management"
417
418 source "drivers/cpuidle/Kconfig"
419
420 source "drivers/cpufreq/Kconfig"
421
422 endmenu
423
424 source "net/Kconfig"
425
426 source "drivers/Kconfig"
427
428 source "drivers/firmware/Kconfig"
429
430 source "fs/Kconfig"
431
432 source "arch/arm64/kvm/Kconfig"
433
434 source "arch/arm64/Kconfig.debug"
435
436 source "security/Kconfig"
437
438 source "crypto/Kconfig"
439 if CRYPTO
440 source "arch/arm64/crypto/Kconfig"
441 endif
442
443 source "lib/Kconfig"