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
14 select AUDIT_ARCH_COMPAT_GENERIC
16 select BUILDTIME_EXTABLE_SORT
17 select CLONE_BACKWARDS
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
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 HANDLE_DOMAIN_IRQ
34 select HARDIRQS_SW_RESEND
35 select HAVE_ARCH_AUDITSYSCALL
36 select HAVE_ARCH_JUMP_LABEL
38 select HAVE_ARCH_TRACEHOOK
40 select HAVE_C_RECORDMCOUNT
41 select HAVE_CC_STACKPROTECTOR
42 select HAVE_DEBUG_BUGVERBOSE
43 select HAVE_DEBUG_KMEMLEAK
44 select HAVE_DMA_API_DEBUG
46 select HAVE_DMA_CONTIGUOUS
47 select HAVE_DYNAMIC_FTRACE
48 select HAVE_EFFICIENT_UNALIGNED_ACCESS
49 select HAVE_FTRACE_MCOUNT_RECORD
50 select HAVE_FUNCTION_TRACER
51 select HAVE_FUNCTION_GRAPH_TRACER
52 select HAVE_GENERIC_DMA_COHERENT
53 select HAVE_HW_BREAKPOINT if PERF_EVENTS
55 select HAVE_PATA_PLATFORM
56 select HAVE_PERF_EVENTS
58 select HAVE_PERF_USER_STACK_DUMP
59 select HAVE_SYSCALL_TRACEPOINTS
61 select MODULES_USE_ELF_RELA
64 select OF_EARLY_FLATTREE
65 select OF_RESERVED_MEM
66 select PERF_USE_VMALLOC
71 select SYSCTL_EXCEPTION_TRACE
72 select HAVE_CONTEXT_TRACKING
74 ARM 64-bit (AArch64) Linux support.
79 config ARCH_PHYS_ADDR_T_64BIT
88 config STACKTRACE_SUPPORT
91 config LOCKDEP_SUPPORT
94 config TRACE_IRQFLAGS_SUPPORT
97 config RWSEM_XCHGADD_ALGORITHM
100 config GENERIC_HWEIGHT
106 config GENERIC_CALIBRATE_DELAY
112 config ARCH_DMA_ADDR_T_64BIT
115 config NEED_DMA_MAP_STATE
118 config NEED_SG_DMA_LENGTH
127 config KERNEL_MODE_NEON
130 config FIX_EARLYCON_MEM
133 source "init/Kconfig"
135 source "kernel/Kconfig.freezer"
137 menu "Platform selection"
140 bool "Cavium Inc. Thunder SoC Family"
142 This enables support for Cavium's Thunder Family of SoCs.
145 bool "ARMv8 software model (Versatile Express)"
146 select ARCH_REQUIRE_GPIOLIB
147 select COMMON_CLK_VERSATILE
148 select POWER_RESET_VEXPRESS
149 select VEXPRESS_CONFIG
151 This enables support for the ARMv8 software model (Versatile
155 bool "AppliedMicro X-Gene SOC Family"
157 This enables support for AppliedMicro X-Gene SOC Family
168 menu "Kernel Features"
172 default ARM64_4K_PAGES
174 Page size (translation granule) configuration.
176 config ARM64_4K_PAGES
179 This feature enables 4KB pages support.
181 config ARM64_64K_PAGES
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
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
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.
200 config ARM64_VA_BITS_39
202 depends on ARM64_4K_PAGES
204 config ARM64_VA_BITS_42
206 depends on ARM64_64K_PAGES
208 config ARM64_VA_BITS_48
216 default 39 if ARM64_VA_BITS_39
217 default 42 if ARM64_VA_BITS_42
218 default 48 if ARM64_VA_BITS_48
220 config ARM64_PGTABLE_LEVELS
222 default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
223 default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
224 default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
225 default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48
227 config CPU_BIG_ENDIAN
228 bool "Build big-endian kernel"
230 Say Y if you plan on running a kernel in big-endian mode.
233 bool "Symmetric Multi-Processing"
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
243 If you don't know what to do here, say N.
246 bool "Multi-core scheduler support"
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.
254 bool "SMT scheduler support"
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.
262 int "Maximum number of CPUs (2-64)"
265 # These have to remain sorted largest to smallest
269 bool "Support for hot-pluggable CPUs"
272 Say Y here to experiment with turning CPUs off and on. CPUs
273 can be controlled through /sys/devices/system/cpu.
275 source kernel/Kconfig.preempt
281 config ARCH_HAS_HOLES_MEMORYMODEL
282 def_bool y if SPARSEMEM
284 config ARCH_SPARSEMEM_ENABLE
286 select SPARSEMEM_VMEMMAP_ENABLE
288 config ARCH_SPARSEMEM_DEFAULT
289 def_bool ARCH_SPARSEMEM_ENABLE
291 config ARCH_SELECT_MEMORY_MODEL
292 def_bool ARCH_SPARSEMEM_ENABLE
294 config HAVE_ARCH_PFN_VALID
295 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
297 config HW_PERF_EVENTS
298 bool "Enable hardware performance counter support for perf events"
299 depends on PERF_EVENTS
302 Enable hardware performance counter support for perf events. If
303 disabled, perf events will use software events only.
305 config SYS_SUPPORTS_HUGETLBFS
308 config ARCH_WANT_GENERAL_HUGETLB
311 config ARCH_WANT_HUGE_PMD_SHARE
312 def_bool y if !ARM64_64K_PAGES
314 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
317 config ARCH_HAS_CACHE_LINE_SIZE
327 bool "Xen guest support on ARM64 (EXPERIMENTAL)"
328 depends on ARM64 && OF
331 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
333 config FORCE_MAX_ZONEORDER
335 default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
343 string "Default kernel command string"
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).
351 bool "Always use the default kernel command string"
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.
362 bool "UEFI runtime support"
363 depends on OF && !CPU_BIG_ENDIAN
366 select EFI_PARAMS_FROM_FDT
367 select EFI_RUNTIME_WRAPPERS
372 This option provides support for runtime services provided
373 by UEFI firmware (such as non-volatile variables, realtime
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.
380 menu "Userspace binary formats"
382 source "fs/Kconfig.binfmt"
385 bool "Kernel support for 32-bit EL0"
386 depends on !ARM64_64K_PAGES
387 select COMPAT_BINFMT_ELF
389 select OLD_SIGSUSPEND3
390 select COMPAT_OLD_SIGACTION
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.
397 If you want to execute 32-bit userspace applications, say Y.
399 config SYSVIPC_COMPAT
401 depends on COMPAT && SYSVIPC
405 menu "Power management options"
407 source "kernel/power/Kconfig"
409 config ARCH_SUSPEND_POSSIBLE
412 config ARM64_CPU_SUSPEND
417 menu "CPU Power Management"
419 source "drivers/cpuidle/Kconfig"
421 source "drivers/cpufreq/Kconfig"
427 source "drivers/Kconfig"
429 source "drivers/firmware/Kconfig"
433 source "arch/arm64/kvm/Kconfig"
435 source "arch/arm64/Kconfig.debug"
437 source "security/Kconfig"
439 source "crypto/Kconfig"
441 source "arch/arm64/crypto/Kconfig"