3 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
4 select ARCH_HAVE_CUSTOM_GPIO_H
5 select ARCH_WANT_OPTIONAL_GPIOLIB
6 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
7 select ARCH_WANT_FRAME_POINTERS
11 select CLONE_BACKWARDS
13 select CPU_PM if (SUSPEND || CPU_IDLE)
14 select GENERIC_CLOCKEVENTS
16 select GENERIC_IRQ_PROBE
17 select GENERIC_IRQ_SHOW
18 select GENERIC_SCHED_CLOCK
19 select GENERIC_SMP_IDLE_THREAD
20 select GENERIC_TIME_VSYSCALL
21 select HARDIRQS_SW_RESEND
22 select GENERIC_PCI_IOMAP
23 select HAVE_ARCH_TRACEHOOK
24 select HAVE_DEBUG_BUGVERBOSE
25 select HAVE_DEBUG_KMEMLEAK
26 select HAVE_DMA_API_DEBUG
28 select HAVE_DMA_CONTIGUOUS if MMU
29 select HAVE_GENERIC_DMA_COHERENT
30 select HAVE_GENERIC_HARDIRQS
31 select HAVE_HW_BREAKPOINT if PERF_EVENTS
33 select HAVE_PERF_EVENTS
35 select MODULES_USE_ELF_RELA
38 select OF_EARLY_FLATTREE
39 select PERF_USE_VMALLOC
43 select SPARSE_IRQ if !ARCH_TEGRA
44 select SYSCTL_EXCEPTION_TRACE
46 ARM 64-bit (AArch64) Linux support.
48 config NEED_MACH_MEMORY_H
51 Select this when mach/memory.h is required to provide special
52 definitions for this platform. The need for mach/memory.h should
53 be avoided when possible.
58 config ARCH_PHYS_ADDR_T_64BIT
67 config STACKTRACE_SUPPORT
70 config LOCKDEP_SUPPORT
73 config TRACE_IRQFLAGS_SUPPORT
76 config GENERIC_LOCKBREAK
78 depends on SMP && PREEMPT
80 config RWSEM_GENERIC_SPINLOCK
83 config ARM64_SIMPLE_SPINLOCK
86 The simple locks are designed to be simpler, faster, and more power
87 efficent than the normal locks when there are not many cores
88 contending for the lock. It does this by minimizing the time before
89 executing wfe in the contention case while minimizing the work in the
92 config GENERIC_HWEIGHT
98 config GENERIC_CALIBRATE_DELAY
104 config ARCH_DMA_ADDR_T_64BIT
107 config NEED_DMA_MAP_STATE
110 config ARM_HAS_SG_CHAIN
113 config NEED_SG_DMA_LENGTH
117 def_bool y if !ARM_DMA_USE_IOMMU
122 config ARM_DMA_USE_IOMMU
123 select NEED_SG_DMA_LENGTH
124 select ARM_HAS_SG_CHAIN
127 config MULTI_IRQ_HANDLER
130 Allow each machine to specify it's own IRQ handler at run time.
132 source "init/Kconfig"
134 source "kernel/Kconfig.freezer"
136 menu "Platform selection"
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
145 This enables support for the ARMv8 software model (Versatile
152 select GENERIC_CLOCKEVENTS
156 select NEED_MACH_MEMORY_H
159 This enables support for NVIDIA Tegra based systems (Tegra APX,
160 Tegra 6xx and Tegra 2 series).
162 source "arch/arm64/mach-tegra/Kconfig"
172 bool "PCI support" if MIGHT_HAVE_PCI
174 Find out whether you have a PCI motherboard. PCI is the name of a
175 bus system, i.e. the way the CPU talks to the other stuff inside
176 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
177 VESA. If you have PCI, say Y, otherwise N.
179 source "drivers/pci/Kconfig"
181 source "drivers/pci/pcie/Kconfig"
185 menu "Kernel Features"
187 config ARM64_64K_PAGES
188 bool "Enable 64KB pages support"
190 This feature enables 64KB pages support (4KB by default)
191 allowing only two levels of page tables and faster TLB
192 look-up. AArch32 emulation is not available when this feature
196 bool "Symmetric Multi-Processing"
197 select USE_GENERIC_SMP_HELPERS
199 This enables support for systems with more than one CPU. If
200 you say N here, the kernel will run on single and
201 multiprocessor machines, but will use only one CPU of a
202 multiprocessor machine. If you say Y here, the kernel will run
203 on many, but not all, single processor machines. On a single
204 processor machine, the kernel will run faster if you say N
207 If you don't know what to do here, say N.
210 int "Maximum number of CPUs (2-32)"
216 bool "Support for hot-pluggable CPUs"
217 depends on SMP && HOTPLUG
219 Say Y here to experiment with turning CPUs off and on. CPUs
220 can be controlled through /sys/devices/system/cpu.
222 If you don't know what to do here, say N.
225 bool "Support for CPU0 hotplug"
226 depends on HOTPLUG_CPU
229 CPU0 hotplug is not supported on all arm64 platforms. Select Y to
230 enable CPU0 hotplug. If you're unsure, leave CPU0 hotplug disabled.
233 bool "Emulate SWP/SWPB instructions"
235 ARMv6 architecture deprecates use of the SWP/SWPB instructions. ARMv8
236 oblosetes the use of SWP/SWPB instructions. ARMv7 multiprocessing
237 extensions introduce the ability to disable these instructions,
238 triggering an undefined instruction exception when executed. Say Y
239 here to enable software emulation of these instructions for userspace
240 (not kernel) using LDREX/STREX. Also creates /proc/cpu/swp_emulation
243 In some older versions of glibc [<=2.8] SWP is used during futex
244 trylock() operations with the assumption that the code will not
245 be preempted. This invalid assumption may be more likely to fail
246 with SWP emulation enabled, leading to deadlock of the user
249 NOTE: when accessing uncached shared regions, LDREX/STREX rely
250 on an external transaction monitoring block called a global
251 monitor to maintain update atomicity. If your system does not
252 implement a global monitor, this option can cause programs that
253 perform SWP operations to uncached memory to deadlock.
257 source kernel/Kconfig.preempt
261 default 1024 if ARCH_TEGRA
265 Maximum number of GPIOs in the system.
266 If unsure, leave the default value.
272 config ARCH_HAS_HOLES_MEMORYMODEL
273 def_bool y if SPARSEMEM
275 config ARCH_SPARSEMEM_ENABLE
277 select SPARSEMEM_VMEMMAP_ENABLE
279 config ARCH_SPARSEMEM_DEFAULT
280 def_bool ARCH_SPARSEMEM_ENABLE
282 config ARCH_SELECT_MEMORY_MODEL
283 def_bool ARCH_SPARSEMEM_ENABLE
285 config HAVE_ARCH_PFN_VALID
286 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
288 config HW_PERF_EVENTS
289 bool "Enable hardware performance counter support for perf events"
290 depends on PERF_EVENTS
293 Enable hardware performance counter support for perf events. If
294 disabled, perf events will use software events only.
297 bool "Kernel support for ARMv7 applications"
301 This option enables features that allow that ran on an ARMv7 or older
302 processor to continue functioning.
304 If you want to execute ARMv7 applications, say Y
306 config ARMV7_COMPAT_CPUINFO
307 bool "Report backwards compatible cpu features in /proc/cpuinfo"
308 depends on ARMV7_COMPAT
311 This option makes /proc/cpuinfo list CPU features that an ARMv7 or
312 earlier kernel would report, but are not optional on an ARMv8 or later
315 If you want to execute ARMv7 applications, say Y
317 config ARMV7_COMPAT_CP15_BARRIER
318 bool "Allow applications to use the CP15 barrier operations"
319 depends on ARMV7_COMPAT
322 This option allows applications to use deprecated CP15 barrier
323 instructions. This is useful because this was the only way to create
324 a barrier on older ARM processors.
326 If you want to execute ARMv7 applications, say Y
335 string "Default kernel command string"
338 Provide a set of default command-line options at build time by
339 entering them here. As a minimum, you should specify the the
340 root device (e.g. root=/dev/nfs).
343 bool "Always use the default kernel command string"
345 Always use the default kernel command string, even if the boot
346 loader passes other arguments to the kernel.
347 This is useful if you cannot or don't want to change the
348 command-line options your boot loader passes to the kernel.
352 menu "Userspace binary formats"
354 source "fs/Kconfig.binfmt"
357 bool "Kernel support for 32-bit EL0"
358 depends on !ARM64_64K_PAGES
359 select COMPAT_BINFMT_ELF
361 select OLD_SIGSUSPEND3
362 select COMPAT_OLD_SIGACTION
364 This option enables support for a 32-bit EL0 running under a 64-bit
365 kernel at EL1. AArch32-specific components such as system calls,
366 the user helper functions, VFP support and the ptrace interface are
367 handled appropriately by the kernel.
369 If you want to execute 32-bit userspace applications, say Y.
371 config SYSVIPC_COMPAT
373 depends on COMPAT && SYSVIPC
377 menu "Power management options"
379 source "kernel/power/Kconfig"
381 config ARCH_SUSPEND_POSSIBLE
384 config ARM_CPU_SUSPEND
389 menu "CPU Power Management"
391 source "drivers/cpufreq/Kconfig"
393 source "drivers/cpuidle/Kconfig"
395 source "drivers/cpuquiet/Kconfig"
401 source "drivers/Kconfig"
405 source "arch/arm64/Kconfig.debug"
407 source "security/Kconfig"
409 source "crypto/Kconfig"
413 source "drivers/firmware/tegra/Kconfig"