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
15 select ARM_GIC_V2M if PCI_MSI
17 select ARM_GIC_V3_ITS if PCI_MSI
18 select BUILDTIME_EXTABLE_SORT
19 select CLONE_BACKWARDS
21 select CPU_PM if (SUSPEND || CPU_IDLE)
22 select DCACHE_WORD_ACCESS
23 select GENERIC_ALLOCATOR
24 select GENERIC_CLOCKEVENTS
25 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
26 select GENERIC_CPU_AUTOPROBE
27 select GENERIC_EARLY_IOREMAP
29 select GENERIC_IRQ_PROBE
30 select GENERIC_IRQ_SHOW
31 select GENERIC_SCHED_CLOCK
32 select GENERIC_SMP_IDLE_THREAD
33 select GENERIC_STRNCPY_FROM_USER
34 select GENERIC_STRNLEN_USER
35 select GENERIC_TIME_VSYSCALL
36 select HANDLE_DOMAIN_IRQ
37 select HARDIRQS_SW_RESEND
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_DEBUG_BUGVERBOSE
46 select HAVE_DEBUG_KMEMLEAK
47 select HAVE_DMA_API_DEBUG
49 select HAVE_DMA_CONTIGUOUS
50 select HAVE_DYNAMIC_FTRACE
51 select HAVE_EFFICIENT_UNALIGNED_ACCESS
52 select HAVE_FTRACE_MCOUNT_RECORD
53 select HAVE_FUNCTION_TRACER
54 select HAVE_FUNCTION_GRAPH_TRACER
55 select HAVE_GENERIC_DMA_COHERENT
56 select HAVE_HW_BREAKPOINT if PERF_EVENTS
58 select HAVE_PATA_PLATFORM
59 select HAVE_PERF_EVENTS
61 select HAVE_PERF_USER_STACK_DUMP
62 select HAVE_RCU_TABLE_FREE
63 select HAVE_SYSCALL_TRACEPOINTS
65 select MODULES_USE_ELF_RELA
68 select OF_EARLY_FLATTREE
69 select OF_RESERVED_MEM
70 select PERF_USE_VMALLOC
75 select SYSCTL_EXCEPTION_TRACE
76 select HAVE_CONTEXT_TRACKING
78 ARM 64-bit (AArch64) Linux support.
83 config ARCH_PHYS_ADDR_T_64BIT
92 config STACKTRACE_SUPPORT
95 config LOCKDEP_SUPPORT
98 config TRACE_IRQFLAGS_SUPPORT
101 config RWSEM_XCHGADD_ALGORITHM
104 config GENERIC_HWEIGHT
110 config GENERIC_CALIBRATE_DELAY
116 config HAVE_GENERIC_RCU_GUP
119 config ARCH_DMA_ADDR_T_64BIT
122 config NEED_DMA_MAP_STATE
125 config NEED_SG_DMA_LENGTH
134 config KERNEL_MODE_NEON
137 config FIX_EARLYCON_MEM
140 source "init/Kconfig"
142 source "kernel/Kconfig.freezer"
144 menu "Platform selection"
147 bool "Cavium Inc. Thunder SoC Family"
149 This enables support for Cavium's Thunder Family of SoCs.
152 bool "ARMv8 software model (Versatile Express)"
153 select ARCH_REQUIRE_GPIOLIB
154 select COMMON_CLK_VERSATILE
155 select POWER_RESET_VEXPRESS
156 select VEXPRESS_CONFIG
158 This enables support for the ARMv8 software model (Versatile
162 bool "AppliedMicro X-Gene SOC Family"
164 This enables support for AppliedMicro X-Gene SOC Family
176 This feature enables support for PCI bus system. If you say Y
177 here, the kernel will include drivers and infrastructure code
178 to support PCI bus devices.
183 config PCI_DOMAINS_GENERIC
189 source "drivers/pci/Kconfig"
190 source "drivers/pci/pcie/Kconfig"
191 source "drivers/pci/hotplug/Kconfig"
195 menu "Kernel Features"
199 default ARM64_4K_PAGES
201 Page size (translation granule) configuration.
203 config ARM64_4K_PAGES
206 This feature enables 4KB pages support.
208 config ARM64_64K_PAGES
211 This feature enables 64KB pages support (4KB by default)
212 allowing only two levels of page tables and faster TLB
213 look-up. AArch32 emulation is not available when this feature
219 prompt "Virtual address space size"
220 default ARM64_VA_BITS_39 if ARM64_4K_PAGES
221 default ARM64_VA_BITS_42 if ARM64_64K_PAGES
223 Allows choosing one of multiple possible virtual address
224 space sizes. The level of translation table is determined by
225 a combination of page size and virtual address space size.
227 config ARM64_VA_BITS_39
229 depends on ARM64_4K_PAGES
231 config ARM64_VA_BITS_42
233 depends on ARM64_64K_PAGES
235 config ARM64_VA_BITS_48
243 default 39 if ARM64_VA_BITS_39
244 default 42 if ARM64_VA_BITS_42
245 default 48 if ARM64_VA_BITS_48
247 config ARM64_PGTABLE_LEVELS
249 default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
250 default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
251 default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
252 default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48
254 config CPU_BIG_ENDIAN
255 bool "Build big-endian kernel"
257 Say Y if you plan on running a kernel in big-endian mode.
260 bool "Symmetric Multi-Processing"
262 This enables support for systems with more than one CPU. If
263 you say N here, the kernel will run on single and
264 multiprocessor machines, but will use only one CPU of a
265 multiprocessor machine. If you say Y here, the kernel will run
266 on many, but not all, single processor machines. On a single
267 processor machine, the kernel will run faster if you say N
270 If you don't know what to do here, say N.
273 bool "Multi-core scheduler support"
276 Multi-core scheduler support improves the CPU scheduler's decision
277 making when dealing with multi-core CPU chips at a cost of slightly
278 increased overhead in some places. If unsure say N here.
281 bool "SMT scheduler support"
284 Improves the CPU scheduler's decision making when dealing with
285 MultiThreading at a cost of slightly increased overhead in some
286 places. If unsure say N here.
289 int "Maximum number of CPUs (2-64)"
292 # These have to remain sorted largest to smallest
296 bool "Support for hot-pluggable CPUs"
299 Say Y here to experiment with turning CPUs off and on. CPUs
300 can be controlled through /sys/devices/system/cpu.
302 source kernel/Kconfig.preempt
308 config ARCH_HAS_HOLES_MEMORYMODEL
309 def_bool y if SPARSEMEM
311 config ARCH_SPARSEMEM_ENABLE
313 select SPARSEMEM_VMEMMAP_ENABLE
315 config ARCH_SPARSEMEM_DEFAULT
316 def_bool ARCH_SPARSEMEM_ENABLE
318 config ARCH_SELECT_MEMORY_MODEL
319 def_bool ARCH_SPARSEMEM_ENABLE
321 config HAVE_ARCH_PFN_VALID
322 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
324 config HW_PERF_EVENTS
325 bool "Enable hardware performance counter support for perf events"
326 depends on PERF_EVENTS
329 Enable hardware performance counter support for perf events. If
330 disabled, perf events will use software events only.
332 config SYS_SUPPORTS_HUGETLBFS
335 config ARCH_WANT_GENERAL_HUGETLB
338 config ARCH_WANT_HUGE_PMD_SHARE
339 def_bool y if !ARM64_64K_PAGES
341 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
344 config ARCH_HAS_CACHE_LINE_SIZE
354 bool "Xen guest support on ARM64"
355 depends on ARM64 && OF
358 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
360 config FORCE_MAX_ZONEORDER
362 default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
370 string "Default kernel command string"
373 Provide a set of default command-line options at build time by
374 entering them here. As a minimum, you should specify the the
375 root device (e.g. root=/dev/nfs).
378 bool "Always use the default kernel command string"
380 Always use the default kernel command string, even if the boot
381 loader passes other arguments to the kernel.
382 This is useful if you cannot or don't want to change the
383 command-line options your boot loader passes to the kernel.
389 bool "UEFI runtime support"
390 depends on OF && !CPU_BIG_ENDIAN
393 select EFI_PARAMS_FROM_FDT
394 select EFI_RUNTIME_WRAPPERS
399 This option provides support for runtime services provided
400 by UEFI firmware (such as non-volatile variables, realtime
401 clock, and platform reset). A UEFI stub is also provided to
402 allow the kernel to be booted as an EFI application. This
403 is only useful on systems that have UEFI firmware.
407 menu "Userspace binary formats"
409 source "fs/Kconfig.binfmt"
412 bool "Kernel support for 32-bit EL0"
413 depends on !ARM64_64K_PAGES
414 select COMPAT_BINFMT_ELF
416 select OLD_SIGSUSPEND3
417 select COMPAT_OLD_SIGACTION
419 This option enables support for a 32-bit EL0 running under a 64-bit
420 kernel at EL1. AArch32-specific components such as system calls,
421 the user helper functions, VFP support and the ptrace interface are
422 handled appropriately by the kernel.
424 If you want to execute 32-bit userspace applications, say Y.
426 config SYSVIPC_COMPAT
428 depends on COMPAT && SYSVIPC
432 menu "Power management options"
434 source "kernel/power/Kconfig"
436 config ARCH_SUSPEND_POSSIBLE
439 config ARM64_CPU_SUSPEND
444 menu "CPU Power Management"
446 source "drivers/cpuidle/Kconfig"
448 source "drivers/cpufreq/Kconfig"
454 source "drivers/Kconfig"
456 source "drivers/firmware/Kconfig"
460 source "arch/arm64/kvm/Kconfig"
462 source "arch/arm64/Kconfig.debug"
464 source "security/Kconfig"
466 source "crypto/Kconfig"
468 source "arch/arm64/crypto/Kconfig"