1config ARM64 2 def_bool y 3 select ACPI_CCA_REQUIRED if ACPI 4 select ACPI_GENERIC_GSI if ACPI 5 select ACPI_GTDT if ACPI 6 select ACPI_IORT if ACPI 7 select ACPI_REDUCED_HARDWARE_ONLY if ACPI 8 select ACPI_MCFG if ACPI 9 select ACPI_SPCR_TABLE if ACPI 10 select ACPI_PPTT if ACPI 11 select ARCH_CLOCKSOURCE_DATA 12 select ARCH_HAS_DEBUG_VIRTUAL 13 select ARCH_HAS_DEVMEM_IS_ALLOWED 14 select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI 15 select ARCH_HAS_ELF_RANDOMIZE 16 select ARCH_HAS_FAST_MULTIPLIER 17 select ARCH_HAS_FORTIFY_SOURCE 18 select ARCH_HAS_GCOV_PROFILE_ALL 19 select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA 20 select ARCH_HAS_KCOV 21 select ARCH_HAS_MEMBARRIER_SYNC_CORE 22 select ARCH_HAS_PTE_SPECIAL 23 select ARCH_HAS_SET_MEMORY 24 select ARCH_HAS_SG_CHAIN 25 select ARCH_HAS_STRICT_KERNEL_RWX 26 select ARCH_HAS_STRICT_MODULE_RWX 27 select ARCH_HAS_SYSCALL_WRAPPER 28 select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 29 select ARCH_HAVE_NMI_SAFE_CMPXCHG 30 select ARCH_INLINE_READ_LOCK if !PREEMPT 31 select ARCH_INLINE_READ_LOCK_BH if !PREEMPT 32 select ARCH_INLINE_READ_LOCK_IRQ if !PREEMPT 33 select ARCH_INLINE_READ_LOCK_IRQSAVE if !PREEMPT 34 select ARCH_INLINE_READ_UNLOCK if !PREEMPT 35 select ARCH_INLINE_READ_UNLOCK_BH if !PREEMPT 36 select ARCH_INLINE_READ_UNLOCK_IRQ if !PREEMPT 37 select ARCH_INLINE_READ_UNLOCK_IRQRESTORE if !PREEMPT 38 select ARCH_INLINE_WRITE_LOCK if !PREEMPT 39 select ARCH_INLINE_WRITE_LOCK_BH if !PREEMPT 40 select ARCH_INLINE_WRITE_LOCK_IRQ if !PREEMPT 41 select ARCH_INLINE_WRITE_LOCK_IRQSAVE if !PREEMPT 42 select ARCH_INLINE_WRITE_UNLOCK if !PREEMPT 43 select ARCH_INLINE_WRITE_UNLOCK_BH if !PREEMPT 44 select ARCH_INLINE_WRITE_UNLOCK_IRQ if !PREEMPT 45 select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE if !PREEMPT 46 select ARCH_INLINE_SPIN_TRYLOCK if !PREEMPT 47 select ARCH_INLINE_SPIN_TRYLOCK_BH if !PREEMPT 48 select ARCH_INLINE_SPIN_LOCK if !PREEMPT 49 select ARCH_INLINE_SPIN_LOCK_BH if !PREEMPT 50 select ARCH_INLINE_SPIN_LOCK_IRQ if !PREEMPT 51 select ARCH_INLINE_SPIN_LOCK_IRQSAVE if !PREEMPT 52 select ARCH_INLINE_SPIN_UNLOCK if !PREEMPT 53 select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPT 54 select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPT 55 select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPT 56 select ARCH_USE_CMPXCHG_LOCKREF 57 select ARCH_USE_QUEUED_RWLOCKS 58 select ARCH_USE_QUEUED_SPINLOCKS 59 select ARCH_SUPPORTS_MEMORY_FAILURE 60 select ARCH_SUPPORTS_ATOMIC_RMW 61 select ARCH_SUPPORTS_INT128 if GCC_VERSION >= 50000 || CC_IS_CLANG 62 select ARCH_SUPPORTS_NUMA_BALANCING 63 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION 64 select ARCH_WANT_FRAME_POINTERS 65 select ARCH_HAS_UBSAN_SANITIZE_ALL 66 select ARM_AMBA 67 select ARM_ARCH_TIMER 68 select ARM_GIC 69 select AUDIT_ARCH_COMPAT_GENERIC 70 select ARM_GIC_V2M if PCI 71 select ARM_GIC_V3 72 select ARM_GIC_V3_ITS if PCI 73 select ARM_PSCI_FW 74 select BUILDTIME_EXTABLE_SORT 75 select CLONE_BACKWARDS 76 select COMMON_CLK 77 select CPU_PM if (SUSPEND || CPU_IDLE) 78 select DCACHE_WORD_ACCESS 79 select DMA_DIRECT_OPS 80 select EDAC_SUPPORT 81 select FRAME_POINTER 82 select GENERIC_ALLOCATOR 83 select GENERIC_ARCH_TOPOLOGY 84 select GENERIC_CLOCKEVENTS 85 select GENERIC_CLOCKEVENTS_BROADCAST 86 select GENERIC_CPU_AUTOPROBE 87 select GENERIC_EARLY_IOREMAP 88 select GENERIC_IDLE_POLL_SETUP 89 select GENERIC_IRQ_MULTI_HANDLER 90 select GENERIC_IRQ_PROBE 91 select GENERIC_IRQ_SHOW 92 select GENERIC_IRQ_SHOW_LEVEL 93 select GENERIC_PCI_IOMAP 94 select GENERIC_SCHED_CLOCK 95 select GENERIC_SMP_IDLE_THREAD 96 select GENERIC_STRNCPY_FROM_USER 97 select GENERIC_STRNLEN_USER 98 select GENERIC_TIME_VSYSCALL 99 select HANDLE_DOMAIN_IRQ 100 select HARDIRQS_SW_RESEND 101 select HAVE_ACPI_APEI if (ACPI && EFI) 102 select HAVE_ALIGNED_STRUCT_PAGE if SLUB 103 select HAVE_ARCH_AUDITSYSCALL 104 select HAVE_ARCH_BITREVERSE 105 select HAVE_ARCH_HUGE_VMAP 106 select HAVE_ARCH_JUMP_LABEL 107 select HAVE_ARCH_KASAN if !(ARM64_16K_PAGES && ARM64_VA_BITS_48) 108 select HAVE_ARCH_KGDB 109 select HAVE_ARCH_MMAP_RND_BITS 110 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT 111 select HAVE_ARCH_PREL32_RELOCATIONS 112 select HAVE_ARCH_SECCOMP_FILTER 113 select HAVE_ARCH_STACKLEAK 114 select HAVE_ARCH_THREAD_STRUCT_WHITELIST 115 select HAVE_ARCH_TRACEHOOK 116 select HAVE_ARCH_TRANSPARENT_HUGEPAGE 117 select HAVE_ARCH_VMAP_STACK 118 select HAVE_ARM_SMCCC 119 select HAVE_EBPF_JIT 120 select HAVE_C_RECORDMCOUNT 121 select HAVE_CMPXCHG_DOUBLE 122 select HAVE_CMPXCHG_LOCAL 123 select HAVE_CONTEXT_TRACKING 124 select HAVE_DEBUG_BUGVERBOSE 125 select HAVE_DEBUG_KMEMLEAK 126 select HAVE_DMA_CONTIGUOUS 127 select HAVE_DYNAMIC_FTRACE 128 select HAVE_EFFICIENT_UNALIGNED_ACCESS 129 select HAVE_FTRACE_MCOUNT_RECORD 130 select HAVE_FUNCTION_TRACER 131 select HAVE_FUNCTION_GRAPH_TRACER 132 select HAVE_GCC_PLUGINS 133 select HAVE_GENERIC_DMA_COHERENT 134 select HAVE_HW_BREAKPOINT if PERF_EVENTS 135 select HAVE_IRQ_TIME_ACCOUNTING 136 select HAVE_MEMBLOCK 137 select HAVE_MEMBLOCK_NODE_MAP if NUMA 138 select HAVE_NMI 139 select HAVE_PATA_PLATFORM 140 select HAVE_PERF_EVENTS 141 select HAVE_PERF_REGS 142 select HAVE_PERF_USER_STACK_DUMP 143 select HAVE_REGS_AND_STACK_ACCESS_API 144 select HAVE_RCU_TABLE_FREE 145 select HAVE_RSEQ 146 select HAVE_STACKPROTECTOR 147 select HAVE_SYSCALL_TRACEPOINTS 148 select HAVE_KPROBES 149 select HAVE_KRETPROBES 150 select IOMMU_DMA if IOMMU_SUPPORT 151 select IRQ_DOMAIN 152 select IRQ_FORCED_THREADING 153 select MODULES_USE_ELF_RELA 154 select MULTI_IRQ_HANDLER 155 select NEED_DMA_MAP_STATE 156 select NEED_SG_DMA_LENGTH 157 select NO_BOOTMEM 158 select OF 159 select OF_EARLY_FLATTREE 160 select OF_RESERVED_MEM 161 select PCI_ECAM if ACPI 162 select POWER_RESET 163 select POWER_SUPPLY 164 select REFCOUNT_FULL 165 select SPARSE_IRQ 166 select SWIOTLB 167 select SYSCTL_EXCEPTION_TRACE 168 select THREAD_INFO_IN_TASK 169 help 170 ARM 64-bit (AArch64) Linux support. 171 172config 64BIT 173 def_bool y 174 175config MMU 176 def_bool y 177 178config ARM64_PAGE_SHIFT 179 int 180 default 16 if ARM64_64K_PAGES 181 default 14 if ARM64_16K_PAGES 182 default 12 183 184config ARM64_CONT_SHIFT 185 int 186 default 5 if ARM64_64K_PAGES 187 default 7 if ARM64_16K_PAGES 188 default 4 189 190config ARCH_MMAP_RND_BITS_MIN 191 default 14 if ARM64_64K_PAGES 192 default 16 if ARM64_16K_PAGES 193 default 18 194 195# max bits determined by the following formula: 196# VA_BITS - PAGE_SHIFT - 3 197config ARCH_MMAP_RND_BITS_MAX 198 default 19 if ARM64_VA_BITS=36 199 default 24 if ARM64_VA_BITS=39 200 default 27 if ARM64_VA_BITS=42 201 default 30 if ARM64_VA_BITS=47 202 default 29 if ARM64_VA_BITS=48 && ARM64_64K_PAGES 203 default 31 if ARM64_VA_BITS=48 && ARM64_16K_PAGES 204 default 33 if ARM64_VA_BITS=48 205 default 14 if ARM64_64K_PAGES 206 default 16 if ARM64_16K_PAGES 207 default 18 208 209config ARCH_MMAP_RND_COMPAT_BITS_MIN 210 default 7 if ARM64_64K_PAGES 211 default 9 if ARM64_16K_PAGES 212 default 11 213 214config ARCH_MMAP_RND_COMPAT_BITS_MAX 215 default 16 216 217config NO_IOPORT_MAP 218 def_bool y if !PCI 219 220config STACKTRACE_SUPPORT 221 def_bool y 222 223config ILLEGAL_POINTER_VALUE 224 hex 225 default 0xdead000000000000 226 227config LOCKDEP_SUPPORT 228 def_bool y 229 230config TRACE_IRQFLAGS_SUPPORT 231 def_bool y 232 233config RWSEM_XCHGADD_ALGORITHM 234 def_bool y 235 236config GENERIC_BUG 237 def_bool y 238 depends on BUG 239 240config GENERIC_BUG_RELATIVE_POINTERS 241 def_bool y 242 depends on GENERIC_BUG 243 244config GENERIC_HWEIGHT 245 def_bool y 246 247config GENERIC_CSUM 248 def_bool y 249 250config GENERIC_CALIBRATE_DELAY 251 def_bool y 252 253config ZONE_DMA32 254 def_bool y 255 256config HAVE_GENERIC_GUP 257 def_bool y 258 259config SMP 260 def_bool y 261 262config KERNEL_MODE_NEON 263 def_bool y 264 265config FIX_EARLYCON_MEM 266 def_bool y 267 268config PGTABLE_LEVELS 269 int 270 default 2 if ARM64_16K_PAGES && ARM64_VA_BITS_36 271 default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42 272 default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48 273 default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39 274 default 3 if ARM64_16K_PAGES && ARM64_VA_BITS_47 275 default 4 if !ARM64_64K_PAGES && ARM64_VA_BITS_48 276 277config ARCH_SUPPORTS_UPROBES 278 def_bool y 279 280config ARCH_PROC_KCORE_TEXT 281 def_bool y 282 283source "arch/arm64/Kconfig.platforms" 284 285menu "Bus support" 286 287config PCI 288 bool "PCI support" 289 help 290 This feature enables support for PCI bus system. If you say Y 291 here, the kernel will include drivers and infrastructure code 292 to support PCI bus devices. 293 294config PCI_DOMAINS 295 def_bool PCI 296 297config PCI_DOMAINS_GENERIC 298 def_bool PCI 299 300config PCI_SYSCALL 301 def_bool PCI 302 303source "drivers/pci/Kconfig" 304 305endmenu 306 307menu "Kernel Features" 308 309menu "ARM errata workarounds via the alternatives framework" 310 311config ARM64_ERRATUM_826319 312 bool "Cortex-A53: 826319: System might deadlock if a write cannot complete until read data is accepted" 313 default y 314 help 315 This option adds an alternative code sequence to work around ARM 316 erratum 826319 on Cortex-A53 parts up to r0p2 with an AMBA 4 ACE or 317 AXI master interface and an L2 cache. 318 319 If a Cortex-A53 uses an AMBA AXI4 ACE interface to other processors 320 and is unable to accept a certain write via this interface, it will 321 not progress on read data presented on the read data channel and the 322 system can deadlock. 323 324 The workaround promotes data cache clean instructions to 325 data cache clean-and-invalidate. 326 Please note that this does not necessarily enable the workaround, 327 as it depends on the alternative framework, which will only patch 328 the kernel if an affected CPU is detected. 329 330 If unsure, say Y. 331 332config ARM64_ERRATUM_827319 333 bool "Cortex-A53: 827319: Data cache clean instructions might cause overlapping transactions to the interconnect" 334 default y 335 help 336 This option adds an alternative code sequence to work around ARM 337 erratum 827319 on Cortex-A53 parts up to r0p2 with an AMBA 5 CHI 338 master interface and an L2 cache. 339 340 Under certain conditions this erratum can cause a clean line eviction 341 to occur at the same time as another transaction to the same address 342 on the AMBA 5 CHI interface, which can cause data corruption if the 343 interconnect reorders the two transactions. 344 345 The workaround promotes data cache clean instructions to 346 data cache clean-and-invalidate. 347 Please note that this does not necessarily enable the workaround, 348 as it depends on the alternative framework, which will only patch 349 the kernel if an affected CPU is detected. 350 351 If unsure, say Y. 352 353config ARM64_ERRATUM_824069 354 bool "Cortex-A53: 824069: Cache line might not be marked as clean after a CleanShared snoop" 355 default y 356 help 357 This option adds an alternative code sequence to work around ARM 358 erratum 824069 on Cortex-A53 parts up to r0p2 when it is connected 359 to a coherent interconnect. 360 361 If a Cortex-A53 processor is executing a store or prefetch for 362 write instruction at the same time as a processor in another 363 cluster is executing a cache maintenance operation to the same 364 address, then this erratum might cause a clean cache line to be 365 incorrectly marked as dirty. 366 367 The workaround promotes data cache clean instructions to 368 data cache clean-and-invalidate. 369 Please note that this option does not necessarily enable the 370 workaround, as it depends on the alternative framework, which will 371 only patch the kernel if an affected CPU is detected. 372 373 If unsure, say Y. 374 375config ARM64_ERRATUM_819472 376 bool "Cortex-A53: 819472: Store exclusive instructions might cause data corruption" 377 default y 378 help 379 This option adds an alternative code sequence to work around ARM 380 erratum 819472 on Cortex-A53 parts up to r0p1 with an L2 cache 381 present when it is connected to a coherent interconnect. 382 383 If the processor is executing a load and store exclusive sequence at 384 the same time as a processor in another cluster is executing a cache 385 maintenance operation to the same address, then this erratum might 386 cause data corruption. 387 388 The workaround promotes data cache clean instructions to 389 data cache clean-and-invalidate. 390 Please note that this does not necessarily enable the workaround, 391 as it depends on the alternative framework, which will only patch 392 the kernel if an affected CPU is detected. 393 394 If unsure, say Y. 395 396config ARM64_ERRATUM_832075 397 bool "Cortex-A57: 832075: possible deadlock on mixing exclusive memory accesses with device loads" 398 default y 399 help 400 This option adds an alternative code sequence to work around ARM 401 erratum 832075 on Cortex-A57 parts up to r1p2. 402 403 Affected Cortex-A57 parts might deadlock when exclusive load/store 404 instructions to Write-Back memory are mixed with Device loads. 405 406 The workaround is to promote device loads to use Load-Acquire 407 semantics. 408 Please note that this does not necessarily enable the workaround, 409 as it depends on the alternative framework, which will only patch 410 the kernel if an affected CPU is detected. 411 412 If unsure, say Y. 413 414config ARM64_ERRATUM_834220 415 bool "Cortex-A57: 834220: Stage 2 translation fault might be incorrectly reported in presence of a Stage 1 fault" 416 depends on KVM 417 default y 418 help 419 This option adds an alternative code sequence to work around ARM 420 erratum 834220 on Cortex-A57 parts up to r1p2. 421 422 Affected Cortex-A57 parts might report a Stage 2 translation 423 fault as the result of a Stage 1 fault for load crossing a 424 page boundary when there is a permission or device memory 425 alignment fault at Stage 1 and a translation fault at Stage 2. 426 427 The workaround is to verify that the Stage 1 translation 428 doesn't generate a fault before handling the Stage 2 fault. 429 Please note that this does not necessarily enable the workaround, 430 as it depends on the alternative framework, which will only patch 431 the kernel if an affected CPU is detected. 432 433 If unsure, say Y. 434 435config ARM64_ERRATUM_845719 436 bool "Cortex-A53: 845719: a load might read incorrect data" 437 depends on COMPAT 438 default y 439 help 440 This option adds an alternative code sequence to work around ARM 441 erratum 845719 on Cortex-A53 parts up to r0p4. 442 443 When running a compat (AArch32) userspace on an affected Cortex-A53 444 part, a load at EL0 from a virtual address that matches the bottom 32 445 bits of the virtual address used by a recent load at (AArch64) EL1 446 might return incorrect data. 447 448 The workaround is to write the contextidr_el1 register on exception 449 return to a 32-bit task. 450 Please note that this does not necessarily enable the workaround, 451 as it depends on the alternative framework, which will only patch 452 the kernel if an affected CPU is detected. 453 454 If unsure, say Y. 455 456config ARM64_ERRATUM_843419 457 bool "Cortex-A53: 843419: A load or store might access an incorrect address" 458 default y 459 select ARM64_MODULE_PLTS if MODULES 460 help 461 This option links the kernel with '--fix-cortex-a53-843419' and 462 enables PLT support to replace certain ADRP instructions, which can 463 cause subsequent memory accesses to use an incorrect address on 464 Cortex-A53 parts up to r0p4. 465 466 If unsure, say Y. 467 468config ARM64_ERRATUM_1024718 469 bool "Cortex-A55: 1024718: Update of DBM/AP bits without break before make might result in incorrect update" 470 default y 471 help 472 This option adds work around for Arm Cortex-A55 Erratum 1024718. 473 474 Affected Cortex-A55 cores (r0p0, r0p1, r1p0) could cause incorrect 475 update of the hardware dirty bit when the DBM/AP bits are updated 476 without a break-before-make. The work around is to disable the usage 477 of hardware DBM locally on the affected cores. CPUs not affected by 478 erratum will continue to use the feature. 479 480 If unsure, say Y. 481 482config CAVIUM_ERRATUM_22375 483 bool "Cavium erratum 22375, 24313" 484 default y 485 help 486 Enable workaround for erratum 22375, 24313. 487 488 This implements two gicv3-its errata workarounds for ThunderX. Both 489 with small impact affecting only ITS table allocation. 490 491 erratum 22375: only alloc 8MB table size 492 erratum 24313: ignore memory access type 493 494 The fixes are in ITS initialization and basically ignore memory access 495 type and table size provided by the TYPER and BASER registers. 496 497 If unsure, say Y. 498 499config CAVIUM_ERRATUM_23144 500 bool "Cavium erratum 23144: ITS SYNC hang on dual socket system" 501 depends on NUMA 502 default y 503 help 504 ITS SYNC command hang for cross node io and collections/cpu mapping. 505 506 If unsure, say Y. 507 508config CAVIUM_ERRATUM_23154 509 bool "Cavium erratum 23154: Access to ICC_IAR1_EL1 is not sync'ed" 510 default y 511 help 512 The gicv3 of ThunderX requires a modified version for 513 reading the IAR status to ensure data synchronization 514 (access to icc_iar1_el1 is not sync'ed before and after). 515 516 If unsure, say Y. 517 518config CAVIUM_ERRATUM_27456 519 bool "Cavium erratum 27456: Broadcast TLBI instructions may cause icache corruption" 520 default y 521 help 522 On ThunderX T88 pass 1.x through 2.1 parts, broadcast TLBI 523 instructions may cause the icache to become corrupted if it 524 contains data for a non-current ASID. The fix is to 525 invalidate the icache when changing the mm context. 526 527 If unsure, say Y. 528 529config CAVIUM_ERRATUM_30115 530 bool "Cavium erratum 30115: Guest may disable interrupts in host" 531 default y 532 help 533 On ThunderX T88 pass 1.x through 2.2, T81 pass 1.0 through 534 1.2, and T83 Pass 1.0, KVM guest execution may disable 535 interrupts in host. Trapping both GICv3 group-0 and group-1 536 accesses sidesteps the issue. 537 538 If unsure, say Y. 539 540config QCOM_FALKOR_ERRATUM_1003 541 bool "Falkor E1003: Incorrect translation due to ASID change" 542 default y 543 help 544 On Falkor v1, an incorrect ASID may be cached in the TLB when ASID 545 and BADDR are changed together in TTBRx_EL1. Since we keep the ASID 546 in TTBR1_EL1, this situation only occurs in the entry trampoline and 547 then only for entries in the walk cache, since the leaf translation 548 is unchanged. Work around the erratum by invalidating the walk cache 549 entries for the trampoline before entering the kernel proper. 550 551config QCOM_FALKOR_ERRATUM_1009 552 bool "Falkor E1009: Prematurely complete a DSB after a TLBI" 553 default y 554 help 555 On Falkor v1, the CPU may prematurely complete a DSB following a 556 TLBI xxIS invalidate maintenance operation. Repeat the TLBI operation 557 one more time to fix the issue. 558 559 If unsure, say Y. 560 561config QCOM_QDF2400_ERRATUM_0065 562 bool "QDF2400 E0065: Incorrect GITS_TYPER.ITT_Entry_size" 563 default y 564 help 565 On Qualcomm Datacenter Technologies QDF2400 SoC, ITS hardware reports 566 ITE size incorrectly. The GITS_TYPER.ITT_Entry_size field should have 567 been indicated as 16Bytes (0xf), not 8Bytes (0x7). 568 569 If unsure, say Y. 570 571config SOCIONEXT_SYNQUACER_PREITS 572 bool "Socionext Synquacer: Workaround for GICv3 pre-ITS" 573 default y 574 help 575 Socionext Synquacer SoCs implement a separate h/w block to generate 576 MSI doorbell writes with non-zero values for the device ID. 577 578 If unsure, say Y. 579 580config HISILICON_ERRATUM_161600802 581 bool "Hip07 161600802: Erroneous redistributor VLPI base" 582 default y 583 help 584 The HiSilicon Hip07 SoC usees the wrong redistributor base 585 when issued ITS commands such as VMOVP and VMAPP, and requires 586 a 128kB offset to be applied to the target address in this commands. 587 588 If unsure, say Y. 589 590config QCOM_FALKOR_ERRATUM_E1041 591 bool "Falkor E1041: Speculative instruction fetches might cause errant memory access" 592 default y 593 help 594 Falkor CPU may speculatively fetch instructions from an improper 595 memory location when MMU translation is changed from SCTLR_ELn[M]=1 596 to SCTLR_ELn[M]=0. Prefix an ISB instruction to fix the problem. 597 598 If unsure, say Y. 599 600endmenu 601 602 603choice 604 prompt "Page size" 605 default ARM64_4K_PAGES 606 help 607 Page size (translation granule) configuration. 608 609config ARM64_4K_PAGES 610 bool "4KB" 611 help 612 This feature enables 4KB pages support. 613 614config ARM64_16K_PAGES 615 bool "16KB" 616 help 617 The system will use 16KB pages support. AArch32 emulation 618 requires applications compiled with 16K (or a multiple of 16K) 619 aligned segments. 620 621config ARM64_64K_PAGES 622 bool "64KB" 623 help 624 This feature enables 64KB pages support (4KB by default) 625 allowing only two levels of page tables and faster TLB 626 look-up. AArch32 emulation requires applications compiled 627 with 64K aligned segments. 628 629endchoice 630 631choice 632 prompt "Virtual address space size" 633 default ARM64_VA_BITS_39 if ARM64_4K_PAGES 634 default ARM64_VA_BITS_47 if ARM64_16K_PAGES 635 default ARM64_VA_BITS_42 if ARM64_64K_PAGES 636 help 637 Allows choosing one of multiple possible virtual address 638 space sizes. The level of translation table is determined by 639 a combination of page size and virtual address space size. 640 641config ARM64_VA_BITS_36 642 bool "36-bit" if EXPERT 643 depends on ARM64_16K_PAGES 644 645config ARM64_VA_BITS_39 646 bool "39-bit" 647 depends on ARM64_4K_PAGES 648 649config ARM64_VA_BITS_42 650 bool "42-bit" 651 depends on ARM64_64K_PAGES 652 653config ARM64_VA_BITS_47 654 bool "47-bit" 655 depends on ARM64_16K_PAGES 656 657config ARM64_VA_BITS_48 658 bool "48-bit" 659 660endchoice 661 662config ARM64_VA_BITS 663 int 664 default 36 if ARM64_VA_BITS_36 665 default 39 if ARM64_VA_BITS_39 666 default 42 if ARM64_VA_BITS_42 667 default 47 if ARM64_VA_BITS_47 668 default 48 if ARM64_VA_BITS_48 669 670choice 671 prompt "Physical address space size" 672 default ARM64_PA_BITS_48 673 help 674 Choose the maximum physical address range that the kernel will 675 support. 676 677config ARM64_PA_BITS_48 678 bool "48-bit" 679 680config ARM64_PA_BITS_52 681 bool "52-bit (ARMv8.2)" 682 depends on ARM64_64K_PAGES 683 depends on ARM64_PAN || !ARM64_SW_TTBR0_PAN 684 help 685 Enable support for a 52-bit physical address space, introduced as 686 part of the ARMv8.2-LPA extension. 687 688 With this enabled, the kernel will also continue to work on CPUs that 689 do not support ARMv8.2-LPA, but with some added memory overhead (and 690 minor performance overhead). 691 692endchoice 693 694config ARM64_PA_BITS 695 int 696 default 48 if ARM64_PA_BITS_48 697 default 52 if ARM64_PA_BITS_52 698 699config CPU_BIG_ENDIAN 700 bool "Build big-endian kernel" 701 help 702 Say Y if you plan on running a kernel in big-endian mode. 703 704config SCHED_MC 705 bool "Multi-core scheduler support" 706 help 707 Multi-core scheduler support improves the CPU scheduler's decision 708 making when dealing with multi-core CPU chips at a cost of slightly 709 increased overhead in some places. If unsure say N here. 710 711config SCHED_SMT 712 bool "SMT scheduler support" 713 help 714 Improves the CPU scheduler's decision making when dealing with 715 MultiThreading at a cost of slightly increased overhead in some 716 places. If unsure say N here. 717 718config NR_CPUS 719 int "Maximum number of CPUs (2-4096)" 720 range 2 4096 721 # These have to remain sorted largest to smallest 722 default "64" 723 724config HOTPLUG_CPU 725 bool "Support for hot-pluggable CPUs" 726 select GENERIC_IRQ_MIGRATION 727 help 728 Say Y here to experiment with turning CPUs off and on. CPUs 729 can be controlled through /sys/devices/system/cpu. 730 731# Common NUMA Features 732config NUMA 733 bool "Numa Memory Allocation and Scheduler Support" 734 select ACPI_NUMA if ACPI 735 select OF_NUMA 736 help 737 Enable NUMA (Non Uniform Memory Access) support. 738 739 The kernel will try to allocate memory used by a CPU on the 740 local memory of the CPU and add some more 741 NUMA awareness to the kernel. 742 743config NODES_SHIFT 744 int "Maximum NUMA Nodes (as a power of 2)" 745 range 1 10 746 default "2" 747 depends on NEED_MULTIPLE_NODES 748 help 749 Specify the maximum number of NUMA Nodes available on the target 750 system. Increases memory reserved to accommodate various tables. 751 752config USE_PERCPU_NUMA_NODE_ID 753 def_bool y 754 depends on NUMA 755 756config HAVE_SETUP_PER_CPU_AREA 757 def_bool y 758 depends on NUMA 759 760config NEED_PER_CPU_EMBED_FIRST_CHUNK 761 def_bool y 762 depends on NUMA 763 764config HOLES_IN_ZONE 765 def_bool y 766 767source kernel/Kconfig.hz 768 769config ARCH_SUPPORTS_DEBUG_PAGEALLOC 770 def_bool y 771 772config ARCH_HAS_HOLES_MEMORYMODEL 773 def_bool y if SPARSEMEM 774 775config ARCH_SPARSEMEM_ENABLE 776 def_bool y 777 select SPARSEMEM_VMEMMAP_ENABLE 778 779config ARCH_SPARSEMEM_DEFAULT 780 def_bool ARCH_SPARSEMEM_ENABLE 781 782config ARCH_SELECT_MEMORY_MODEL 783 def_bool ARCH_SPARSEMEM_ENABLE 784 785config ARCH_FLATMEM_ENABLE 786 def_bool !NUMA 787 788config HAVE_ARCH_PFN_VALID 789 def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM 790 791config HW_PERF_EVENTS 792 def_bool y 793 depends on ARM_PMU 794 795config SYS_SUPPORTS_HUGETLBFS 796 def_bool y 797 798config ARCH_WANT_HUGE_PMD_SHARE 799 def_bool y if ARM64_4K_PAGES || (ARM64_16K_PAGES && !ARM64_VA_BITS_36) 800 801config ARCH_HAS_CACHE_LINE_SIZE 802 def_bool y 803 804config SECCOMP 805 bool "Enable seccomp to safely compute untrusted bytecode" 806 ---help--- 807 This kernel feature is useful for number crunching applications 808 that may need to compute untrusted bytecode during their 809 execution. By using pipes or other transports made available to 810 the process as file descriptors supporting the read/write 811 syscalls, it's possible to isolate those applications in 812 their own address space using seccomp. Once seccomp is 813 enabled via prctl(PR_SET_SECCOMP), it cannot be disabled 814 and the task is only allowed to execute a few safe syscalls 815 defined by each seccomp mode. 816 817config PARAVIRT 818 bool "Enable paravirtualization code" 819 help 820 This changes the kernel so it can modify itself when it is run 821 under a hypervisor, potentially improving performance significantly 822 over full virtualization. 823 824config PARAVIRT_TIME_ACCOUNTING 825 bool "Paravirtual steal time accounting" 826 select PARAVIRT 827 default n 828 help 829 Select this option to enable fine granularity task steal time 830 accounting. Time spent executing other tasks in parallel with 831 the current vCPU is discounted from the vCPU power. To account for 832 that, there can be a small performance impact. 833 834 If in doubt, say N here. 835 836config KEXEC 837 depends on PM_SLEEP_SMP 838 select KEXEC_CORE 839 bool "kexec system call" 840 ---help--- 841 kexec is a system call that implements the ability to shutdown your 842 current kernel, and to start another kernel. It is like a reboot 843 but it is independent of the system firmware. And like a reboot 844 you can start any kernel with it, not just Linux. 845 846config CRASH_DUMP 847 bool "Build kdump crash kernel" 848 help 849 Generate crash dump after being started by kexec. This should 850 be normally only set in special crash dump kernels which are 851 loaded in the main kernel with kexec-tools into a specially 852 reserved region and then later executed after a crash by 853 kdump/kexec. 854 855 For more details see Documentation/kdump/kdump.txt 856 857config XEN_DOM0 858 def_bool y 859 depends on XEN 860 861config XEN 862 bool "Xen guest support on ARM64" 863 depends on ARM64 && OF 864 select SWIOTLB_XEN 865 select PARAVIRT 866 help 867 Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64. 868 869config FORCE_MAX_ZONEORDER 870 int 871 default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE) 872 default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE) 873 default "11" 874 help 875 The kernel memory allocator divides physically contiguous memory 876 blocks into "zones", where each zone is a power of two number of 877 pages. This option selects the largest power of two that the kernel 878 keeps in the memory allocator. If you need to allocate very large 879 blocks of physically contiguous memory, then you may need to 880 increase this value. 881 882 This config option is actually maximum order plus one. For example, 883 a value of 11 means that the largest free memory block is 2^10 pages. 884 885 We make sure that we can allocate upto a HugePage size for each configuration. 886 Hence we have : 887 MAX_ORDER = (PMD_SHIFT - PAGE_SHIFT) + 1 => PAGE_SHIFT - 2 888 889 However for 4K, we choose a higher default value, 11 as opposed to 10, giving us 890 4M allocations matching the default size used by generic code. 891 892config UNMAP_KERNEL_AT_EL0 893 bool "Unmap kernel when running in userspace (aka \"KAISER\")" if EXPERT 894 default y 895 help 896 Speculation attacks against some high-performance processors can 897 be used to bypass MMU permission checks and leak kernel data to 898 userspace. This can be defended against by unmapping the kernel 899 when running in userspace, mapping it back in on exception entry 900 via a trampoline page in the vector table. 901 902 If unsure, say Y. 903 904config HARDEN_BRANCH_PREDICTOR 905 bool "Harden the branch predictor against aliasing attacks" if EXPERT 906 default y 907 help 908 Speculation attacks against some high-performance processors rely on 909 being able to manipulate the branch predictor for a victim context by 910 executing aliasing branches in the attacker context. Such attacks 911 can be partially mitigated against by clearing internal branch 912 predictor state and limiting the prediction logic in some situations. 913 914 This config option will take CPU-specific actions to harden the 915 branch predictor against aliasing attacks and may rely on specific 916 instruction sequences or control bits being set by the system 917 firmware. 918 919 If unsure, say Y. 920 921config HARDEN_EL2_VECTORS 922 bool "Harden EL2 vector mapping against system register leak" if EXPERT 923 default y 924 help 925 Speculation attacks against some high-performance processors can 926 be used to leak privileged information such as the vector base 927 register, resulting in a potential defeat of the EL2 layout 928 randomization. 929 930 This config option will map the vectors to a fixed location, 931 independent of the EL2 code mapping, so that revealing VBAR_EL2 932 to an attacker does not give away any extra information. This 933 only gets enabled on affected CPUs. 934 935 If unsure, say Y. 936 937config ARM64_SSBD 938 bool "Speculative Store Bypass Disable" if EXPERT 939 default y 940 help 941 This enables mitigation of the bypassing of previous stores 942 by speculative loads. 943 944 If unsure, say Y. 945 946menuconfig ARMV8_DEPRECATED 947 bool "Emulate deprecated/obsolete ARMv8 instructions" 948 depends on COMPAT 949 depends on SYSCTL 950 help 951 Legacy software support may require certain instructions 952 that have been deprecated or obsoleted in the architecture. 953 954 Enable this config to enable selective emulation of these 955 features. 956 957 If unsure, say Y 958 959if ARMV8_DEPRECATED 960 961config SWP_EMULATION 962 bool "Emulate SWP/SWPB instructions" 963 help 964 ARMv8 obsoletes the use of A32 SWP/SWPB instructions such that 965 they are always undefined. Say Y here to enable software 966 emulation of these instructions for userspace using LDXR/STXR. 967 968 In some older versions of glibc [<=2.8] SWP is used during futex 969 trylock() operations with the assumption that the code will not 970 be preempted. This invalid assumption may be more likely to fail 971 with SWP emulation enabled, leading to deadlock of the user 972 application. 973 974 NOTE: when accessing uncached shared regions, LDXR/STXR rely 975 on an external transaction monitoring block called a global 976 monitor to maintain update atomicity. If your system does not 977 implement a global monitor, this option can cause programs that 978 perform SWP operations to uncached memory to deadlock. 979 980 If unsure, say Y 981 982config CP15_BARRIER_EMULATION 983 bool "Emulate CP15 Barrier instructions" 984 help 985 The CP15 barrier instructions - CP15ISB, CP15DSB, and 986 CP15DMB - are deprecated in ARMv8 (and ARMv7). It is 987 strongly recommended to use the ISB, DSB, and DMB 988 instructions instead. 989 990 Say Y here to enable software emulation of these 991 instructions for AArch32 userspace code. When this option is 992 enabled, CP15 barrier usage is traced which can help 993 identify software that needs updating. 994 995 If unsure, say Y 996 997config SETEND_EMULATION 998 bool "Emulate SETEND instruction" 999 help 1000 The SETEND instruction alters the data-endianness of the 1001 AArch32 EL0, and is deprecated in ARMv8. 1002 1003 Say Y here to enable software emulation of the instruction 1004 for AArch32 userspace code. 1005 1006 Note: All the cpus on the system must have mixed endian support at EL0 1007 for this feature to be enabled. If a new CPU - which doesn't support mixed 1008 endian - is hotplugged in after this feature has been enabled, there could 1009 be unexpected results in the applications. 1010 1011 If unsure, say Y 1012endif 1013 1014config ARM64_SW_TTBR0_PAN 1015 bool "Emulate Privileged Access Never using TTBR0_EL1 switching" 1016 help 1017 Enabling this option prevents the kernel from accessing 1018 user-space memory directly by pointing TTBR0_EL1 to a reserved 1019 zeroed area and reserved ASID. The user access routines 1020 restore the valid TTBR0_EL1 temporarily. 1021 1022menu "ARMv8.1 architectural features" 1023 1024config ARM64_HW_AFDBM 1025 bool "Support for hardware updates of the Access and Dirty page flags" 1026 default y 1027 help 1028 The ARMv8.1 architecture extensions introduce support for 1029 hardware updates of the access and dirty information in page 1030 table entries. When enabled in TCR_EL1 (HA and HD bits) on 1031 capable processors, accesses to pages with PTE_AF cleared will 1032 set this bit instead of raising an access flag fault. 1033 Similarly, writes to read-only pages with the DBM bit set will 1034 clear the read-only bit (AP[2]) instead of raising a 1035 permission fault. 1036 1037 Kernels built with this configuration option enabled continue 1038 to work on pre-ARMv8.1 hardware and the performance impact is 1039 minimal. If unsure, say Y. 1040 1041config ARM64_PAN 1042 bool "Enable support for Privileged Access Never (PAN)" 1043 default y 1044 help 1045 Privileged Access Never (PAN; part of the ARMv8.1 Extensions) 1046 prevents the kernel or hypervisor from accessing user-space (EL0) 1047 memory directly. 1048 1049 Choosing this option will cause any unprotected (not using 1050 copy_to_user et al) memory access to fail with a permission fault. 1051 1052 The feature is detected at runtime, and will remain as a 'nop' 1053 instruction if the cpu does not implement the feature. 1054 1055config ARM64_LSE_ATOMICS 1056 bool "Atomic instructions" 1057 default y 1058 help 1059 As part of the Large System Extensions, ARMv8.1 introduces new 1060 atomic instructions that are designed specifically to scale in 1061 very large systems. 1062 1063 Say Y here to make use of these instructions for the in-kernel 1064 atomic routines. This incurs a small overhead on CPUs that do 1065 not support these instructions and requires the kernel to be 1066 built with binutils >= 2.25 in order for the new instructions 1067 to be used. 1068 1069config ARM64_VHE 1070 bool "Enable support for Virtualization Host Extensions (VHE)" 1071 default y 1072 help 1073 Virtualization Host Extensions (VHE) allow the kernel to run 1074 directly at EL2 (instead of EL1) on processors that support 1075 it. This leads to better performance for KVM, as they reduce 1076 the cost of the world switch. 1077 1078 Selecting this option allows the VHE feature to be detected 1079 at runtime, and does not affect processors that do not 1080 implement this feature. 1081 1082endmenu 1083 1084menu "ARMv8.2 architectural features" 1085 1086config ARM64_UAO 1087 bool "Enable support for User Access Override (UAO)" 1088 default y 1089 help 1090 User Access Override (UAO; part of the ARMv8.2 Extensions) 1091 causes the 'unprivileged' variant of the load/store instructions to 1092 be overridden to be privileged. 1093 1094 This option changes get_user() and friends to use the 'unprivileged' 1095 variant of the load/store instructions. This ensures that user-space 1096 really did have access to the supplied memory. When addr_limit is 1097 set to kernel memory the UAO bit will be set, allowing privileged 1098 access to kernel memory. 1099 1100 Choosing this option will cause copy_to_user() et al to use user-space 1101 memory permissions. 1102 1103 The feature is detected at runtime, the kernel will use the 1104 regular load/store instructions if the cpu does not implement the 1105 feature. 1106 1107config ARM64_PMEM 1108 bool "Enable support for persistent memory" 1109 select ARCH_HAS_PMEM_API 1110 select ARCH_HAS_UACCESS_FLUSHCACHE 1111 help 1112 Say Y to enable support for the persistent memory API based on the 1113 ARMv8.2 DCPoP feature. 1114 1115 The feature is detected at runtime, and the kernel will use DC CVAC 1116 operations if DC CVAP is not supported (following the behaviour of 1117 DC CVAP itself if the system does not define a point of persistence). 1118 1119config ARM64_RAS_EXTN 1120 bool "Enable support for RAS CPU Extensions" 1121 default y 1122 help 1123 CPUs that support the Reliability, Availability and Serviceability 1124 (RAS) Extensions, part of ARMv8.2 are able to track faults and 1125 errors, classify them and report them to software. 1126 1127 On CPUs with these extensions system software can use additional 1128 barriers to determine if faults are pending and read the 1129 classification from a new set of registers. 1130 1131 Selecting this feature will allow the kernel to use these barriers 1132 and access the new registers if the system supports the extension. 1133 Platform RAS features may additionally depend on firmware support. 1134 1135endmenu 1136 1137config ARM64_SVE 1138 bool "ARM Scalable Vector Extension support" 1139 default y 1140 depends on !KVM || ARM64_VHE 1141 help 1142 The Scalable Vector Extension (SVE) is an extension to the AArch64 1143 execution state which complements and extends the SIMD functionality 1144 of the base architecture to support much larger vectors and to enable 1145 additional vectorisation opportunities. 1146 1147 To enable use of this extension on CPUs that implement it, say Y. 1148 1149 Note that for architectural reasons, firmware _must_ implement SVE 1150 support when running on SVE capable hardware. The required support 1151 is present in: 1152 1153 * version 1.5 and later of the ARM Trusted Firmware 1154 * the AArch64 boot wrapper since commit 5e1261e08abf 1155 ("bootwrapper: SVE: Enable SVE for EL2 and below"). 1156 1157 For other firmware implementations, consult the firmware documentation 1158 or vendor. 1159 1160 If you need the kernel to boot on SVE-capable hardware with broken 1161 firmware, you may need to say N here until you get your firmware 1162 fixed. Otherwise, you may experience firmware panics or lockups when 1163 booting the kernel. If unsure and you are not observing these 1164 symptoms, you should assume that it is safe to say Y. 1165 1166 CPUs that support SVE are architecturally required to support the 1167 Virtualization Host Extensions (VHE), so the kernel makes no 1168 provision for supporting SVE alongside KVM without VHE enabled. 1169 Thus, you will need to enable CONFIG_ARM64_VHE if you want to support 1170 KVM in the same kernel image. 1171 1172config ARM64_MODULE_PLTS 1173 bool 1174 select HAVE_MOD_ARCH_SPECIFIC 1175 1176config RELOCATABLE 1177 bool 1178 help 1179 This builds the kernel as a Position Independent Executable (PIE), 1180 which retains all relocation metadata required to relocate the 1181 kernel binary at runtime to a different virtual address than the 1182 address it was linked at. 1183 Since AArch64 uses the RELA relocation format, this requires a 1184 relocation pass at runtime even if the kernel is loaded at the 1185 same address it was linked at. 1186 1187config RANDOMIZE_BASE 1188 bool "Randomize the address of the kernel image" 1189 select ARM64_MODULE_PLTS if MODULES 1190 select RELOCATABLE 1191 help 1192 Randomizes the virtual address at which the kernel image is 1193 loaded, as a security feature that deters exploit attempts 1194 relying on knowledge of the location of kernel internals. 1195 1196 It is the bootloader's job to provide entropy, by passing a 1197 random u64 value in /chosen/kaslr-seed at kernel entry. 1198 1199 When booting via the UEFI stub, it will invoke the firmware's 1200 EFI_RNG_PROTOCOL implementation (if available) to supply entropy 1201 to the kernel proper. In addition, it will randomise the physical 1202 location of the kernel Image as well. 1203 1204 If unsure, say N. 1205 1206config RANDOMIZE_MODULE_REGION_FULL 1207 bool "Randomize the module region over a 4 GB range" 1208 depends on RANDOMIZE_BASE 1209 default y 1210 help 1211 Randomizes the location of the module region inside a 4 GB window 1212 covering the core kernel. This way, it is less likely for modules 1213 to leak information about the location of core kernel data structures 1214 but it does imply that function calls between modules and the core 1215 kernel will need to be resolved via veneers in the module PLT. 1216 1217 When this option is not set, the module region will be randomized over 1218 a limited range that contains the [_stext, _etext] interval of the 1219 core kernel, so branch relocations are always in range. 1220 1221endmenu 1222 1223menu "Boot options" 1224 1225config ARM64_ACPI_PARKING_PROTOCOL 1226 bool "Enable support for the ARM64 ACPI parking protocol" 1227 depends on ACPI 1228 help 1229 Enable support for the ARM64 ACPI parking protocol. If disabled 1230 the kernel will not allow booting through the ARM64 ACPI parking 1231 protocol even if the corresponding data is present in the ACPI 1232 MADT table. 1233 1234config CMDLINE 1235 string "Default kernel command string" 1236 default "" 1237 help 1238 Provide a set of default command-line options at build time by 1239 entering them here. As a minimum, you should specify the the 1240 root device (e.g. root=/dev/nfs). 1241 1242config CMDLINE_FORCE 1243 bool "Always use the default kernel command string" 1244 help 1245 Always use the default kernel command string, even if the boot 1246 loader passes other arguments to the kernel. 1247 This is useful if you cannot or don't want to change the 1248 command-line options your boot loader passes to the kernel. 1249 1250config EFI_STUB 1251 bool 1252 1253config EFI 1254 bool "UEFI runtime support" 1255 depends on OF && !CPU_BIG_ENDIAN 1256 depends on KERNEL_MODE_NEON 1257 select ARCH_SUPPORTS_ACPI 1258 select LIBFDT 1259 select UCS2_STRING 1260 select EFI_PARAMS_FROM_FDT 1261 select EFI_RUNTIME_WRAPPERS 1262 select EFI_STUB 1263 select EFI_ARMSTUB 1264 default y 1265 help 1266 This option provides support for runtime services provided 1267 by UEFI firmware (such as non-volatile variables, realtime 1268 clock, and platform reset). A UEFI stub is also provided to 1269 allow the kernel to be booted as an EFI application. This 1270 is only useful on systems that have UEFI firmware. 1271 1272config DMI 1273 bool "Enable support for SMBIOS (DMI) tables" 1274 depends on EFI 1275 default y 1276 help 1277 This enables SMBIOS/DMI feature for systems. 1278 1279 This option is only useful on systems that have UEFI firmware. 1280 However, even with this option, the resultant kernel should 1281 continue to boot on existing non-UEFI platforms. 1282 1283endmenu 1284 1285config COMPAT 1286 bool "Kernel support for 32-bit EL0" 1287 depends on ARM64_4K_PAGES || EXPERT 1288 select COMPAT_BINFMT_ELF if BINFMT_ELF 1289 select HAVE_UID16 1290 select OLD_SIGSUSPEND3 1291 select COMPAT_OLD_SIGACTION 1292 help 1293 This option enables support for a 32-bit EL0 running under a 64-bit 1294 kernel at EL1. AArch32-specific components such as system calls, 1295 the user helper functions, VFP support and the ptrace interface are 1296 handled appropriately by the kernel. 1297 1298 If you use a page size other than 4KB (i.e, 16KB or 64KB), please be aware 1299 that you will only be able to execute AArch32 binaries that were compiled 1300 with page size aligned segments. 1301 1302 If you want to execute 32-bit userspace applications, say Y. 1303 1304config SYSVIPC_COMPAT 1305 def_bool y 1306 depends on COMPAT && SYSVIPC 1307 1308menu "Power management options" 1309 1310source "kernel/power/Kconfig" 1311 1312config ARCH_HIBERNATION_POSSIBLE 1313 def_bool y 1314 depends on CPU_PM 1315 1316config ARCH_HIBERNATION_HEADER 1317 def_bool y 1318 depends on HIBERNATION 1319 1320config ARCH_SUSPEND_POSSIBLE 1321 def_bool y 1322 1323endmenu 1324 1325menu "CPU Power Management" 1326 1327source "drivers/cpuidle/Kconfig" 1328 1329source "drivers/cpufreq/Kconfig" 1330 1331endmenu 1332 1333source "drivers/firmware/Kconfig" 1334 1335source "drivers/acpi/Kconfig" 1336 1337source "arch/arm64/kvm/Kconfig" 1338 1339if CRYPTO 1340source "arch/arm64/crypto/Kconfig" 1341endif 1342