1config ARM64 2 def_bool y 3 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 4 select ARCH_USE_CMPXCHG_LOCKREF 5 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 6 select ARCH_WANT_OPTIONAL_GPIOLIB 7 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION 8 select ARCH_WANT_FRAME_POINTERS 9 select ARM_AMBA 10 select ARM_ARCH_TIMER 11 select ARM_GIC 12 select AUDIT_ARCH_COMPAT_GENERIC 13 select BUILDTIME_EXTABLE_SORT 14 select CLONE_BACKWARDS 15 select COMMON_CLK 16 select CPU_PM if (SUSPEND || CPU_IDLE) 17 select DCACHE_WORD_ACCESS 18 select GENERIC_CLOCKEVENTS 19 select GENERIC_CLOCKEVENTS_BROADCAST if SMP 20 select GENERIC_CPU_AUTOPROBE 21 select GENERIC_EARLY_IOREMAP 22 select GENERIC_IOMAP 23 select GENERIC_IRQ_PROBE 24 select GENERIC_IRQ_SHOW 25 select GENERIC_SMP_IDLE_THREAD 26 select GENERIC_STRNCPY_FROM_USER 27 select GENERIC_STRNLEN_USER 28 select GENERIC_TIME_VSYSCALL 29 select HARDIRQS_SW_RESEND 30 select HAVE_ARCH_AUDITSYSCALL 31 select HAVE_ARCH_KGDB 32 select HAVE_ARCH_JUMP_LABEL 33 select HAVE_ARCH_MMAP_RND_BITS 34 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT 35 select HAVE_ARCH_SECCOMP_FILTER 36 select HAVE_ARCH_TRACEHOOK 37 select HAVE_DEBUG_BUGVERBOSE 38 select HAVE_DEBUG_KMEMLEAK 39 select HAVE_DMA_API_DEBUG 40 select HAVE_DMA_ATTRS 41 select HAVE_DMA_CONTIGUOUS 42 select HAVE_EFFICIENT_UNALIGNED_ACCESS 43 select HAVE_GENERIC_DMA_COHERENT 44 select HAVE_GENERIC_HARDIRQS 45 select HAVE_HW_BREAKPOINT if PERF_EVENTS 46 select HAVE_MEMBLOCK 47 select HAVE_PATA_PLATFORM 48 select HAVE_PERF_EVENTS 49 select HAVE_PERF_REGS 50 select HAVE_PERF_USER_STACK_DUMP 51 select IRQ_DOMAIN 52 select MODULES_USE_ELF_RELA 53 select NO_BOOTMEM 54 select OF 55 select OF_EARLY_FLATTREE 56 select PERF_USE_VMALLOC 57 select POWER_RESET 58 select POWER_SUPPLY 59 select RTC_LIB 60 select SPARSE_IRQ 61 select SYSCTL_EXCEPTION_TRACE 62 help 63 ARM 64-bit (AArch64) Linux support. 64 65config 64BIT 66 def_bool y 67 68config ARCH_PHYS_ADDR_T_64BIT 69 def_bool y 70 71config MMU 72 def_bool y 73 74config NO_IOPORT 75 def_bool y 76 77config ARCH_MMAP_RND_BITS_MIN 78 default 14 if ARM64_64K_PAGES 79 default 18 80 81# max bits determined by the following formula: 82# VA_BITS - PAGE_SHIFT - 3 83# VA_BITS is always 39 84config ARCH_MMAP_RND_BITS_MAX 85 default 20 if ARM64_64K_PAGES 86 default 24 87 88config ARCH_MMAP_RND_COMPAT_BITS_MIN 89 default 11 90 91config ARCH_MMAP_RND_COMPAT_BITS_MAX 92 default 16 93 94config ILLEGAL_POINTER_VALUE 95 hex 96 default 0xdead000000000000 97 98config STACKTRACE_SUPPORT 99 def_bool y 100 101config LOCKDEP_SUPPORT 102 def_bool y 103 104config TRACE_IRQFLAGS_SUPPORT 105 def_bool y 106 107config RWSEM_XCHGADD_ALGORITHM 108 def_bool y 109 110config GENERIC_HWEIGHT 111 def_bool y 112 113config GENERIC_CSUM 114 def_bool y 115 116config GENERIC_CALIBRATE_DELAY 117 def_bool y 118 119config ZONE_DMA 120 def_bool y 121 122config ARCH_DMA_ADDR_T_64BIT 123 def_bool y 124 125config NEED_DMA_MAP_STATE 126 def_bool y 127 128config NEED_SG_DMA_LENGTH 129 def_bool y 130 131config SWIOTLB 132 def_bool y 133 134config IOMMU_HELPER 135 def_bool SWIOTLB 136 137config FIX_EARLYCON_MEM 138 def_bool y 139 140source "init/Kconfig" 141 142source "kernel/Kconfig.freezer" 143 144menu "Platform selection" 145 146config ARCH_VEXPRESS 147 bool "ARMv8 software model (Versatile Express)" 148 select ARCH_REQUIRE_GPIOLIB 149 select COMMON_CLK_VERSATILE 150 select POWER_RESET_VEXPRESS 151 select VEXPRESS_CONFIG 152 help 153 This enables support for the ARMv8 software model (Versatile 154 Express). 155 156config ARCH_XGENE 157 bool "AppliedMicro X-Gene SOC Family" 158 help 159 This enables support for AppliedMicro X-Gene SOC Family 160 161endmenu 162 163menu "Bus support" 164 165config ARM_AMBA 166 bool 167 168endmenu 169 170menu "Kernel Features" 171 172config ARM64_64K_PAGES 173 bool "Enable 64KB pages support" 174 help 175 This feature enables 64KB pages support (4KB by default) 176 allowing only two levels of page tables and faster TLB 177 look-up. AArch32 emulation is not available when this feature 178 is enabled. 179 180config SMP 181 bool "Symmetric Multi-Processing" 182 select USE_GENERIC_SMP_HELPERS 183 help 184 This enables support for systems with more than one CPU. If 185 you say N here, the kernel will run on single and 186 multiprocessor machines, but will use only one CPU of a 187 multiprocessor machine. If you say Y here, the kernel will run 188 on many, but not all, single processor machines. On a single 189 processor machine, the kernel will run faster if you say N 190 here. 191 192 If you don't know what to do here, say N. 193 194config SCHED_MC 195 bool "Multi-core scheduler support" 196 depends on SMP 197 help 198 Multi-core scheduler support improves the CPU scheduler's decision 199 making when dealing with multi-core CPU chips at a cost of slightly 200 increased overhead in some places. If unsure say N here. 201 202config SCHED_SMT 203 bool "SMT scheduler support" 204 depends on SMP 205 help 206 Improves the CPU scheduler's decision making when dealing with 207 MultiThreading at a cost of slightly increased overhead in some 208 places. If unsure say N here. 209 210config NR_CPUS 211 int "Maximum number of CPUs (2-32)" 212 range 2 32 213 depends on SMP 214 # These have to remain sorted largest to smallest 215 default "8" 216 217config HOTPLUG_CPU 218 bool "Support for hot-pluggable CPUs" 219 depends on SMP 220 help 221 Say Y here to experiment with turning CPUs off and on. CPUs 222 can be controlled through /sys/devices/system/cpu. 223 224config SWP_EMULATE 225 bool "Emulate SWP/SWPB instructions" 226 help 227 ARMv6 architecture deprecates use of the SWP/SWPB instructions. ARMv8 228 oblosetes the use of SWP/SWPB instructions. ARMv7 multiprocessing 229 extensions introduce the ability to disable these instructions, 230 triggering an undefined instruction exception when executed. Say Y 231 here to enable software emulation of these instructions for userspace 232 (not kernel) using LDREX/STREX. Also creates /proc/cpu/swp_emulation 233 for statistics. 234 235 In some older versions of glibc [<=2.8] SWP is used during futex 236 trylock() operations with the assumption that the code will not 237 be preempted. This invalid assumption may be more likely to fail 238 with SWP emulation enabled, leading to deadlock of the user 239 application. 240 241 NOTE: when accessing uncached shared regions, LDREX/STREX rely 242 on an external transaction monitoring block called a global 243 monitor to maintain update atomicity. If your system does not 244 implement a global monitor, this option can cause programs that 245 perform SWP operations to uncached memory to deadlock. 246 247 If unsure, say Y. 248 249source kernel/Kconfig.preempt 250 251config HZ 252 int 253 default 100 254 255config ARCH_HAS_HOLES_MEMORYMODEL 256 def_bool y if SPARSEMEM 257 258config ARCH_SPARSEMEM_ENABLE 259 def_bool y 260 select SPARSEMEM_VMEMMAP_ENABLE 261 262config ARCH_SPARSEMEM_DEFAULT 263 def_bool ARCH_SPARSEMEM_ENABLE 264 265config ARCH_SELECT_MEMORY_MODEL 266 def_bool ARCH_SPARSEMEM_ENABLE 267 268config HAVE_ARCH_PFN_VALID 269 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM 270 271config HW_PERF_EVENTS 272 bool "Enable hardware performance counter support for perf events" 273 depends on PERF_EVENTS 274 default y 275 help 276 Enable hardware performance counter support for perf events. If 277 disabled, perf events will use software events only. 278 279config SYS_SUPPORTS_HUGETLBFS 280 def_bool y 281 282config ARCH_WANT_GENERAL_HUGETLB 283 def_bool y 284 285config ARCH_WANT_HUGE_PMD_SHARE 286 def_bool y if !ARM64_64K_PAGES 287 288config HAVE_ARCH_TRANSPARENT_HUGEPAGE 289 def_bool y 290 291config ARMV7_COMPAT 292 bool "Kernel support for ARMv7 applications" 293 depends on COMPAT 294 select SWP_EMULATE 295 help 296 This option enables features that allow that ran on an ARMv7 or older 297 processor to continue functioning. 298 299 If you want to execute ARMv7 applications, say Y 300 301config ARMV7_COMPAT_CPUINFO 302 bool "Report backwards compatible cpu features in /proc/cpuinfo" 303 depends on ARMV7_COMPAT 304 default y 305 help 306 This option makes /proc/cpuinfo list CPU features that an ARMv7 or 307 earlier kernel would report, but are not optional on an ARMv8 or later 308 processor. 309 310 If you want to execute ARMv7 applications, say Y 311 312source "mm/Kconfig" 313 314config SECCOMP 315 bool "Enable seccomp to safely compute untrusted bytecode" 316 ---help--- 317 This kernel feature is useful for number crunching applications 318 that may need to compute untrusted bytecode during their 319 execution. By using pipes or other transports made available to 320 the process as file descriptors supporting the read/write 321 syscalls, it's possible to isolate those applications in 322 their own address space using seccomp. Once seccomp is 323 enabled via prctl(PR_SET_SECCOMP), it cannot be disabled 324 and the task is only allowed to execute a few safe syscalls 325 defined by each seccomp mode. 326 327config FORCE_MAX_ZONEORDER 328 int 329 default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE) 330 default "11" 331 332endmenu 333 334menu "Boot options" 335 336config CMDLINE 337 string "Default kernel command string" 338 default "" 339 help 340 Provide a set of default command-line options at build time by 341 entering them here. As a minimum, you should specify the the 342 root device (e.g. root=/dev/nfs). 343 344choice 345 prompt "Kernel command line type" if CMDLINE != "" 346 default CMDLINE_FROM_BOOTLOADER 347 348config CMDLINE_FROM_BOOTLOADER 349 bool "Use bootloader kernel arguments if available" 350 help 351 Uses the command-line options passed by the boot loader. If 352 the boot loader doesn't provide any, the default kernel command 353 string provided in CMDLINE will be used. 354 355config CMDLINE_EXTEND 356 bool "Extend bootloader kernel arguments" 357 help 358 The command-line arguments provided by the boot loader will be 359 appended to the default kernel command string. 360 361config CMDLINE_FORCE 362 bool "Always use the default kernel command string" 363 help 364 Always use the default kernel command string, even if the boot 365 loader passes other arguments to the kernel. 366 This is useful if you cannot or don't want to change the 367 command-line options your boot loader passes to the kernel. 368endchoice 369 370config BUILD_ARM64_APPENDED_DTB_IMAGE 371 bool "Build a concatenated Image.gz/dtb by default" 372 depends on OF 373 help 374 Enabling this option will cause a concatenated Image.gz and list of 375 DTBs to be built by default (instead of a standalone Image.gz.) 376 The image will built in arch/arm64/boot/Image.gz-dtb 377 378config BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES 379 string "Default dtb names" 380 depends on BUILD_ARM64_APPENDED_DTB_IMAGE 381 help 382 Space separated list of names of dtbs to append when 383 building a concatenated Image.gz-dtb. 384 385endmenu 386 387menu "Userspace binary formats" 388 389source "fs/Kconfig.binfmt" 390 391config COMPAT 392 bool "Kernel support for 32-bit EL0" 393 depends on !ARM64_64K_PAGES 394 select COMPAT_BINFMT_ELF 395 select HAVE_UID16 396 select OLD_SIGSUSPEND3 397 select COMPAT_OLD_SIGACTION 398 help 399 This option enables support for a 32-bit EL0 running under a 64-bit 400 kernel at EL1. AArch32-specific components such as system calls, 401 the user helper functions, VFP support and the ptrace interface are 402 handled appropriately by the kernel. 403 404 If you want to execute 32-bit userspace applications, say Y. 405 406config SYSVIPC_COMPAT 407 def_bool y 408 depends on COMPAT && SYSVIPC 409 410endmenu 411 412menu "Power management options" 413 414source "kernel/power/Kconfig" 415 416source "drivers/cpufreq/Kconfig" 417config ARCH_SUSPEND_POSSIBLE 418 def_bool y 419 420config ARM64_CPU_SUSPEND 421 def_bool PM_SLEEP 422 423endmenu 424 425menu "CPU Power Management" 426 427source "drivers/cpuidle/Kconfig" 428 429endmenu 430 431source "net/Kconfig" 432 433source "drivers/Kconfig" 434 435source "fs/Kconfig" 436 437source "arch/arm64/Kconfig.debug" 438 439source "security/Kconfig" 440 441source "crypto/Kconfig" 442if CRYPTO 443source "arch/arm64/crypto/Kconfig" 444endif 445 446source "lib/Kconfig" 447