^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) config ARM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) select ARCH_32BIT_OFF_T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) select ARCH_HAS_BINFMT_FLAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) select ARCH_HAS_DEBUG_VIRTUAL if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) select ARCH_HAS_DEVMEM_IS_ALLOWED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) select ARCH_HAS_DMA_WRITE_COMBINE if !ARM_DMA_MEM_BUFFERABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) select ARCH_HAS_ELF_RANDOMIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) select ARCH_HAS_FORTIFY_SOURCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) select ARCH_HAS_KEEPINITRD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) select ARCH_HAS_KCOV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) select ARCH_HAS_MEMBARRIER_SYNC_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) select ARCH_HAS_PTE_SPECIAL if ARM_LPAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) select ARCH_HAS_PHYS_TO_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) select ARCH_HAS_SETUP_DMA_OPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) select ARCH_HAS_SET_MEMORY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) select ARCH_HAS_STRICT_KERNEL_RWX if MMU && !XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) select ARCH_HAS_STRICT_MODULE_RWX if MMU && (!ROCKCHIP_MINI_KERNEL || STRICT_KERNEL_RWX)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) select ARCH_HAS_SYNC_DMA_FOR_DEVICE if SWIOTLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) select ARCH_HAS_SYNC_DMA_FOR_CPU if SWIOTLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) select ARCH_HAS_TEARDOWN_DMA_OPS if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) select ARCH_HAVE_CUSTOM_GPIO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) select ARCH_HAS_GCOV_PROFILE_ALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) select ARCH_KEEP_MEMBLOCK if HAVE_ARCH_PFN_VALID || KEXEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) select ARCH_MIGHT_HAVE_PC_PARPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) select ARCH_NO_SG_CHAIN if !ARM_HAS_SG_CHAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) select ARCH_SUPPORTS_ATOMIC_RMW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) select ARCH_USE_BUILTIN_BSWAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) select ARCH_USE_CMPXCHG_LOCKREF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) select ARCH_WANT_IPC_PARSE_VERSION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) select ARCH_WANT_LD_ORPHAN_WARN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) select BUILDTIME_TABLE_SORT if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) select CLONE_BACKWARDS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) select CPU_PM if SUSPEND || CPU_IDLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) select DMA_DECLARE_COHERENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) select DMA_OPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) select DMA_REMAP if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) select EDAC_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) select EDAC_ATOMIC_SCRUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) select GENERIC_ALLOCATOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) select GENERIC_ARCH_TOPOLOGY if ARM_CPU_TOPOLOGY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) select GENERIC_ATOMIC64 if CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) select GENERIC_CLOCKEVENTS_BROADCAST if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) select GENERIC_IRQ_IPI if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) select ARCH_WANTS_IRQ_RAW if GENERIC_IRQ_IPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) select GENERIC_CPU_AUTOPROBE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) select GENERIC_EARLY_IOREMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) select GENERIC_IDLE_POLL_SETUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) select GENERIC_IRQ_PROBE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) select GENERIC_IRQ_SHOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) select GENERIC_IRQ_SHOW_LEVEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) select GENERIC_PCI_IOMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) select GENERIC_SCHED_CLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) select GENERIC_SMP_IDLE_THREAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) select GENERIC_STRNCPY_FROM_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) select GENERIC_STRNLEN_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) select HANDLE_DOMAIN_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) select HARDIRQS_SW_RESEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) select HAVE_ARCH_AUDITSYSCALL if AEABI && !OABI_COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) select HAVE_ARCH_MMAP_RND_BITS if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) select HAVE_ARCH_SECCOMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) select HAVE_ARCH_SECCOMP_FILTER if AEABI && !OABI_COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) select HAVE_ARCH_THREAD_STRUCT_WHITELIST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) select HAVE_ARCH_TRACEHOOK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) select HAVE_ARM_SMCCC if CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) select HAVE_EBPF_JIT if !CPU_ENDIAN_BE32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) select HAVE_CONTEXT_TRACKING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) select HAVE_C_RECORDMCOUNT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) select HAVE_DEBUG_KMEMLEAK if !XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) select HAVE_DMA_CONTIGUOUS if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) select HAVE_EXIT_THREAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) select HAVE_FAST_GUP if ARM_LPAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL && !CC_IS_CLANG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) select HAVE_FUNCTION_TRACER if !XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) select HAVE_FUTEX_CMPXCHG if FUTEX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) select HAVE_GCC_PLUGINS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) select HAVE_IDE if PCI || ISA || PCMCIA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) select HAVE_IRQ_TIME_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) select HAVE_KERNEL_GZIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) select HAVE_KERNEL_LZ4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) select HAVE_KERNEL_LZMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) select HAVE_KERNEL_LZO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) select HAVE_KERNEL_XZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) select HAVE_KRETPROBES if HAVE_KPROBES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) select HAVE_MOD_ARCH_SPECIFIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) select HAVE_NMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) select HAVE_OPROFILE if HAVE_PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) select HAVE_OPTPROBES if !THUMB2_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) select HAVE_PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) select HAVE_PERF_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) select HAVE_PERF_USER_STACK_DUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) select MMU_GATHER_RCU_TABLE_FREE if SMP && ARM_LPAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) select HAVE_REGS_AND_STACK_ACCESS_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) select HAVE_RSEQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) select HAVE_STACKPROTECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) select HAVE_SYSCALL_TRACEPOINTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) select HAVE_UID16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) select HAVE_VIRT_CPU_ACCOUNTING_GEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) select IRQ_FORCED_THREADING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) select MODULES_USE_ELF_REL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) select NEED_DMA_MAP_STATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) select OF_EARLY_FLATTREE if OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) select OLD_SIGACTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) select OLD_SIGSUSPEND3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) select PCI_SYSCALL if PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) select PERF_USE_VMALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) select RTC_LIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) select SET_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) select SYS_SUPPORTS_APM_EMULATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) # Above selects are sorted alphabetically; please add new ones
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) # according to that. Thanks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) The ARM series is a line of low-power-consumption RISC chip designs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) licensed by ARM Ltd and targeted at embedded applications and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) handhelds such as the Compaq IPAQ. ARM-based PCs are no longer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) manufactured, but legacy ARM-based PC hardware remains popular in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) Europe. There is an ARM Linux project with a web page at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) <http://www.arm.linux.org.uk/>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) config ARM_HAS_SG_CHAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) config ARM_DMA_USE_IOMMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) select ARM_HAS_SG_CHAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) select NEED_SG_DMA_LENGTH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) if ARM_DMA_USE_IOMMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) config ARM_DMA_IOMMU_ALIGNMENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) int "Maximum PAGE_SIZE order of alignment for DMA IOMMU buffers"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) range 4 9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) default 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) DMA mapping framework by default aligns all buffers to the smallest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) PAGE_SIZE order which is greater than or equal to the requested buffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) size. This works well for buffers up to a few hundreds kilobytes, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) for larger buffers it just a waste of address space. Drivers which has
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) relatively small addressing window (like 64Mib) might run out of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) virtual space with just a few allocations.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) With this parameter you can specify the maximum PAGE_SIZE order for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) DMA IOMMU buffers. Larger buffers will be aligned only to this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) specified order. The order is expressed as a power of two multiplied
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) by the PAGE_SIZE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) config SYS_SUPPORTS_APM_EMULATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) config HAVE_TCM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) select GENERIC_ALLOCATOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) config HAVE_PROC_CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) config NO_IOPORT_MAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) config SBUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) config STACKTRACE_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) config LOCKDEP_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) config TRACE_IRQFLAGS_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) default !CPU_V7M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) config ARCH_HAS_ILOG2_U32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) config ARCH_HAS_ILOG2_U64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) config ARCH_HAS_BANDGAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) config FIX_EARLYCON_MEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) def_bool y if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) config GENERIC_HWEIGHT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) config GENERIC_CALIBRATE_DELAY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) config ARCH_MAY_HAVE_PC_FDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) config ZONE_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) config ARCH_SUPPORTS_UPROBES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) config ARCH_HAS_DMA_SET_COHERENT_MASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) config GENERIC_ISA_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) config FIQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) config NEED_RET_TO_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) config ARCH_MTD_XIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) config ARM_PATCH_PHYS_VIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) bool "Patch physical to virtual translations at runtime" if EMBEDDED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) depends on !XIP_KERNEL && MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) Patch phys-to-virt and virt-to-phys translation functions at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) boot and module load time according to the position of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) kernel in system memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) This can only be used with non-XIP MMU kernels where the base
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) of physical memory is at a 16MB boundary.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) Only disable this option if you know that you do not require
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) this feature (eg, building a kernel for a single machine) and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) you need to shrink the kernel to the minimal size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) config NEED_MACH_IO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) Select this when mach/io.h is required to provide special
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) definitions for this platform. The need for mach/io.h should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) be avoided when possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) config NEED_MACH_MEMORY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) Select this when mach/memory.h is required to provide special
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) definitions for this platform. The need for mach/memory.h should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) be avoided when possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) config PHYS_OFFSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) hex "Physical address of main memory" if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) depends on !ARM_PATCH_PHYS_VIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) default DRAM_BASE if !MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) default 0x00000000 if ARCH_EBSA110 || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) ARCH_FOOTBRIDGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) default 0x20000000 if ARCH_S5PV210
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) default 0xc0000000 if ARCH_SA1100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) Please provide the physical address corresponding to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) location of main memory in your system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) config GENERIC_BUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) depends on BUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) config PGTABLE_LEVELS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) default 3 if ARM_LPAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) default 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) menu "System Type"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) config MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) bool "MMU-based Paged Memory Management Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) Select if you want MMU-based virtualised addressing space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) support by paged memory management. If unsure, say 'Y'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) config ARCH_MMAP_RND_BITS_MIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) default 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) config ARCH_MMAP_RND_BITS_MAX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) default 14 if PAGE_OFFSET=0x40000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) default 15 if PAGE_OFFSET=0x80000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) default 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) # The "ARM system type" choice list is ordered alphabetically by option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) # text. Please add new entries in the option alphabetic order.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) prompt "ARM system type"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) default ARM_SINGLE_ARMV7M if !MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) default ARCH_MULTIPLATFORM if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) config ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) bool "Allow multiple platforms to be selected"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) select ARCH_FLATMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) select ARCH_SPARSEMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) select ARCH_SELECT_MEMORY_MODEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) select ARM_HAS_SG_CHAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) select ARM_PATCH_PHYS_VIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) select AUTO_ZRELADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) select TIMER_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) select GENERIC_IRQ_MULTI_HANDLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) select HAVE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) select PCI_DOMAINS_GENERIC if PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) select SPARSE_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) select USE_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) config ARM_SINGLE_ARMV7M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) depends on !MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) select ARM_NVIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) select AUTO_ZRELADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) select TIMER_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) select CPU_V7M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) select NO_IOPORT_MAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) select SPARSE_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) select USE_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) config ARCH_EBSA110
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) bool "EBSA-110"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) select ARCH_USES_GETTIMEOFFSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) select CPU_SA110
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) select ISA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) select NEED_MACH_IO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) select NEED_MACH_MEMORY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) select NO_IOPORT_MAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) This is an evaluation board for the StrongARM processor available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) from Digital. It has limited hardware on-board, including an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) Ethernet interface, two PCMCIA sockets, two serial ports and a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) parallel port.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) config ARCH_EP93XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) bool "EP93xx-based"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) select ARCH_SPARSEMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) select ARM_AMBA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) imply ARM_PATCH_PHYS_VIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) select ARM_VIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) select AUTO_ZRELADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) select CLKDEV_LOOKUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) select CLKSRC_MMIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) select CPU_ARM920T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) select HAVE_LEGACY_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) This enables support for the Cirrus EP93xx series of CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) config ARCH_FOOTBRIDGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) bool "FootBridge"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) select CPU_SA110
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) select FOOTBRIDGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) select HAVE_IDE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) select NEED_MACH_IO_H if !MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) select NEED_MACH_MEMORY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) Support for systems based on the DC21285 companion chip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) config ARCH_IOP32X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) bool "IOP32x-based"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) select CPU_XSCALE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) select GPIO_IOP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) select NEED_RET_TO_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) select FORCE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) select PLAT_IOP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) Support for Intel's 80219 and IOP32X (XScale) family of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) processors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) config ARCH_IXP4XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) bool "IXP4xx-based"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) select ARCH_HAS_DMA_SET_COHERENT_MASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) select ARCH_SUPPORTS_BIG_ENDIAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) select CPU_XSCALE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) select DMABOUNCE if PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) select GENERIC_IRQ_MULTI_HANDLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) select GPIO_IXP4XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) select HAVE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) select IXP4XX_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) select IXP4XX_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) select NEED_MACH_IO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) select USB_EHCI_BIG_ENDIAN_DESC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) select USB_EHCI_BIG_ENDIAN_MMIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) Support for Intel's IXP4XX (XScale) family of processors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) config ARCH_DOVE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) bool "Marvell Dove"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) select CPU_PJ4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) select GENERIC_IRQ_MULTI_HANDLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) select HAVE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) select MVEBU_MBUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) select PINCTRL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) select PINCTRL_DOVE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) select PLAT_ORION_LEGACY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) select SPARSE_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) select PM_GENERIC_DOMAINS if PM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) Support for the Marvell Dove SoC 88AP510
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) config ARCH_PXA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) bool "PXA2xx/PXA3xx-based"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) select ARCH_MTD_XIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) select ARM_CPU_SUSPEND if PM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) select AUTO_ZRELADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) select CLKSRC_PXA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) select CLKSRC_MMIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) select TIMER_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) select CPU_XSCALE if !CPU_XSC3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) select GENERIC_IRQ_MULTI_HANDLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) select GPIO_PXA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) select HAVE_IDE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) select PLAT_PXA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) select SPARSE_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) config ARCH_RPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) bool "RiscPC"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) select ARCH_ACORN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) select ARCH_MAY_HAVE_PC_FDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) select ARCH_SPARSEMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) select ARM_HAS_SG_CHAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) select CPU_SA110
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) select FIQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) select HAVE_IDE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) select HAVE_PATA_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) select ISA_DMA_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) select NEED_MACH_IO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) select NEED_MACH_MEMORY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) select NO_IOPORT_MAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) On the Acorn Risc-PC, Linux can support the internal IDE disk and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) CD-ROM interface, serial and parallel port, and the floppy drive.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) config ARCH_SA1100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) bool "SA1100-based"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) select ARCH_MTD_XIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) select ARCH_SPARSEMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) select CLKSRC_MMIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) select CLKSRC_PXA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) select TIMER_OF if OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) select CPU_FREQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) select CPU_SA1100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) select GENERIC_IRQ_MULTI_HANDLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) select HAVE_IDE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) select ISA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) select NEED_MACH_MEMORY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) select SPARSE_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) Support for StrongARM 11x0 based boards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) config ARCH_S3C24XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) bool "Samsung S3C24XX SoCs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) select ATAGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) select CLKSRC_SAMSUNG_PWM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) select GPIO_SAMSUNG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) select GENERIC_IRQ_MULTI_HANDLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) select HAVE_S3C2410_I2C if I2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) select HAVE_S3C_RTC if RTC_CLASS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) select NEED_MACH_IO_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) select S3C2410_WATCHDOG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) select SAMSUNG_ATAGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) select USE_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) select WATCHDOG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) Samsung SMDK2410 development board (and derivatives).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) config ARCH_OMAP1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) bool "TI OMAP1"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) select ARCH_HAS_HOLES_MEMORYMODEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) select ARCH_OMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) select CLKDEV_LOOKUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) select CLKSRC_MMIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) select GENERIC_IRQ_CHIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) select GENERIC_IRQ_MULTI_HANDLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) select HAVE_IDE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) select HAVE_LEGACY_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) select NEED_MACH_IO_H if PCCARD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) select NEED_MACH_MEMORY_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) select SPARSE_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) Support for older TI OMAP1 (omap7xx, omap15xx or omap16xx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) menu "Multiple platform selection"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) depends on ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) comment "CPU Core family selection"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) config ARCH_MULTI_V4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) bool "ARMv4 based platforms (FA526)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) depends on !ARCH_MULTI_V6_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) select ARCH_MULTI_V4_V5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) select CPU_FA526
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) config ARCH_MULTI_V4T
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) depends on !ARCH_MULTI_V6_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) select ARCH_MULTI_V4_V5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) CPU_ARM925T || CPU_ARM940T)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) config ARCH_MULTI_V5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) depends on !ARCH_MULTI_V6_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) select ARCH_MULTI_V4_V5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) config ARCH_MULTI_V4_V5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) config ARCH_MULTI_V6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) bool "ARMv6 based platforms (ARM11)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) select ARCH_MULTI_V6_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) select CPU_V6K
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) config ARCH_MULTI_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) select ARCH_MULTI_V6_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) select CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) select HAVE_SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) config ARCH_MULTI_V6_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) select MIGHT_HAVE_CACHE_L2X0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) config ARCH_MULTI_CPU_AUTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) select ARCH_MULTI_V5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) config ARCH_VIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) bool "Dummy Virtual Machine"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) depends on ARCH_MULTI_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) select ARM_AMBA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) select ARM_GIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) select ARM_GIC_V2M if PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) select ARM_GIC_V3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) select ARM_GIC_V3_ITS if PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) select ARM_PSCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) select HAVE_ARM_ARCH_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) select ARCH_SUPPORTS_BIG_ENDIAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) # This is sorted alphabetically by mach-* pathname. However, plat-*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) # Kconfigs may be included either alphabetically (according to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) # plat- suffix) or along side the corresponding mach-* source.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) source "arch/arm/mach-actions/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) source "arch/arm/mach-alpine/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) source "arch/arm/mach-artpec/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) source "arch/arm/mach-asm9260/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) source "arch/arm/mach-aspeed/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) source "arch/arm/mach-at91/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) source "arch/arm/mach-axxia/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) source "arch/arm/mach-bcm/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) source "arch/arm/mach-berlin/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) source "arch/arm/mach-clps711x/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) source "arch/arm/mach-cns3xxx/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) source "arch/arm/mach-davinci/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) source "arch/arm/mach-digicolor/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) source "arch/arm/mach-dove/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) source "arch/arm/mach-ep93xx/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) source "arch/arm/mach-exynos/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) source "arch/arm/mach-footbridge/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) source "arch/arm/mach-gemini/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) source "arch/arm/mach-highbank/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) source "arch/arm/mach-hisi/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) source "arch/arm/mach-imx/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) source "arch/arm/mach-integrator/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) source "arch/arm/mach-iop32x/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) source "arch/arm/mach-ixp4xx/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) source "arch/arm/mach-keystone/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) source "arch/arm/mach-lpc32xx/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) source "arch/arm/mach-mediatek/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) source "arch/arm/mach-meson/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) source "arch/arm/mach-milbeaut/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) source "arch/arm/mach-mmp/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) source "arch/arm/mach-moxart/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) source "arch/arm/mach-mstar/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) source "arch/arm/mach-mv78xx0/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) source "arch/arm/mach-mvebu/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) source "arch/arm/mach-mxs/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) source "arch/arm/mach-nomadik/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) source "arch/arm/mach-npcm/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) source "arch/arm/mach-nspire/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) source "arch/arm/plat-omap/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) source "arch/arm/mach-omap1/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) source "arch/arm/mach-omap2/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) source "arch/arm/mach-orion5x/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) source "arch/arm/mach-oxnas/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) source "arch/arm/mach-picoxcell/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) source "arch/arm/mach-prima2/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) source "arch/arm/mach-pxa/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) source "arch/arm/plat-pxa/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) source "arch/arm/mach-qcom/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) source "arch/arm/mach-rda/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) source "arch/arm/mach-realtek/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) source "arch/arm/mach-realview/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) source "arch/arm/mach-rockchip/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) source "arch/arm/mach-s3c/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) source "arch/arm/mach-s5pv210/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) source "arch/arm/mach-sa1100/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) source "arch/arm/mach-shmobile/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) source "arch/arm/mach-socfpga/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) source "arch/arm/mach-spear/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) source "arch/arm/mach-sti/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) source "arch/arm/mach-stm32/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) source "arch/arm/mach-sunxi/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) source "arch/arm/mach-tango/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) source "arch/arm/mach-tegra/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) source "arch/arm/mach-u300/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) source "arch/arm/mach-uniphier/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) source "arch/arm/mach-ux500/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) source "arch/arm/mach-versatile/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) source "arch/arm/mach-vexpress/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) source "arch/arm/mach-vt8500/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) source "arch/arm/mach-zx/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) source "arch/arm/mach-zynq/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) # ARMv7-M architecture
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) config ARCH_EFM32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) bool "Energy Micro efm32"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) depends on ARM_SINGLE_ARMV7M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) processors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) config ARCH_LPC18XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) bool "NXP LPC18xx/LPC43xx"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) depends on ARM_SINGLE_ARMV7M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) select ARCH_HAS_RESET_CONTROLLER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) select ARM_AMBA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) select CLKSRC_LPC32XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) select PINCTRL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) Support for NXP's LPC18xx Cortex-M3 and LPC43xx Cortex-M4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) high performance microcontrollers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) config ARCH_MPS2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) bool "ARM MPS2 platform"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) depends on ARM_SINGLE_ARMV7M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) select ARM_AMBA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) select CLKSRC_MPS2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) Support for Cortex-M Prototyping System (or V2M-MPS2) which comes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) with a range of available cores like Cortex-M3/M4/M7.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) Please, note that depends which Application Note is used memory map
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) for the platform may vary, so adjustment of RAM base might be needed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) # Definitions to make life easier
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) config ARCH_ACORN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) config PLAT_IOP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) config PLAT_ORION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) select CLKSRC_MMIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) select GENERIC_IRQ_CHIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) config PLAT_ORION_LEGACY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) select PLAT_ORION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) config PLAT_PXA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) config PLAT_VERSATILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) source "arch/arm/mm/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) config IWMMXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) bool "Enable iWMMXt support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) Enable support for iWMMXt context switching at run time if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) running on a CPU that supports it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) if !MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) source "arch/arm/Kconfig-nommu"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) config PJ4B_ERRATA_4742
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) bool "PJ4B Errata 4742: IDLE Wake Up Commands can Cause the CPU Core to Cease Operation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) depends on CPU_PJ4B && MACH_ARMADA_370
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) When coming out of either a Wait for Interrupt (WFI) or a Wait for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) Event (WFE) IDLE states, a specific timing sensitivity exists between
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) the retiring WFI/WFE instructions and the newly issued subsequent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) instructions. This sensitivity can result in a CPU hang scenario.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) Workaround:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) The software must insert either a Data Synchronization Barrier (DSB)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) or Data Memory Barrier (DMB) command immediately after the WFI/WFE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) config ARM_ERRATA_326103
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) depends on CPU_V6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) Executing a SWP instruction to read-only memory does not set bit 11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) of the FSR on the ARM 1136 prior to r1p0. This causes the kernel to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) treat the access as a read, preventing a COW from occurring and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) causing the faulting task to livelock.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) config ARM_ERRATA_411920
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) depends on CPU_V6 || CPU_V6K
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) Invalidation of the Instruction Cache operation can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) fail. This erratum is present in 1136 (before r1p4), 1156 and 1176.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) It does not affect the MPCore. This option enables the ARM Ltd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) recommended workaround.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) config ARM_ERRATA_430973
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) bool "ARM errata: Stale prediction on replaced interworking branch"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) This option enables the workaround for the 430973 Cortex-A8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) r1p* erratum. If a code sequence containing an ARM/Thumb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) interworking branch is replaced with another code sequence at the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) same virtual address, whether due to self-modifying code or virtual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) to physical address re-mapping, Cortex-A8 does not recover from the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) stale interworking branch prediction. This results in Cortex-A8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) executing the new code sequence in the incorrect ARM or Thumb state.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) The workaround enables the BTB/BTAC operations by setting ACTLR.IBE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) and also flushes the branch target cache at every context switch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) Note that setting specific bits in the ACTLR register may not be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) available in non-secure mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873) config ARM_ERRATA_458693
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) bool "ARM errata: Processor deadlock when a false hazard is created"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) depends on !ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) This option enables the workaround for the 458693 Cortex-A8 (r2p0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879) erratum. For very specific sequences of memory operations, it is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880) possible for a hazard condition intended for a cache line to instead
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) be incorrectly associated with a different cache line. This false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) hazard might then cause a processor deadlock. The workaround enables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) the L1 caching of the NEON accesses and disables the PLD instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) in the ACTLR register. Note that setting specific bits in the ACTLR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) register may not be available in non-secure mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) config ARM_ERRATA_460075
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) bool "ARM errata: Data written to the L2 cache can be overwritten with stale data"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) depends on !ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) This option enables the workaround for the 460075 Cortex-A8 (r2p0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) erratum. Any asynchronous access to the L2 cache may encounter a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) situation in which recent store transactions to the L2 cache are lost
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) and overwritten with stale memory contents from external memory. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896) workaround disables the write-allocate mode for the L2 cache via the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) ACTLR register. Note that setting specific bits in the ACTLR register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) may not be available in non-secure mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) config ARM_ERRATA_742230
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) bool "ARM errata: DMB operation may be faulty"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) depends on CPU_V7 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) depends on !ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) This option enables the workaround for the 742230 Cortex-A9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906) (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907) between two write operations may not ensure the correct visibility
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) ordering of the two writes. This workaround sets a specific bit in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) the diagnostic register of the Cortex-A9 which causes the DMB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) instruction to behave as a DSB, ensuring the correct behaviour of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) the two writes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) config ARM_ERRATA_742231
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914) bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) depends on CPU_V7 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) depends on !ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918) This option enables the workaround for the 742231 Cortex-A9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) (r2p0..r2p2) erratum. Under certain conditions, specific to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) Cortex-A9 MPCore micro-architecture, two CPUs working in SMP mode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) accessing some data located in the same cache line, may get corrupted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) data due to bad handling of the address hazard when the line gets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) replaced from one of the CPUs at the same time as another CPU is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924) accessing it. This workaround sets specific bits in the diagnostic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925) register of the Cortex-A9 which reduces the linefill issuing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) capabilities of the processor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) config ARM_ERRATA_643719
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) bool "ARM errata: LoUIS bit field in CLIDR register is incorrect"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) depends on CPU_V7 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933) This option enables the workaround for the 643719 Cortex-A9 (prior to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) r1p0) erratum. On affected cores the LoUIS bit field of the CLIDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935) register returns zero when it should return one. The workaround
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936) corrects this value, ensuring cache maintenance operations which use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937) it behave as intended and avoiding data corruption.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) config ARM_ERRATA_720789
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940) bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) This option enables the workaround for the 720789 Cortex-A9 (prior to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944) r2p0) erratum. A faulty ASID can be sent to the other CPUs for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945) broadcasted CP15 TLB maintenance operations TLBIASIDIS and TLBIMVAIS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) As a consequence of this erratum, some TLB entries which should be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947) invalidated are not, resulting in an incoherency in the system page
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) tables. The workaround changes the TLB flushing routines to invalidate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949) entries regardless of the ASID.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) config ARM_ERRATA_743622
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954) depends on !ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956) This option enables the workaround for the 743622 Cortex-A9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) (r2p*) erratum. Under very rare conditions, a faulty
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) optimisation in the Cortex-A9 Store Buffer may lead to data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959) corruption. This workaround sets a specific bit in the diagnostic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) register of the Cortex-A9 which disables the Store Buffer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) optimisation, preventing the defect from occurring. This has no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962) visible impact on the overall performance or power consumption of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) processor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) config ARM_ERRATA_751472
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) depends on !ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970) This option enables the workaround for the 751472 Cortex-A9 (prior
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) completion of a following broadcasted operation if the second
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) operation is received by a CPU before the ICIALLUIS has completed,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) potentially leading to corrupted entries in the cache or TLB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976) config ARM_ERRATA_754322
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) bool "ARM errata: possible faulty MMU translations following an ASID switch"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) This option enables the workaround for the 754322 Cortex-A9 (r2p*,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) r3p*) erratum. A speculative memory access may cause a page table walk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) which starts prior to an ASID switch but completes afterwards. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983) can populate the micro-TLB with a stale entry which may be hit with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) the new ASID. This workaround places two dsb instructions in the mm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) switching code so that no page table walks can cross the ASID switch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987) config ARM_ERRATA_754327
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) bool "ARM errata: no automatic Store Buffer drain"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989) depends on CPU_V7 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) This option enables the workaround for the 754327 Cortex-A9 (prior to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992) r2p0) erratum. The Store Buffer does not have any automatic draining
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993) mechanism and therefore a livelock may occur if an external agent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) continuously polls a memory location waiting to observe an update.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) This workaround defines cpu_relax() as smp_mb(), preventing correctly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996) written polling loops from denying visibility of updates to memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) config ARM_ERRATA_364296
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) bool "ARM errata: Possible cache data corruption with hit-under-miss enabled"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) depends on CPU_V6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) This options enables the workaround for the 364296 ARM1136
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) r0p2 erratum (possible cache data corruption with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) hit-under-miss enabled). It sets the undocumented bit 31 in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005) the auxiliary control register and the FI bit in the control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) register, thus disabling hit-under-miss without putting the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) processor into full low interrupt latency mode. ARM11MPCore
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) is not affected.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010) config ARM_ERRATA_764369
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) bool "ARM errata: Data cache line maintenance operation by MVA may not succeed"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) depends on CPU_V7 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) This option enables the workaround for erratum 764369
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) affecting Cortex-A9 MPCore with two or more processors (all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) current revisions). Under certain timing circumstances, a data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) cache line maintenance operation by MVA targeting an Inner
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) Shareable memory region may fail to proceed up to either the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) Point of Coherency or to the Point of Unification of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) system. This workaround adds a DSB instruction before the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) relevant cache maintenance functions and sets a specific bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) in the diagnostic control register of the SCU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) config ARM_ERRATA_775420
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) This option enables the workaround for the 775420 Cortex-A9 (r2p2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) r2p6,r2p8,r2p10,r3p0) erratum. In case a data cache maintenance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030) operation aborts with MMU exception, it might cause the processor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) to deadlock. This workaround puts DSB before executing ISB if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) an abort may occur on cache maintenance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034) config ARM_ERRATA_798181
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035) bool "ARM errata: TLBI/DSB failure on Cortex-A15"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) depends on CPU_V7 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) On Cortex-A15 (r0p0..r3p2) the TLBI*IS/DSB operations are not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) adequately shooting down all use of the old entries. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) option enables the Linux kernel workaround for this erratum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) which sends an IPI to the CPUs that are running the same ASID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) as the one being invalidated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) config ARM_ERRATA_773022
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045) bool "ARM errata: incorrect instructions may be executed from loop buffer"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) This option enables the workaround for the 773022 Cortex-A15
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) (up to r0p4) erratum. In certain rare sequences of code, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) loop buffer may deliver incorrect instructions. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) workaround disables the loop buffer to avoid the erratum.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053) config ARM_ERRATA_818325_852422
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) bool "ARM errata: A12: some seqs of opposed cond code instrs => deadlock or corruption"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057) This option enables the workaround for:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058) - Cortex-A12 818325: Execution of an UNPREDICTABLE STR or STM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) instruction might deadlock. Fixed in r0p1.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) - Cortex-A12 852422: Execution of a sequence of instructions might
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) lead to either a data corruption or a CPU deadlock. Not fixed in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) any Cortex-A12 cores yet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) This workaround for all both errata involves setting bit[12] of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) Feature Register. This bit disables an optimisation applied to a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) sequence of 2 instructions that use opposing condition codes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067) config ARM_ERRATA_821420
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068) bool "ARM errata: A12: sequence of VMOV to core registers might lead to a dead lock"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) This option enables the workaround for the 821420 Cortex-A12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) (all revs) erratum. In very rare timing conditions, a sequence
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073) of VMOV to Core registers instructions, for which the second
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074) one is in the shadow of a branch or abort, can lead to a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075) deadlock when the VMOV instructions are issued out-of-order.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) config ARM_ERRATA_825619
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) bool "ARM errata: A12: DMB NSHST/ISHST mixed ... might cause deadlock"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081) This option enables the workaround for the 825619 Cortex-A12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) (all revs) erratum. Within rare timing constraints, executing a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) DMB NSHST or DMB ISHST instruction followed by a mix of Cacheable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084) and Device/Strongly-Ordered loads and stores might cause deadlock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086) config ARM_ERRATA_857271
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087) bool "ARM errata: A12: CPU might deadlock under some very rare internal conditions"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) This option enables the workaround for the 857271 Cortex-A12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) (all revs) erratum. Under very rare timing conditions, the CPU might
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092) hang. The workaround is expected to have a < 1% performance impact.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) config ARM_ERRATA_852421
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) bool "ARM errata: A17: DMB ST might fail to create order between stores"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098) This option enables the workaround for the 852421 Cortex-A17
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) (r1p0, r1p1, r1p2) erratum. Under very rare timing conditions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) execution of a DMB ST instruction might fail to properly order
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) stores from GroupA and stores from GroupB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) config ARM_ERRATA_852423
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104) bool "ARM errata: A17: some seqs of opposed cond code instrs => deadlock or corruption"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107) This option enables the workaround for:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) - Cortex-A17 852423: Execution of a sequence of instructions might
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109) lead to either a data corruption or a CPU deadlock. Not fixed in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110) any Cortex-A17 cores yet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) This is identical to Cortex-A12 erratum 852422. It is a separate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112) config option from the A12 erratum due to the way errata are checked
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) for and handled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115) config ARM_ERRATA_857272
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) bool "ARM errata: A17: CPU might deadlock under some very rare internal conditions"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) This option enables the workaround for the 857272 Cortex-A17 erratum.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) This erratum is not known to be fixed in any A17 revision.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) This is identical to Cortex-A12 erratum 857271. It is a separate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) config option from the A12 erratum due to the way errata are checked
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) for and handled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127) source "arch/arm/common/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) menu "Bus support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131) config ISA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) Find out whether you have ISA slots on your motherboard. ISA is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) name of a bus system, i.e. the way the CPU talks to the other stuff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) inside your box. Other bus systems are PCI, EISA, MicroChannel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) (MCA) or VESA. ISA is an older system, now being displaced by PCI;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138) newer boards don't support it. If you have ISA, say Y, otherwise N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140) # Select ISA DMA controller support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) config ISA_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) select ISA_DMA_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) # Select ISA DMA interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146) config ISA_DMA_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) config PCI_NANOENGINE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) bool "BSE nanoEngine PCI support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151) depends on SA1100_NANOENGINE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) Enable PCI on the BSE nanoEngine board.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) config ARM_ERRATA_814220
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156) bool "ARM errata: Cache maintenance by set/way operations can execute out of order"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) The v7 ARM states that all cache and branch predictor maintenance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160) operations that do not specify an address execute, relative to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) each other, in program order.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162) However, because of this erratum, an L2 set/way cache maintenance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163) operation can overtake an L1 set/way cache maintenance operation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164) This ERRATA only affected the Cortex-A7 and present in r0p2, r0p3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) r0p4, r0p5.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169) menu "Kernel Features"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171) config HAVE_SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174) This option should be selected by machines which have an SMP-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) capable CPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177) The only effect of this option is to make the SMP-related
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178) options available to the user for configuration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180) config SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181) bool "Symmetric Multi-Processing"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) depends on CPU_V6K || CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183) depends on GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) depends on HAVE_SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) depends on MMU || ARM_MPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186) select IRQ_WORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) This enables support for systems with more than one CPU. If you have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189) a system with only one CPU, say N. If you have a system with more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190) than one CPU, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192) If you say N here, the kernel will run on uni- and multiprocessor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193) machines, but will use only one CPU of a multiprocessor machine. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194) you say Y here, the kernel will run on many, but not all,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) uniprocessor machines. On a uniprocessor machine, the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) will run faster if you say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) See also <file:Documentation/x86/i386/IO-APIC.rst>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199) <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200) <http://tldp.org/HOWTO/SMP-HOWTO.html>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202) If you don't know what to do here, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204) config SMP_ON_UP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205) bool "Allow booting SMP kernel on uniprocessor systems"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206) depends on SMP && !XIP_KERNEL && MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209) SMP kernels contain instructions which fail on non-SMP processors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) Enabling this option allows the kernel to modify itself to make
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211) these instructions safe. Disabling it allows about 1K of space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) savings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214) If you don't know what to do here, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) config ARM_CPU_TOPOLOGY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217) bool "Support cpu topology definition"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218) depends on SMP && CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221) Support ARM cpu topology definition. The MPIDR register defines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222) affinity between processors which is then used to describe the cpu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223) topology of an ARM System.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225) config SCHED_MC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) bool "Multi-core scheduler support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) depends on ARM_CPU_TOPOLOGY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229) Multi-core scheduler support improves the CPU scheduler's decision
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230) making when dealing with multi-core CPU chips at a cost of slightly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) increased overhead in some places. If unsure say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233) config SCHED_SMT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234) bool "SMT scheduler support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) depends on ARM_CPU_TOPOLOGY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237) Improves the CPU scheduler's decision making when dealing with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238) MultiThreading at a cost of slightly increased overhead in some
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239) places. If unsure say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) config HAVE_ARM_SCU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244) This option enables support for the ARM snoop control unit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246) config HAVE_ARM_ARCH_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247) bool "Architected timer support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248) depends on CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249) select ARM_ARCH_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251) This option enables support for the ARM architected timer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) config HAVE_ARM_TWD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256) This options enables support for the ARM timer and watchdog unit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258) config MCPM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259) bool "Multi-Cluster Power Management"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) depends on CPU_V7 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262) This option provides the common power management infrastructure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) for (multi-)cluster based systems, such as big.LITTLE based
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264) systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266) config MCPM_QUAD_CLUSTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) depends on MCPM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270) To avoid wasting resources unnecessarily, MCPM only supports up
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271) to 2 clusters by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272) Platforms with 3 or 4 clusters that use MCPM must select this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273) option to allow the additional clusters to be managed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275) config BIG_LITTLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) bool "big.LITTLE support (Experimental)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) depends on CPU_V7 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278) select MCPM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) This option enables support selections for the big.LITTLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281) system architecture.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283) config BL_SWITCHER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284) bool "big.LITTLE switcher support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285) depends on BIG_LITTLE && MCPM && HOTPLUG_CPU && ARM_GIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286) select CPU_PM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288) The big.LITTLE "switcher" provides the core functionality to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289) transparently handle transition between a cluster of A15's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290) and a cluster of A7's in a big.LITTLE system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292) config BL_SWITCHER_DUMMY_IF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293) tristate "Simple big.LITTLE switcher user interface"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294) depends on BL_SWITCHER && DEBUG_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296) This is a simple and dummy char dev interface to control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297) the big.LITTLE switcher core code. It is meant for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) debugging purposes only.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301) prompt "Memory split"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303) default VMSPLIT_3G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) Select the desired split between kernel and user memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307) If you are not absolutely sure what you are doing, leave this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308) option alone!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310) config VMSPLIT_3G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311) bool "3G/1G user/kernel split"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) config VMSPLIT_3G_OPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313) depends on !ARM_LPAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) bool "3G/1G user/kernel split (for full 1G low memory)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) config VMSPLIT_2G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) bool "2G/2G user/kernel split"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317) config VMSPLIT_1G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) bool "1G/3G user/kernel split"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321) config PAGE_OFFSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) hex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) default PHYS_OFFSET if !MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324) default 0x40000000 if VMSPLIT_1G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325) default 0x80000000 if VMSPLIT_2G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326) default 0xB0000000 if VMSPLIT_3G_OPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) default 0xC0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329) config NR_CPUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) int "Maximum number of CPUs (2-32)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) range 2 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) default "4"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335) config HOTPLUG_CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336) bool "Support for hot-pluggable CPUs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337) depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338) select GENERIC_IRQ_MIGRATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340) Say Y here to experiment with turning CPUs off and on. CPUs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341) can be controlled through /sys/devices/system/cpu.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343) config ARM_PSCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344) bool "Support for the ARM Power State Coordination Interface (PSCI)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345) depends on HAVE_ARM_SMCCC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) select ARM_PSCI_FW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) Say Y here if you want Linux to communicate with system firmware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349) implementing the PSCI specification for CPU-centric power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350) management operations described in ARM document number ARM DEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351) 0022A ("Power State Coordination Interface System Software on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) ARM processors").
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354) # The GPIO number here must be sorted by descending number. In case of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355) # a multiplatform kernel, we just want the highest value required by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) # selected platforms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357) config ARCH_NR_GPIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359) default 2048 if ARCH_SOCFPGA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) default 1024 if ARCH_BRCMSTB || ARCH_RENESAS || ARCH_TEGRA || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361) ARCH_ZYNQ || ARCH_ASPEED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362) default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363) SOC_DRA7XX || ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) default 416 if ARCH_SUNXI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365) default 392 if ARCH_U8500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366) default 352 if ARCH_VT8500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) default 288 if ARCH_ROCKCHIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368) default 264 if MACH_H4700
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) default 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) Maximum number of GPIOs in the system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373) If unsure, leave the default value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375) config HZ_FIXED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377) default 200 if ARCH_EBSA110
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378) default 128 if SOC_AT91RM9200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) default 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1381) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1382) depends on HZ_FIXED = 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1383) prompt "Timer frequency"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1384)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1385) config HZ_100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1386) bool "100 Hz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1387)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1388) config HZ_200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1389) bool "200 Hz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1390)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1391) config HZ_250
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1392) bool "250 Hz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1393)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1394) config HZ_300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1395) bool "300 Hz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1396)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1397) config HZ_500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1398) bool "500 Hz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1399)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1400) config HZ_1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1401) bool "1000 Hz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1402)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1403) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1404)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1405) config HZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1406) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1407) default HZ_FIXED if HZ_FIXED != 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1408) default 100 if HZ_100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1409) default 200 if HZ_200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1410) default 250 if HZ_250
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1411) default 300 if HZ_300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1412) default 500 if HZ_500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1413) default 1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1414)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1415) config SCHED_HRTICK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1416) def_bool HIGH_RES_TIMERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1418) config THUMB2_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1419) bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1420) depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1421) default y if CPU_THUMBONLY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1422) select ARM_UNWIND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1423) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1424) By enabling this option, the kernel will be compiled in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1425) Thumb-2 mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1426)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1427) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1428)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1429) config ARM_PATCH_IDIV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1430) bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1431) depends on CPU_32v7 && !XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1432) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1433) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1434) The ARM compiler inserts calls to __aeabi_idiv() and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1435) __aeabi_uidiv() when it needs to perform division on signed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1436) and unsigned integers. Some v7 CPUs have support for the sdiv
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1437) and udiv instructions that can be used to implement those
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1438) functions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1440) Enabling this option allows the kernel to modify itself to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1441) replace the first two instructions of these library functions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1442) with the sdiv or udiv plus "bx lr" instructions when the CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1443) it is running on supports them. Typically this will be faster
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1444) and less power intensive than running the original library
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1445) code to do integer division.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1446)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1447) config AEABI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1448) bool "Use the ARM EABI to compile the kernel" if !CPU_V7 && \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1449) !CPU_V7M && !CPU_V6 && !CPU_V6K && !CC_IS_CLANG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1450) default CPU_V7 || CPU_V7M || CPU_V6 || CPU_V6K || CC_IS_CLANG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1451) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1452) This option allows for the kernel to be compiled using the latest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1453) ARM ABI (aka EABI). This is only useful if you are using a user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1454) space environment that is also compiled with EABI.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1455)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1456) Since there are major incompatibilities between the legacy ABI and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1457) EABI, especially with regard to structure member alignment, this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1458) option also changes the kernel syscall calling convention to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1459) disambiguate both ABIs and allow for backward compatibility support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1460) (selected with CONFIG_OABI_COMPAT).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1461)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1462) To use this you need GCC version 4.0.0 or later.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1464) config OABI_COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1465) bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1466) depends on AEABI && !THUMB2_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1467) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1468) This option preserves the old syscall interface along with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1469) new (ARM EABI) one. It also provides a compatibility layer to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1470) intercept syscalls that have structure arguments which layout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1471) in memory differs between the legacy ABI and the new ARM EABI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1472) (only for non "thumb" binaries). This option adds a tiny
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1473) overhead to all syscalls and produces a slightly larger kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1474)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1475) The seccomp filter system will not be available when this is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1476) selected, since there is no way yet to sensibly distinguish
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1477) between calling conventions during filtering.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1478)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1479) If you know you'll be using only pure EABI user space then you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1480) can say N here. If this option is not selected and you attempt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1481) to execute a legacy ABI binary then the result will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1482) UNPREDICTABLE (in fact it can be predicted that it won't work
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1483) at all). If in doubt say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1484)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1485) config ARCH_HAS_HOLES_MEMORYMODEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1486) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1487)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1488) config ARCH_SELECT_MEMORY_MODEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1489) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1490)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1491) config ARCH_FLATMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1492) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1493)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1494) config ARCH_SPARSEMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1495) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1496) select SPARSEMEM_STATIC if SPARSEMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1497)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1498) config HAVE_ARCH_PFN_VALID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1499) def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1500)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1501) config HIGHMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1502) bool "High Memory Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1503) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1504) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1505) The address space of ARM processors is only 4 Gigabytes large
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1506) and it has to accommodate user address space, kernel address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1507) space as well as some memory mapped IO. That means that, if you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1508) have a large amount of physical memory and/or IO, not all of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1509) memory can be "permanently mapped" by the kernel. The physical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1510) memory that is not permanently mapped is called "high memory".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1511)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1512) Depending on the selected kernel/user memory split, minimum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1513) vmalloc space and actual amount of RAM, you may not need this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1514) option which should result in a slightly faster kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1515)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1516) If unsure, say n.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1517)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1518) config HIGHPTE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1519) bool "Allocate 2nd-level pagetables from highmem" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1520) depends on HIGHMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1521) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1522) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1523) The VM uses one page of physical memory for each page table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1524) For systems with a lot of processes, this can use a lot of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1525) precious low memory, eventually leading to low memory being
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1526) consumed by page tables. Setting this option will allow
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1527) user-space 2nd level page tables to reside in high memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1528)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1529) config CPU_SW_DOMAIN_PAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1530) bool "Enable use of CPU domains to implement privileged no-access"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1531) depends on MMU && !ARM_LPAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1532) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1533) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1534) Increase kernel security by ensuring that normal kernel accesses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1535) are unable to access userspace addresses. This can help prevent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1536) use-after-free bugs becoming an exploitable privilege escalation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1537) by ensuring that magic values (such as LIST_POISON) will always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1538) fault when dereferenced.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1539)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1540) CPUs with low-vector mappings use a best-efforts implementation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1541) Their lower 1MB needs to remain accessible for the vectors, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1542) the remainder of userspace will become appropriately inaccessible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1543)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1544) config HW_PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1545) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1546) depends on ARM_PMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1547)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1548) config SYS_SUPPORTS_HUGETLBFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1549) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1550) depends on ARM_LPAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1551)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1552) config HAVE_ARCH_TRANSPARENT_HUGEPAGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1553) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1554) depends on ARM_LPAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1555)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1556) config ARCH_WANT_GENERAL_HUGETLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1557) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1558)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1559) config ARM_MODULE_PLTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1560) bool "Use PLTs to allow module memory to spill over into vmalloc area"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1561) depends on MODULES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1562) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1563) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1564) Allocate PLTs when loading modules so that jumps and calls whose
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1565) targets are too far away for their relative offsets to be encoded
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1566) in the instructions themselves can be bounced via veneers in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1567) module's PLT. This allows modules to be allocated in the generic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1568) vmalloc area after the dedicated module memory area has been
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1569) exhausted. The modules will use slightly more memory, but after
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1570) rounding up to page size, the actual memory footprint is usually
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1571) the same.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1572)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1573) Disabling this is usually safe for small single-platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1574) configurations. If unsure, say y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1575)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1576) config FORCE_MAX_ZONEORDER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1577) int "Maximum zone order"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1578) default "12" if SOC_AM33XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1579) default "9" if SA1111 || ARCH_EFM32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1580) default "11"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1581) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1582) The kernel memory allocator divides physically contiguous memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1583) blocks into "zones", where each zone is a power of two number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1584) pages. This option selects the largest power of two that the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1585) keeps in the memory allocator. If you need to allocate very large
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1586) blocks of physically contiguous memory, then you may need to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1587) increase this value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1588)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1589) This config option is actually maximum order plus one. For example,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1590) a value of 11 means that the largest free memory block is 2^10 pages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1591)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1592) config ALIGNMENT_TRAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1593) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1594) depends on CPU_CP15_MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1595) default y if !ARCH_EBSA110
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1596) select HAVE_PROC_CPU if PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1597) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1598) ARM processors cannot fetch/store information which is not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1599) naturally aligned on the bus, i.e., a 4 byte fetch must start at an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1600) address divisible by 4. On 32-bit ARM processors, these non-aligned
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1601) fetch/store instructions will be emulated in software if you say
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1602) here, which has a severe performance impact. This is necessary for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1603) correct operation of some network protocols. With an IP-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1604) configuration it is safe to say N, otherwise say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1605)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1606) config UACCESS_WITH_MEMCPY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1607) bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1608) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1609) default y if CPU_FEROCEON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1610) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1611) Implement faster copy_to_user and clear_user methods for CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1612) cores where a 8-word STM instruction give significantly higher
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1613) memory write throughput than a sequence of individual 32bit stores.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1614)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1615) A possible side effect is a slight increase in scheduling latency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1616) between threads sharing the same address space if they invoke
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1617) such copy operations with large buffers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1618)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1619) However, if the CPU data cache is using a write-allocate mode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1620) this option is unlikely to provide any performance gain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1621)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1622) config PARAVIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1623) bool "Enable paravirtualization code"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1624) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1625) This changes the kernel so it can modify itself when it is run
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1626) under a hypervisor, potentially improving performance significantly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1627) over full virtualization.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1628)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1629) config PARAVIRT_TIME_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1630) bool "Paravirtual steal time accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1631) select PARAVIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1632) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1633) Select this option to enable fine granularity task steal time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1634) accounting. Time spent executing other tasks in parallel with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1635) the current vCPU is discounted from the vCPU power. To account for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1636) that, there can be a small performance impact.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1637)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1638) If in doubt, say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1639)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1640) config XEN_DOM0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1641) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1642) depends on XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1643)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1644) config XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1645) bool "Xen guest support on ARM"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1646) depends on ARM && AEABI && OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1647) depends on CPU_V7 && !CPU_V6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1648) depends on !GENERIC_ATOMIC64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1649) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1650) select ARCH_DMA_ADDR_T_64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1651) select ARM_PSCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1652) select SWIOTLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1653) select SWIOTLB_XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1654) select PARAVIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1655) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1656) Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1657)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1658) config STACKPROTECTOR_PER_TASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1659) bool "Use a unique stack canary value for each task"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1660) depends on GCC_PLUGINS && STACKPROTECTOR && SMP && !XIP_DEFLATED_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1661) select GCC_PLUGIN_ARM_SSP_PER_TASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1662) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1663) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1664) Due to the fact that GCC uses an ordinary symbol reference from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1665) which to load the value of the stack canary, this value can only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1666) change at reboot time on SMP systems, and all tasks running in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1667) kernel's address space are forced to use the same canary value for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1668) the entire duration that the system is up.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1669)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1670) Enable this option to switch to a different method that uses a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1671) different canary value for each task.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1673) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1674)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1675) menu "Boot options"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1676)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1677) config USE_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1678) bool "Flattened Device Tree support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1679) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1680) select OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1681) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1682) Include support for flattened device tree machine descriptions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1683)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1684) config ATAGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1685) bool "Support for the traditional ATAGS boot data passing" if USE_OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1686) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1687) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1688) This is the traditional way of passing data to the kernel at boot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1689) time. If you are solely relying on the flattened device tree (or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1690) the ARM_ATAG_DTB_COMPAT option) then you may unselect this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1691) to remove ATAGS support from your kernel binary. If unsure,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1692) leave this to y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1693)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1694) config DEPRECATED_PARAM_STRUCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1695) bool "Provide old way to pass kernel parameters"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1696) depends on ATAGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1697) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1698) This was deprecated in 2001 and announced to live on for 5 years.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1699) Some old boot loaders still use this way.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1700)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1701) # Compressed boot loader in ROM. Yes, we really want to ask about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1702) # TEXT and BSS so we preserve their values in the config files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1703) config ZBOOT_ROM_TEXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1704) hex "Compressed ROM boot loader base address"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1705) default 0x0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1706) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1707) The physical address at which the ROM-able zImage is to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1708) placed in the target. Platforms which normally make use of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1709) ROM-able zImage formats normally set this to a suitable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1710) value in their defconfig file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1711)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1712) If ZBOOT_ROM is not enabled, this has no effect.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1713)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1714) config ZBOOT_ROM_BSS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1715) hex "Compressed ROM boot loader BSS address"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1716) default 0x0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1717) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1718) The base address of an area of read/write memory in the target
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1719) for the ROM-able zImage which must be available while the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1720) decompressor is running. It must be large enough to hold the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1721) entire decompressed kernel plus an additional 128 KiB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1722) Platforms which normally make use of ROM-able zImage formats
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1723) normally set this to a suitable value in their defconfig file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1724)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1725) If ZBOOT_ROM is not enabled, this has no effect.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1726)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1727) config ZBOOT_ROM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1728) bool "Compressed boot loader in ROM/flash"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1729) depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1730) depends on !ARM_APPENDED_DTB && !XIP_KERNEL && !AUTO_ZRELADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1731) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1732) Say Y here if you intend to execute your compressed kernel image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1733) (zImage) directly from ROM or flash. If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1734)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1735) config ARM_APPENDED_DTB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1736) bool "Use appended device tree blob to zImage (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1737) depends on OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1738) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1739) With this option, the boot code will look for a device tree binary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1740) (DTB) appended to zImage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1741) (e.g. cat zImage <filename>.dtb > zImage_w_dtb).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1742)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1743) This is meant as a backward compatibility convenience for those
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1744) systems with a bootloader that can't be upgraded to accommodate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1745) the documented boot protocol using a device tree.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1746)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1747) Beware that there is very little in terms of protection against
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1748) this option being confused by leftover garbage in memory that might
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1749) look like a DTB header after a reboot if no actual DTB is appended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1750) to zImage. Do not leave this option active in a production kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1751) if you don't intend to always append a DTB. Proper passing of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1752) location into r2 of a bootloader provided DTB is always preferable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1753) to this option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1754)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1755) config ARM_ATAG_DTB_COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1756) bool "Supplement the appended DTB with traditional ATAG information"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1757) depends on ARM_APPENDED_DTB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1758) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1759) Some old bootloaders can't be updated to a DTB capable one, yet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1760) they provide ATAGs with memory configuration, the ramdisk address,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1761) the kernel cmdline string, etc. Such information is dynamically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1762) provided by the bootloader and can't always be stored in a static
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1763) DTB. To allow a device tree enabled kernel to be used with such
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1764) bootloaders, this option allows zImage to extract the information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1765) from the ATAG list and store it at run time into the appended DTB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1766)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1767) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1768) prompt "Kernel command line type" if ARM_ATAG_DTB_COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1769) default ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1770)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1771) config ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1772) bool "Use bootloader kernel arguments if available"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1773) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1774) Uses the command-line options passed by the boot loader instead of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1775) the device tree bootargs property. If the boot loader doesn't provide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1776) any, the device tree bootargs property will be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1777)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1778) config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1779) bool "Extend with bootloader kernel arguments"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1780) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1781) The command-line arguments provided by the boot loader will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1782) appended to the the device tree bootargs property.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1783)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1784) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1785)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1786) config CMDLINE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1787) string "Default kernel command string"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1788) default ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1789) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1790) On some architectures (EBSA110 and CATS), there is currently no way
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1791) for the boot loader to pass arguments to the kernel. For these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1792) architectures, you should supply some command-line options at build
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1793) time by entering them here. As a minimum, you should specify the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1794) memory size and the root device (e.g., mem=64M root=/dev/nfs).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1795)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1796) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1797) prompt "Kernel command line type" if CMDLINE != ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1798) default CMDLINE_FROM_BOOTLOADER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1799) depends on ATAGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1801) config CMDLINE_FROM_BOOTLOADER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1802) bool "Use bootloader kernel arguments if available"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1803) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1804) Uses the command-line options passed by the boot loader. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1805) the boot loader doesn't provide any, the default kernel command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1806) string provided in CMDLINE will be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1807)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1808) config CMDLINE_EXTEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1809) bool "Extend bootloader kernel arguments"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1810) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1811) The command-line arguments provided by the boot loader will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1812) appended to the default kernel command string.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1813)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1814) config CMDLINE_FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1815) bool "Always use the default kernel command string"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1816) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1817) Always use the default kernel command string, even if the boot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1818) loader passes other arguments to the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1819) This is useful if you cannot or don't want to change the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1820) command-line options your boot loader passes to the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1821) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1822)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1823) config XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1824) bool "Kernel Execute-In-Place from ROM"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1825) depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1826) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1827) Execute-In-Place allows the kernel to run from non-volatile storage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1828) directly addressable by the CPU, such as NOR flash. This saves RAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1829) space since the text section of the kernel is not loaded from flash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1830) to RAM. Read-write sections, such as the data section and stack,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1831) are still copied to RAM. The XIP kernel is not compressed since
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1832) it has to run directly from flash, so it will take more space to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1833) store it. The flash address used to link the kernel object files,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1834) and for storing it, is configuration dependent. Therefore, if you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1835) say Y here, you must know the proper physical address where to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1836) store the kernel image depending on your own flash memory usage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1837)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1838) Also note that the make target becomes "make xipImage" rather than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1839) "make zImage" or "make Image". The final kernel binary to put in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1840) ROM memory will be arch/arm/boot/xipImage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1841)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1842) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1843)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1844) config XIP_PHYS_ADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1845) hex "XIP Kernel Physical Location"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1846) depends on XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1847) default "0x00080000"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1848) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1849) This is the physical address in your flash memory the kernel will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1850) be linked for and stored to. This address is dependent on your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1851) own flash usage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1852)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1853) config XIP_DEFLATED_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1854) bool "Store kernel .data section compressed in ROM"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1855) depends on XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1856) select ZLIB_INFLATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1857) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1858) Before the kernel is actually executed, its .data section has to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1859) copied to RAM from ROM. This option allows for storing that data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1860) in compressed form and decompressed to RAM rather than merely being
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1861) copied, saving some precious ROM space. A possible drawback is a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1862) slightly longer boot delay.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1863)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1864) config KEXEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1865) bool "Kexec system call (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1866) depends on (!SMP || PM_SLEEP_SMP)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1867) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1868) select KEXEC_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1869) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1870) kexec is a system call that implements the ability to shutdown your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1871) current kernel, and to start another kernel. It is like a reboot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1872) but it is independent of the system firmware. And like a reboot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1873) you can start any kernel with it, not just Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1874)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1875) It is an ongoing process to be certain the hardware in a machine
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1876) is properly shutdown, so do not be surprised if this code does not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1877) initially work for you.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1878)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1879) config ATAGS_PROC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1880) bool "Export atags in procfs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1881) depends on ATAGS && KEXEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1882) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1883) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1884) Should the atags used to boot the kernel be exported in an "atags"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1885) file in procfs. Useful with kexec.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1886)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1887) config CRASH_DUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1888) bool "Build kdump crash kernel (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1889) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1890) Generate crash dump after being started by kexec. This should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1891) be normally only set in special crash dump kernels which are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1892) loaded in the main kernel with kexec-tools into a specially
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1893) reserved region and then later executed after a crash by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1894) kdump/kexec. The crash dump kernel must be compiled to a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1895) memory address not used by the main kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1896)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1897) For more details see Documentation/admin-guide/kdump/kdump.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1898)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1899) config AUTO_ZRELADDR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1900) bool "Auto calculation of the decompressed kernel image address"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1901) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1902) ZRELADDR is the physical address where the decompressed kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1903) image will be placed. If AUTO_ZRELADDR is selected, the address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1904) will be determined at run-time by masking the current IP with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1905) 0xf8000000. This assumes the zImage being placed in the first 128MB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1906) from start of memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1907)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1908) config EFI_STUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1909) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1910)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1911) config EFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1912) bool "UEFI runtime support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1913) depends on OF && !CPU_BIG_ENDIAN && MMU && AUTO_ZRELADDR && !XIP_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1914) select UCS2_STRING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1915) select EFI_PARAMS_FROM_FDT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1916) select EFI_STUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1917) select EFI_GENERIC_STUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1918) select EFI_RUNTIME_WRAPPERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1919) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1920) This option provides support for runtime services provided
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1921) by UEFI firmware (such as non-volatile variables, realtime
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1922) clock, and platform reset). A UEFI stub is also provided to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1923) allow the kernel to be booted as an EFI application. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1924) is only useful for kernels that may run on systems that have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1925) UEFI firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1926)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1927) config DMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1928) bool "Enable support for SMBIOS (DMI) tables"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1929) depends on EFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1930) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1931) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1932) This enables SMBIOS/DMI feature for systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1933)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1934) This option is only useful on systems that have UEFI firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1935) However, even with this option, the resultant kernel should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1936) continue to boot on existing non-UEFI platforms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1937)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1938) NOTE: This does *NOT* enable or encourage the use of DMI quirks,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1939) i.e., the the practice of identifying the platform via DMI to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1940) decide whether certain workarounds for buggy hardware and/or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1941) firmware need to be enabled. This would require the DMI subsystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1942) to be enabled much earlier than we do on ARM, which is non-trivial.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1943)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1944) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1945)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1946) menu "CPU Power Management"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1947)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1948) source "drivers/cpufreq/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1949)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1950) source "drivers/cpuidle/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1951)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1952) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1953)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1954) menu "Floating point emulation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1955)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1956) comment "At least one emulation must be selected"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1957)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1958) config FPE_NWFPE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1959) bool "NWFPE math emulation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1960) depends on (!AEABI || OABI_COMPAT) && !THUMB2_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1961) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1962) Say Y to include the NWFPE floating point emulator in the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1963) This is necessary to run most binaries. Linux does not currently
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1964) support floating point hardware so you need to say Y here even if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1965) your machine has an FPA or floating point co-processor podule.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1966)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1967) You may say N here if you are going to load the Acorn FPEmulator
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1968) early in the bootup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1969)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1970) config FPE_NWFPE_XP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1971) bool "Support extended precision"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1972) depends on FPE_NWFPE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1973) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1974) Say Y to include 80-bit support in the kernel floating-point
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1975) emulator. Otherwise, only 32 and 64-bit support is compiled in.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1976) Note that gcc does not generate 80-bit operations by default,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1977) so in most cases this option only enlarges the size of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1978) floating point emulator without any good reason.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1979)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1980) You almost surely want to say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1981)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1982) config FPE_FASTFPE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1983) bool "FastFPE math emulation (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1984) depends on (!AEABI || OABI_COMPAT) && !CPU_32v3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1985) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1986) Say Y here to include the FAST floating point emulator in the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1987) This is an experimental much faster emulator which now also has full
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1988) precision for the mantissa. It does not support any exceptions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1989) It is very simple, and approximately 3-6 times faster than NWFPE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1990)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1991) It should be sufficient for most programs. It may be not suitable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1992) for scientific calculations, but you have to check this for yourself.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1993) If you do not feel you need a faster FP emulation you should better
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1994) choose NWFPE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1995)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1996) config VFP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1997) bool "VFP-format floating point maths"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1998) depends on CPU_V6 || CPU_V6K || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1999) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2000) Say Y to include VFP support code in the kernel. This is needed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2001) if your hardware includes a VFP unit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2003) Please see <file:Documentation/arm/vfp/release-notes.rst> for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2004) release notes and additional status information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2006) Say N if your target does not have VFP hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2007)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2008) config VFPv3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2009) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2010) depends on VFP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2011) default y if CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2012)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2013) config NEON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2014) bool "Advanced SIMD (NEON) Extension support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2015) depends on VFPv3 && CPU_V7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2016) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2017) Say Y to include support code for NEON, the ARMv7 Advanced SIMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2018) Extension.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2019)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2020) config KERNEL_MODE_NEON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2021) bool "Support for NEON in kernel mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2022) depends on NEON && AEABI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2023) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2024) Say Y to include support for NEON in kernel mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2025)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2026) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2027)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2028) menu "Power management options"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2029)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2030) source "kernel/power/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2031)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2032) config ARCH_SUSPEND_POSSIBLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2033) depends on CPU_ARM920T || CPU_ARM926T || CPU_FEROCEON || CPU_SA1100 || \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2034) CPU_V6 || CPU_V6K || CPU_V7 || CPU_V7M || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2035) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2036)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2037) config ARM_CPU_SUSPEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2038) def_bool PM_SLEEP || BL_SWITCHER || ARM_PSCI_FW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2039) depends on ARCH_SUSPEND_POSSIBLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2041) config ARCH_HIBERNATION_POSSIBLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2042) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2043) depends on MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2044) default y if ARCH_SUSPEND_POSSIBLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2045)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2046) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2047)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2048) source "drivers/firmware/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2049)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2050) if CRYPTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2051) source "arch/arm/crypto/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2052) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2053)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2054) source "arch/arm/Kconfig.assembler"