3 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
4 select ARCH_HAVE_CUSTOM_GPIO_H
5 select ARCH_USE_CMPXCHG_LOCKREF
6 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
7 select ARCH_WANT_OPTIONAL_GPIOLIB
8 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
9 select ARCH_WANT_FRAME_POINTERS
13 select BUILDTIME_EXTABLE_SORT
14 select CLONE_BACKWARDS
16 select CPU_PM if (SUSPEND || CPU_IDLE)
17 select DCACHE_WORD_ACCESS
18 select GENERIC_CLOCKEVENTS
19 select GENERIC_CLOCKEVENTS_BROADCAST if SMP
21 select GENERIC_IRQ_PROBE
22 select GENERIC_IRQ_SHOW
23 select GENERIC_SCHED_CLOCK
24 select GENERIC_SMP_IDLE_THREAD
25 select GENERIC_STRNCPY_FROM_USER
26 select GENERIC_STRNLEN_USER
27 select GENERIC_TIME_VSYSCALL
28 select HARDIRQS_SW_RESEND
29 select GENERIC_PCI_IOMAP
30 select HAVE_ARCH_JUMP_LABEL
31 select HAVE_ARCH_TRACEHOOK
32 select HAVE_DEBUG_BUGVERBOSE
33 select HAVE_DEBUG_KMEMLEAK
34 select HAVE_DMA_API_DEBUG
36 select HAVE_DMA_CONTIGUOUS if MMU
37 select HAVE_EFFICIENT_UNALIGNED_ACCESS
38 select HAVE_GENERIC_DMA_COHERENT
39 select HAVE_GENERIC_HARDIRQS
40 select HAVE_HW_BREAKPOINT if PERF_EVENTS
42 select HAVE_PATA_PLATFORM
43 select HAVE_PERF_EVENTS
45 select HAVE_PERF_USER_STACK_DUMP
47 select MODULES_USE_ELF_RELA
50 select OF_EARLY_FLATTREE
51 select PERF_USE_VMALLOC
56 select SYSCTL_EXCEPTION_TRACE
58 ARM 64-bit (AArch64) Linux support.
60 trysource ../kernel-t186/arch/arm64/Kconfig
62 config ARCH_TEGRA_18x_SOC
63 bool "Tegra 18x family SOC Kconfig placeholder"
64 select ARCH_TEGRA_18x_SOC_PRIVATE
66 Kconfig placeholder for NVIDIA Tegra18x family of SoCs
68 config NEED_MACH_MEMORY_H
71 Select this when mach/memory.h is required to provide special
72 definitions for this platform. The need for mach/memory.h should
73 be avoided when possible.
75 config ARM64_MACH_FRAMEWORK
77 depends on ARCH_TEGRA_12x_SOC || ARCH_TEGRA_21x_SOC
79 Enable support for the ARM64 machine framework. The machine framework
80 provides hooks for vendors to provide customized machine init
81 routines. WARNING: This feature will be deperacted for future chips.
82 DO NOT enable this feature for future chips.
87 config ARCH_PHYS_ADDR_T_64BIT
96 config STACKTRACE_SUPPORT
99 config LOCKDEP_SUPPORT
102 config TRACE_IRQFLAGS_SUPPORT
105 config GENERIC_LOCKBREAK
107 depends on SMP && PREEMPT
109 config RWSEM_GENERIC_SPINLOCK
112 config ARM64_SIMPLE_SPINLOCK
115 The simple locks are designed to be simpler, faster, and more power
116 efficent than the normal locks when there are not many cores
117 contending for the lock. It does this by minimizing the time before
118 executing wfe in the contention case while minimizing the work in the
121 config GENERIC_HWEIGHT
127 config GENERIC_CALIBRATE_DELAY
133 config ARCH_DMA_ADDR_T_64BIT
136 config NEED_DMA_MAP_STATE
139 config ARM_HAS_SG_CHAIN
142 config NEED_SG_DMA_LENGTH
146 def_bool y if !ARM_DMA_USE_IOMMU
151 config ARM_DMA_USE_IOMMU
152 select NEED_SG_DMA_LENGTH
153 select ARM_HAS_SG_CHAIN
156 config MULTI_IRQ_HANDLER
159 Allow each machine to specify it's own IRQ handler at run time.
160 config KERNEL_MODE_NEON
163 config KERNEL_MODE_NEON
166 source "init/Kconfig"
168 source "kernel/Kconfig.freezer"
170 menu "Platform selection"
173 bool "ARMv8 software model (Versatile Express)"
174 select ARCH_REQUIRE_GPIOLIB
175 select COMMON_CLK_VERSATILE
176 select POWER_RESET_VEXPRESS
177 select VEXPRESS_CONFIG
179 This enables support for the ARMv8 software model (Versatile
186 select GENERIC_CLOCKEVENTS
190 select NEED_MACH_MEMORY_H
193 This enables support for NVIDIA Tegra based systems (Tegra APX,
194 Tegra 6xx and Tegra 2 series).
196 source "arch/arm64/mach-tegra/Kconfig"
206 bool "PCI support" if MIGHT_HAVE_PCI
208 Find out whether you have a PCI motherboard. PCI is the name of a
209 bus system, i.e. the way the CPU talks to the other stuff inside
210 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
211 VESA. If you have PCI, say Y, otherwise N.
213 source "drivers/pci/Kconfig"
215 source "drivers/pci/pcie/Kconfig"
219 menu "Kernel Features"
221 config ARM64_64K_PAGES
222 bool "Enable 64KB pages support"
224 This feature enables 64KB pages support (4KB by default)
225 allowing only two levels of page tables and faster TLB
226 look-up. AArch32 emulation is not available when this feature
229 config CPU_BIG_ENDIAN
230 bool "Build big-endian kernel"
232 Say Y if you plan on running a kernel in big-endian mode.
235 bool "Symmetric Multi-Processing"
237 This enables support for systems with more than one CPU. If
238 you say N here, the kernel will run on single and
239 multiprocessor machines, but will use only one CPU of a
240 multiprocessor machine. If you say Y here, the kernel will run
241 on many, but not all, single processor machines. On a single
242 processor machine, the kernel will run faster if you say N
245 If you don't know what to do here, say N.
248 int "Maximum number of CPUs (2-32)"
251 # These have to remain sorted largest to smallest
255 bool "Support for hot-pluggable CPUs"
256 depends on SMP && HOTPLUG
258 Say Y here to experiment with turning CPUs off and on. CPUs
259 can be controlled through /sys/devices/system/cpu.
261 If you don't know what to do here, say N.
264 bool "Support for CPU0 hotplug"
265 depends on HOTPLUG_CPU
268 CPU0 hotplug is not supported on all arm64 platforms. Select Y to
269 enable CPU0 hotplug. If you're unsure, leave CPU0 hotplug disabled.
272 bool "Emulate SWP/SWPB instructions"
274 ARMv6 architecture deprecates use of the SWP/SWPB instructions. ARMv8
275 oblosetes the use of SWP/SWPB instructions. ARMv7 multiprocessing
276 extensions introduce the ability to disable these instructions,
277 triggering an undefined instruction exception when executed. Say Y
278 here to enable software emulation of these instructions for userspace
279 (not kernel) using LDREX/STREX. Also creates /proc/cpu/swp_emulation
282 In some older versions of glibc [<=2.8] SWP is used during futex
283 trylock() operations with the assumption that the code will not
284 be preempted. This invalid assumption may be more likely to fail
285 with SWP emulation enabled, leading to deadlock of the user
288 NOTE: when accessing uncached shared regions, LDREX/STREX rely
289 on an external transaction monitoring block called a global
290 monitor to maintain update atomicity. If your system does not
291 implement a global monitor, this option can cause programs that
292 perform SWP operations to uncached memory to deadlock.
296 source kernel/Kconfig.preempt
300 default 1024 if ARCH_TEGRA
304 Maximum number of GPIOs in the system.
305 If unsure, leave the default value.
311 config ARCH_HAS_HOLES_MEMORYMODEL
312 def_bool y if SPARSEMEM
314 config ARCH_SPARSEMEM_ENABLE
316 select SPARSEMEM_VMEMMAP_ENABLE
318 config ARCH_SPARSEMEM_DEFAULT
319 def_bool ARCH_SPARSEMEM_ENABLE
321 config ARCH_SELECT_MEMORY_MODEL
322 def_bool ARCH_SPARSEMEM_ENABLE
324 config HAVE_ARCH_PFN_VALID
325 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
327 config HW_PERF_EVENTS
328 bool "Enable hardware performance counter support for perf events"
329 depends on PERF_EVENTS
332 Enable hardware performance counter support for perf events. If
333 disabled, perf events will use software events only.
336 bool "Kernel support for ARMv7 applications"
340 This option enables features that allow that ran on an ARMv7 or older
341 processor to continue functioning.
343 If you want to execute ARMv7 applications, say Y
345 config ARMV7_COMPAT_CPUINFO
346 bool "Report backwards compatible cpu features in /proc/cpuinfo"
347 depends on ARMV7_COMPAT
350 This option makes /proc/cpuinfo list CPU features that an ARMv7 or
351 earlier kernel would report, but are not optional on an ARMv8 or later
354 If you want to execute ARMv7 applications, say Y
356 config ARMV7_COMPAT_CP15_BARRIER
357 bool "Allow applications to use the CP15 barrier operations"
358 depends on ARMV7_COMPAT
361 This option allows applications to use deprecated CP15 barrier
362 instructions. This is useful because this was the only way to create
363 a barrier on older ARM processors.
365 If you want to execute ARMv7 applications, say Y
374 string "Default kernel command string"
377 Provide a set of default command-line options at build time by
378 entering them here. As a minimum, you should specify the the
379 root device (e.g. root=/dev/nfs).
382 bool "Always use the default kernel command string"
384 Always use the default kernel command string, even if the boot
385 loader passes other arguments to the kernel.
386 This is useful if you cannot or don't want to change the
387 command-line options your boot loader passes to the kernel.
391 menu "Userspace binary formats"
393 source "fs/Kconfig.binfmt"
396 bool "Kernel support for 32-bit EL0"
397 depends on !ARM64_64K_PAGES
398 select COMPAT_BINFMT_ELF
400 select OLD_SIGSUSPEND3
401 select COMPAT_OLD_SIGACTION
403 This option enables support for a 32-bit EL0 running under a 64-bit
404 kernel at EL1. AArch32-specific components such as system calls,
405 the user helper functions, VFP support and the ptrace interface are
406 handled appropriately by the kernel.
408 If you want to execute 32-bit userspace applications, say Y.
410 config SYSVIPC_COMPAT
412 depends on COMPAT && SYSVIPC
416 menu "Power management options"
418 source "kernel/power/Kconfig"
420 config ARCH_SUSPEND_POSSIBLE
423 config ARM_CPU_SUSPEND
426 config ARM64_CPU_SUSPEND
427 bool "ARM64 CPU suspend"
429 This option enables cpu suspend using cpu_ops.
433 menu "CPU Power Management"
435 source "drivers/cpufreq/Kconfig"
437 source "drivers/cpuidle/Kconfig"
439 source "drivers/cpuquiet/Kconfig"
445 source "drivers/Kconfig"
449 source "arch/arm64/Kconfig.debug"
451 source "security/Kconfig"
453 source "crypto/Kconfig"
457 source "drivers/firmware/tegra/Kconfig"