1config ARM64 2 def_bool y 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 11 select ARM_AMBA 12 select ARM_ARCH_TIMER 13 select ARM_GIC 14 select AUDIT_ARCH_COMPAT_GENERIC 15 select ARM_GIC_V3 16 select BUILDTIME_EXTABLE_SORT 17 select CLONE_BACKWARDS 18 select COMMON_CLK 19 select CPU_PM if (SUSPEND || CPU_IDLE) 20 select DCACHE_WORD_ACCESS 21 select GENERIC_ALLOCATOR 22 select GENERIC_CLOCKEVENTS 23 select GENERIC_CLOCKEVENTS_BROADCAST if SMP 24 select GENERIC_CPU_AUTOPROBE 25 select GENERIC_EARLY_IOREMAP 26 select GENERIC_IOMAP 27 select GENERIC_IRQ_PROBE 28 select GENERIC_IRQ_SHOW 29 select GENERIC_SCHED_CLOCK 30 select GENERIC_SMP_IDLE_THREAD 31 select GENERIC_STRNCPY_FROM_USER 32 select GENERIC_STRNLEN_USER 33 select GENERIC_TIME_VSYSCALL 34 select HANDLE_DOMAIN_IRQ 35 select HARDIRQS_SW_RESEND 36 select HAVE_ARCH_AUDITSYSCALL 37 select HAVE_ARCH_JUMP_LABEL 38 select HAVE_ARCH_KGDB 39 select HAVE_ARCH_TRACEHOOK 40 select HAVE_BPF_JIT 41 select HAVE_C_RECORDMCOUNT 42 select HAVE_CC_STACKPROTECTOR 43 select HAVE_DEBUG_BUGVERBOSE 44 select HAVE_DEBUG_KMEMLEAK 45 select HAVE_DMA_API_DEBUG 46 select HAVE_DMA_ATTRS 47 select HAVE_DMA_CONTIGUOUS 48 select HAVE_DYNAMIC_FTRACE 49 select HAVE_EFFICIENT_UNALIGNED_ACCESS 50 select HAVE_FTRACE_MCOUNT_RECORD 51 select HAVE_FUNCTION_TRACER 52 select HAVE_FUNCTION_GRAPH_TRACER 53 select HAVE_GENERIC_DMA_COHERENT 54 select HAVE_HW_BREAKPOINT if PERF_EVENTS 55 select HAVE_MEMBLOCK 56 select HAVE_PATA_PLATFORM 57 select HAVE_PERF_EVENTS 58 select HAVE_PERF_REGS 59 select HAVE_PERF_USER_STACK_DUMP 60 select HAVE_RCU_TABLE_FREE 61 select HAVE_SYSCALL_TRACEPOINTS 62 select IRQ_DOMAIN 63 select MODULES_USE_ELF_RELA 64 select NO_BOOTMEM 65 select OF 66 select OF_EARLY_FLATTREE 67 select OF_RESERVED_MEM 68 select PERF_USE_VMALLOC 69 select POWER_RESET 70 select POWER_SUPPLY 71 select RTC_LIB 72 select SPARSE_IRQ 73 select SYSCTL_EXCEPTION_TRACE 74 select HAVE_CONTEXT_TRACKING 75 help 76 ARM 64-bit (AArch64) Linux support. 77 78config 64BIT 79 def_bool y 80 81config ARCH_PHYS_ADDR_T_64BIT 82 def_bool y 83 84config MMU 85 def_bool y 86 87config NO_IOPORT_MAP 88 def_bool y if !PCI 89 90config STACKTRACE_SUPPORT 91 def_bool y 92 93config LOCKDEP_SUPPORT 94 def_bool y 95 96config TRACE_IRQFLAGS_SUPPORT 97 def_bool y 98 99config RWSEM_XCHGADD_ALGORITHM 100 def_bool y 101 102config GENERIC_HWEIGHT 103 def_bool y 104 105config GENERIC_CSUM 106 def_bool y 107 108config GENERIC_CALIBRATE_DELAY 109 def_bool y 110 111config ZONE_DMA 112 def_bool y 113 114config HAVE_GENERIC_RCU_GUP 115 def_bool y 116 117config ARCH_DMA_ADDR_T_64BIT 118 def_bool y 119 120config NEED_DMA_MAP_STATE 121 def_bool y 122 123config NEED_SG_DMA_LENGTH 124 def_bool y 125 126config SWIOTLB 127 def_bool y 128 129config IOMMU_HELPER 130 def_bool SWIOTLB 131 132config KERNEL_MODE_NEON 133 def_bool y 134 135config FIX_EARLYCON_MEM 136 def_bool y 137 138source "init/Kconfig" 139 140source "kernel/Kconfig.freezer" 141 142menu "Platform selection" 143 144config ARCH_THUNDER 145 bool "Cavium Inc. Thunder SoC Family" 146 help 147 This enables support for Cavium's Thunder Family of SoCs. 148 149config ARCH_VEXPRESS 150 bool "ARMv8 software model (Versatile Express)" 151 select ARCH_REQUIRE_GPIOLIB 152 select COMMON_CLK_VERSATILE 153 select POWER_RESET_VEXPRESS 154 select VEXPRESS_CONFIG 155 help 156 This enables support for the ARMv8 software model (Versatile 157 Express). 158 159config ARCH_XGENE 160 bool "AppliedMicro X-Gene SOC Family" 161 help 162 This enables support for AppliedMicro X-Gene SOC Family 163 164endmenu 165 166menu "Bus support" 167 168config ARM_AMBA 169 bool 170 171config PCI 172 bool "PCI support" 173 help 174 This feature enables support for PCI bus system. If you say Y 175 here, the kernel will include drivers and infrastructure code 176 to support PCI bus devices. 177 178config PCI_DOMAINS 179 def_bool PCI 180 181config PCI_DOMAINS_GENERIC 182 def_bool PCI 183 184config PCI_SYSCALL 185 def_bool PCI 186 187source "drivers/pci/Kconfig" 188source "drivers/pci/pcie/Kconfig" 189source "drivers/pci/hotplug/Kconfig" 190 191endmenu 192 193menu "Kernel Features" 194 195choice 196 prompt "Page size" 197 default ARM64_4K_PAGES 198 help 199 Page size (translation granule) configuration. 200 201config ARM64_4K_PAGES 202 bool "4KB" 203 help 204 This feature enables 4KB pages support. 205 206config ARM64_64K_PAGES 207 bool "64KB" 208 help 209 This feature enables 64KB pages support (4KB by default) 210 allowing only two levels of page tables and faster TLB 211 look-up. AArch32 emulation is not available when this feature 212 is enabled. 213 214endchoice 215 216choice 217 prompt "Virtual address space size" 218 default ARM64_VA_BITS_39 if ARM64_4K_PAGES 219 default ARM64_VA_BITS_42 if ARM64_64K_PAGES 220 help 221 Allows choosing one of multiple possible virtual address 222 space sizes. The level of translation table is determined by 223 a combination of page size and virtual address space size. 224 225config ARM64_VA_BITS_39 226 bool "39-bit" 227 depends on ARM64_4K_PAGES 228 229config ARM64_VA_BITS_42 230 bool "42-bit" 231 depends on ARM64_64K_PAGES 232 233config ARM64_VA_BITS_48 234 bool "48-bit" 235 depends on BROKEN 236 237endchoice 238 239config ARM64_VA_BITS 240 int 241 default 39 if ARM64_VA_BITS_39 242 default 42 if ARM64_VA_BITS_42 243 default 48 if ARM64_VA_BITS_48 244 245config ARM64_PGTABLE_LEVELS 246 int 247 default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42 248 default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48 249 default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39 250 default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48 251 252config CPU_BIG_ENDIAN 253 bool "Build big-endian kernel" 254 help 255 Say Y if you plan on running a kernel in big-endian mode. 256 257config SMP 258 bool "Symmetric Multi-Processing" 259 help 260 This enables support for systems with more than one CPU. If 261 you say N here, the kernel will run on single and 262 multiprocessor machines, but will use only one CPU of a 263 multiprocessor machine. If you say Y here, the kernel will run 264 on many, but not all, single processor machines. On a single 265 processor machine, the kernel will run faster if you say N 266 here. 267 268 If you don't know what to do here, say N. 269 270config SCHED_MC 271 bool "Multi-core scheduler support" 272 depends on SMP 273 help 274 Multi-core scheduler support improves the CPU scheduler's decision 275 making when dealing with multi-core CPU chips at a cost of slightly 276 increased overhead in some places. If unsure say N here. 277 278config SCHED_SMT 279 bool "SMT scheduler support" 280 depends on SMP 281 help 282 Improves the CPU scheduler's decision making when dealing with 283 MultiThreading at a cost of slightly increased overhead in some 284 places. If unsure say N here. 285 286config NR_CPUS 287 int "Maximum number of CPUs (2-64)" 288 range 2 64 289 depends on SMP 290 # These have to remain sorted largest to smallest 291 default "64" 292 293config HOTPLUG_CPU 294 bool "Support for hot-pluggable CPUs" 295 depends on SMP 296 help 297 Say Y here to experiment with turning CPUs off and on. CPUs 298 can be controlled through /sys/devices/system/cpu. 299 300source kernel/Kconfig.preempt 301 302config HZ 303 int 304 default 100 305 306config ARCH_HAS_HOLES_MEMORYMODEL 307 def_bool y if SPARSEMEM 308 309config ARCH_SPARSEMEM_ENABLE 310 def_bool y 311 select SPARSEMEM_VMEMMAP_ENABLE 312 313config ARCH_SPARSEMEM_DEFAULT 314 def_bool ARCH_SPARSEMEM_ENABLE 315 316config ARCH_SELECT_MEMORY_MODEL 317 def_bool ARCH_SPARSEMEM_ENABLE 318 319config HAVE_ARCH_PFN_VALID 320 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM 321 322config HW_PERF_EVENTS 323 bool "Enable hardware performance counter support for perf events" 324 depends on PERF_EVENTS 325 default y 326 help 327 Enable hardware performance counter support for perf events. If 328 disabled, perf events will use software events only. 329 330config SYS_SUPPORTS_HUGETLBFS 331 def_bool y 332 333config ARCH_WANT_GENERAL_HUGETLB 334 def_bool y 335 336config ARCH_WANT_HUGE_PMD_SHARE 337 def_bool y if !ARM64_64K_PAGES 338 339config HAVE_ARCH_TRANSPARENT_HUGEPAGE 340 def_bool y 341 342config ARCH_HAS_CACHE_LINE_SIZE 343 def_bool y 344 345source "mm/Kconfig" 346 347config XEN_DOM0 348 def_bool y 349 depends on XEN 350 351config XEN 352 bool "Xen guest support on ARM64" 353 depends on ARM64 && OF 354 select SWIOTLB_XEN 355 help 356 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64. 357 358config FORCE_MAX_ZONEORDER 359 int 360 default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE) 361 default "11" 362 363endmenu 364 365menu "Boot options" 366 367config CMDLINE 368 string "Default kernel command string" 369 default "" 370 help 371 Provide a set of default command-line options at build time by 372 entering them here. As a minimum, you should specify the the 373 root device (e.g. root=/dev/nfs). 374 375config CMDLINE_FORCE 376 bool "Always use the default kernel command string" 377 help 378 Always use the default kernel command string, even if the boot 379 loader passes other arguments to the kernel. 380 This is useful if you cannot or don't want to change the 381 command-line options your boot loader passes to the kernel. 382 383config EFI_STUB 384 bool 385 386config EFI 387 bool "UEFI runtime support" 388 depends on OF && !CPU_BIG_ENDIAN 389 select LIBFDT 390 select UCS2_STRING 391 select EFI_PARAMS_FROM_FDT 392 select EFI_RUNTIME_WRAPPERS 393 select EFI_STUB 394 select EFI_ARMSTUB 395 default y 396 help 397 This option provides support for runtime services provided 398 by UEFI firmware (such as non-volatile variables, realtime 399 clock, and platform reset). A UEFI stub is also provided to 400 allow the kernel to be booted as an EFI application. This 401 is only useful on systems that have UEFI firmware. 402 403endmenu 404 405menu "Userspace binary formats" 406 407source "fs/Kconfig.binfmt" 408 409config COMPAT 410 bool "Kernel support for 32-bit EL0" 411 depends on !ARM64_64K_PAGES 412 select COMPAT_BINFMT_ELF 413 select HAVE_UID16 414 select OLD_SIGSUSPEND3 415 select COMPAT_OLD_SIGACTION 416 help 417 This option enables support for a 32-bit EL0 running under a 64-bit 418 kernel at EL1. AArch32-specific components such as system calls, 419 the user helper functions, VFP support and the ptrace interface are 420 handled appropriately by the kernel. 421 422 If you want to execute 32-bit userspace applications, say Y. 423 424config SYSVIPC_COMPAT 425 def_bool y 426 depends on COMPAT && SYSVIPC 427 428endmenu 429 430menu "Power management options" 431 432source "kernel/power/Kconfig" 433 434config ARCH_SUSPEND_POSSIBLE 435 def_bool y 436 437config ARM64_CPU_SUSPEND 438 def_bool PM_SLEEP 439 440endmenu 441 442menu "CPU Power Management" 443 444source "drivers/cpuidle/Kconfig" 445 446source "drivers/cpufreq/Kconfig" 447 448endmenu 449 450source "net/Kconfig" 451 452source "drivers/Kconfig" 453 454source "drivers/firmware/Kconfig" 455 456source "fs/Kconfig" 457 458source "arch/arm64/kvm/Kconfig" 459 460source "arch/arm64/Kconfig.debug" 461 462source "security/Kconfig" 463 464source "crypto/Kconfig" 465if CRYPTO 466source "arch/arm64/crypto/Kconfig" 467endif 468 469source "lib/Kconfig" 470