3 select ARCH_BINFMT_ELF_RANDOMIZE_PIE
4 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
5 select ARCH_HAS_SG_CHAIN
6 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
7 select ARCH_USE_CMPXCHG_LOCKREF
8 select ARCH_SUPPORTS_ATOMIC_RMW
9 select ARCH_WANT_OPTIONAL_GPIOLIB
10 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
11 select ARCH_WANT_FRAME_POINTERS
15 select AUDIT_ARCH_COMPAT_GENERIC
17 select BUILDTIME_EXTABLE_SORT
18 select CLONE_BACKWARDS
20 select CPU_PM if (SUSPEND || CPU_IDLE)
21 select DCACHE_WORD_ACCESS
22 select GENERIC_ALLOCATOR
23 select GENERIC_CLOCKEVENTS
24 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
25 select GENERIC_CPU_AUTOPROBE
26 select GENERIC_EARLY_IOREMAP
28 select GENERIC_IRQ_PROBE
29 select GENERIC_IRQ_SHOW
30 select GENERIC_SCHED_CLOCK
31 select GENERIC_SMP_IDLE_THREAD
32 select GENERIC_STRNCPY_FROM_USER
33 select GENERIC_STRNLEN_USER
34 select GENERIC_TIME_VSYSCALL
35 select HANDLE_DOMAIN_IRQ
36 select HARDIRQS_SW_RESEND
37 select HAVE_ALIGNED_STRUCT_PAGE if SLUB
38 select HAVE_ARCH_AUDITSYSCALL
39 select HAVE_ARCH_JUMP_LABEL
41 select HAVE_ARCH_TRACEHOOK
43 select HAVE_C_RECORDMCOUNT
44 select HAVE_CC_STACKPROTECTOR
45 select HAVE_CMPXCHG_DOUBLE
46 select HAVE_DEBUG_BUGVERBOSE
47 select HAVE_DEBUG_KMEMLEAK
48 select HAVE_DMA_API_DEBUG
50 select HAVE_DMA_CONTIGUOUS
51 select HAVE_DYNAMIC_FTRACE
52 select HAVE_EFFICIENT_UNALIGNED_ACCESS
53 select HAVE_FTRACE_MCOUNT_RECORD
54 select HAVE_FUNCTION_TRACER
55 select HAVE_FUNCTION_GRAPH_TRACER
56 select HAVE_GENERIC_DMA_COHERENT
57 select HAVE_HW_BREAKPOINT if PERF_EVENTS
59 select HAVE_PATA_PLATFORM
60 select HAVE_PERF_EVENTS
62 select HAVE_PERF_USER_STACK_DUMP
63 select HAVE_RCU_TABLE_FREE
64 select HAVE_SYSCALL_TRACEPOINTS
66 select MODULES_USE_ELF_RELA
69 select OF_EARLY_FLATTREE
70 select OF_RESERVED_MEM
71 select PERF_USE_VMALLOC
76 select SYSCTL_EXCEPTION_TRACE
77 select HAVE_CONTEXT_TRACKING
79 ARM 64-bit (AArch64) Linux support.
84 config ARCH_PHYS_ADDR_T_64BIT
93 config STACKTRACE_SUPPORT
96 config LOCKDEP_SUPPORT
99 config TRACE_IRQFLAGS_SUPPORT
102 config RWSEM_XCHGADD_ALGORITHM
105 config GENERIC_HWEIGHT
111 config GENERIC_CALIBRATE_DELAY
117 config HAVE_GENERIC_RCU_GUP
120 config ARCH_DMA_ADDR_T_64BIT
123 config NEED_DMA_MAP_STATE
126 config NEED_SG_DMA_LENGTH
135 config KERNEL_MODE_NEON
138 config FIX_EARLYCON_MEM
141 source "init/Kconfig"
143 source "kernel/Kconfig.freezer"
145 menu "Platform selection"
148 bool "Cavium Inc. Thunder SoC Family"
150 This enables support for Cavium's Thunder Family of SoCs.
153 bool "ARMv8 software model (Versatile Express)"
154 select ARCH_REQUIRE_GPIOLIB
155 select COMMON_CLK_VERSATILE
156 select POWER_RESET_VEXPRESS
157 select VEXPRESS_CONFIG
159 This enables support for the ARMv8 software model (Versatile
163 bool "AppliedMicro X-Gene SOC Family"
165 This enables support for AppliedMicro X-Gene SOC Family
177 This feature enables support for PCI bus system. If you say Y
178 here, the kernel will include drivers and infrastructure code
179 to support PCI bus devices.
184 config PCI_DOMAINS_GENERIC
190 source "drivers/pci/Kconfig"
191 source "drivers/pci/pcie/Kconfig"
192 source "drivers/pci/hotplug/Kconfig"
196 menu "Kernel Features"
200 default ARM64_4K_PAGES
202 Page size (translation granule) configuration.
204 config ARM64_4K_PAGES
207 This feature enables 4KB pages support.
209 config ARM64_64K_PAGES
212 This feature enables 64KB pages support (4KB by default)
213 allowing only two levels of page tables and faster TLB
214 look-up. AArch32 emulation is not available when this feature
220 prompt "Virtual address space size"
221 default ARM64_VA_BITS_39 if ARM64_4K_PAGES
222 default ARM64_VA_BITS_42 if ARM64_64K_PAGES
224 Allows choosing one of multiple possible virtual address
225 space sizes. The level of translation table is determined by
226 a combination of page size and virtual address space size.
228 config ARM64_VA_BITS_39
230 depends on ARM64_4K_PAGES
232 config ARM64_VA_BITS_42
234 depends on ARM64_64K_PAGES
236 config ARM64_VA_BITS_48
244 default 39 if ARM64_VA_BITS_39
245 default 42 if ARM64_VA_BITS_42
246 default 48 if ARM64_VA_BITS_48
248 config ARM64_PGTABLE_LEVELS
250 default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
251 default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
252 default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
253 default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48
255 config CPU_BIG_ENDIAN
256 bool "Build big-endian kernel"
258 Say Y if you plan on running a kernel in big-endian mode.
261 bool "Symmetric Multi-Processing"
263 This enables support for systems with more than one CPU. If
264 you say N here, the kernel will run on single and
265 multiprocessor machines, but will use only one CPU of a
266 multiprocessor machine. If you say Y here, the kernel will run
267 on many, but not all, single processor machines. On a single
268 processor machine, the kernel will run faster if you say N
271 If you don't know what to do here, say N.
274 bool "Multi-core scheduler support"
277 Multi-core scheduler support improves the CPU scheduler's decision
278 making when dealing with multi-core CPU chips at a cost of slightly
279 increased overhead in some places. If unsure say N here.
282 bool "SMT scheduler support"
285 Improves the CPU scheduler's decision making when dealing with
286 MultiThreading at a cost of slightly increased overhead in some
287 places. If unsure say N here.
290 int "Maximum number of CPUs (2-64)"
293 # These have to remain sorted largest to smallest
297 bool "Support for hot-pluggable CPUs"
300 Say Y here to experiment with turning CPUs off and on. CPUs
301 can be controlled through /sys/devices/system/cpu.
303 source kernel/Kconfig.preempt
309 config ARCH_HAS_HOLES_MEMORYMODEL
310 def_bool y if SPARSEMEM
312 config ARCH_SPARSEMEM_ENABLE
314 select SPARSEMEM_VMEMMAP_ENABLE
316 config ARCH_SPARSEMEM_DEFAULT
317 def_bool ARCH_SPARSEMEM_ENABLE
319 config ARCH_SELECT_MEMORY_MODEL
320 def_bool ARCH_SPARSEMEM_ENABLE
322 config HAVE_ARCH_PFN_VALID
323 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
325 config HW_PERF_EVENTS
326 bool "Enable hardware performance counter support for perf events"
327 depends on PERF_EVENTS
330 Enable hardware performance counter support for perf events. If
331 disabled, perf events will use software events only.
333 config SYS_SUPPORTS_HUGETLBFS
336 config ARCH_WANT_GENERAL_HUGETLB
339 config ARCH_WANT_HUGE_PMD_SHARE
340 def_bool y if !ARM64_64K_PAGES
342 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
345 config ARCH_HAS_CACHE_LINE_SIZE
355 bool "Xen guest support on ARM64"
356 depends on ARM64 && OF
359 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
361 config FORCE_MAX_ZONEORDER
363 default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
366 menuconfig ARMV8_DEPRECATED
367 bool "Emulate deprecated/obsolete ARMv8 instructions"
370 Legacy software support may require certain instructions
371 that have been deprecated or obsoleted in the architecture.
373 Enable this config to enable selective emulation of these
381 bool "Emulate SWP/SWPB instructions"
383 ARMv8 obsoletes the use of A32 SWP/SWPB instructions such that
384 they are always undefined. Say Y here to enable software
385 emulation of these instructions for userspace using LDXR/STXR.
387 In some older versions of glibc [<=2.8] SWP is used during futex
388 trylock() operations with the assumption that the code will not
389 be preempted. This invalid assumption may be more likely to fail
390 with SWP emulation enabled, leading to deadlock of the user
393 NOTE: when accessing uncached shared regions, LDXR/STXR rely
394 on an external transaction monitoring block called a global
395 monitor to maintain update atomicity. If your system does not
396 implement a global monitor, this option can cause programs that
397 perform SWP operations to uncached memory to deadlock.
401 config CP15_BARRIER_EMULATION
402 bool "Emulate CP15 Barrier instructions"
404 The CP15 barrier instructions - CP15ISB, CP15DSB, and
405 CP15DMB - are deprecated in ARMv8 (and ARMv7). It is
406 strongly recommended to use the ISB, DSB, and DMB
407 instructions instead.
409 Say Y here to enable software emulation of these
410 instructions for AArch32 userspace code. When this option is
411 enabled, CP15 barrier usage is traced which can help
412 identify software that needs updating.
423 string "Default kernel command string"
426 Provide a set of default command-line options at build time by
427 entering them here. As a minimum, you should specify the the
428 root device (e.g. root=/dev/nfs).
431 bool "Always use the default kernel command string"
433 Always use the default kernel command string, even if the boot
434 loader passes other arguments to the kernel.
435 This is useful if you cannot or don't want to change the
436 command-line options your boot loader passes to the kernel.
442 bool "UEFI runtime support"
443 depends on OF && !CPU_BIG_ENDIAN
446 select EFI_PARAMS_FROM_FDT
447 select EFI_RUNTIME_WRAPPERS
452 This option provides support for runtime services provided
453 by UEFI firmware (such as non-volatile variables, realtime
454 clock, and platform reset). A UEFI stub is also provided to
455 allow the kernel to be booted as an EFI application. This
456 is only useful on systems that have UEFI firmware.
459 bool "Enable support for SMBIOS (DMI) tables"
463 This enables SMBIOS/DMI feature for systems.
465 This option is only useful on systems that have UEFI firmware.
466 However, even with this option, the resultant kernel should
467 continue to boot on existing non-UEFI platforms.
471 menu "Userspace binary formats"
473 source "fs/Kconfig.binfmt"
476 bool "Kernel support for 32-bit EL0"
477 depends on !ARM64_64K_PAGES
478 select COMPAT_BINFMT_ELF
480 select OLD_SIGSUSPEND3
481 select COMPAT_OLD_SIGACTION
483 This option enables support for a 32-bit EL0 running under a 64-bit
484 kernel at EL1. AArch32-specific components such as system calls,
485 the user helper functions, VFP support and the ptrace interface are
486 handled appropriately by the kernel.
488 If you want to execute 32-bit userspace applications, say Y.
490 config SYSVIPC_COMPAT
492 depends on COMPAT && SYSVIPC
496 menu "Power management options"
498 source "kernel/power/Kconfig"
500 config ARCH_SUSPEND_POSSIBLE
503 config ARM64_CPU_SUSPEND
508 menu "CPU Power Management"
510 source "drivers/cpuidle/Kconfig"
512 source "drivers/cpufreq/Kconfig"
518 source "drivers/Kconfig"
520 source "drivers/firmware/Kconfig"
524 source "arch/arm64/kvm/Kconfig"
526 source "arch/arm64/Kconfig.debug"
528 source "security/Kconfig"
530 source "crypto/Kconfig"
532 source "arch/arm64/crypto/Kconfig"