18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ciconfig ARM 38c2ecf20Sopenharmony_ci bool 48c2ecf20Sopenharmony_ci default y 58c2ecf20Sopenharmony_ci select ARCH_32BIT_OFF_T 68c2ecf20Sopenharmony_ci select ARCH_HAS_BINFMT_FLAT 78c2ecf20Sopenharmony_ci select ARCH_HAS_CPU_FINALIZE_INIT if MMU 88c2ecf20Sopenharmony_ci select ARCH_HAS_DEBUG_VIRTUAL if MMU 98c2ecf20Sopenharmony_ci select ARCH_HAS_DEVMEM_IS_ALLOWED 108c2ecf20Sopenharmony_ci select ARCH_HAS_DMA_WRITE_COMBINE if !ARM_DMA_MEM_BUFFERABLE 118c2ecf20Sopenharmony_ci select ARCH_HAS_ELF_RANDOMIZE 128c2ecf20Sopenharmony_ci select ARCH_HAS_FORTIFY_SOURCE 138c2ecf20Sopenharmony_ci select ARCH_HAS_KEEPINITRD 148c2ecf20Sopenharmony_ci select ARCH_HAS_KCOV 158c2ecf20Sopenharmony_ci select ARCH_HAS_MEMBARRIER_SYNC_CORE 168c2ecf20Sopenharmony_ci select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE 178c2ecf20Sopenharmony_ci select ARCH_HAS_PTE_SPECIAL if ARM_LPAE 188c2ecf20Sopenharmony_ci select ARCH_HAS_PHYS_TO_DMA 198c2ecf20Sopenharmony_ci select ARCH_HAS_SETUP_DMA_OPS 208c2ecf20Sopenharmony_ci select ARCH_HAS_SET_MEMORY 218c2ecf20Sopenharmony_ci select ARCH_HAS_STRICT_KERNEL_RWX if MMU && !XIP_KERNEL 228c2ecf20Sopenharmony_ci select ARCH_HAS_STRICT_MODULE_RWX if MMU 238c2ecf20Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_DEVICE if SWIOTLB 248c2ecf20Sopenharmony_ci select ARCH_HAS_SYNC_DMA_FOR_CPU if SWIOTLB 258c2ecf20Sopenharmony_ci select ARCH_HAS_TEARDOWN_DMA_OPS if MMU 268c2ecf20Sopenharmony_ci select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST 278c2ecf20Sopenharmony_ci select ARCH_HAVE_CUSTOM_GPIO_H 288c2ecf20Sopenharmony_ci select ARCH_HAS_GCOV_PROFILE_ALL 298c2ecf20Sopenharmony_ci select ARCH_KEEP_MEMBLOCK 308c2ecf20Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_PARPORT 318c2ecf20Sopenharmony_ci select ARCH_NO_SG_CHAIN if !ARM_HAS_SG_CHAIN 328c2ecf20Sopenharmony_ci select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX 338c2ecf20Sopenharmony_ci select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7 348c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_ATOMIC_RMW 358c2ecf20Sopenharmony_ci select ARCH_USE_BUILTIN_BSWAP 368c2ecf20Sopenharmony_ci select ARCH_USE_CMPXCHG_LOCKREF 378c2ecf20Sopenharmony_ci select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU 388c2ecf20Sopenharmony_ci select ARCH_WANT_IPC_PARSE_VERSION 398c2ecf20Sopenharmony_ci select ARCH_WANT_LD_ORPHAN_WARN 408c2ecf20Sopenharmony_ci select BINFMT_FLAT_ARGVP_ENVP_ON_STACK 418c2ecf20Sopenharmony_ci select BUILDTIME_TABLE_SORT if MMU 428c2ecf20Sopenharmony_ci select CLONE_BACKWARDS 438c2ecf20Sopenharmony_ci select CPU_PM if SUSPEND || CPU_IDLE 448c2ecf20Sopenharmony_ci select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS 458c2ecf20Sopenharmony_ci select DMA_DECLARE_COHERENT 468c2ecf20Sopenharmony_ci select DMA_OPS 478c2ecf20Sopenharmony_ci select DMA_REMAP if MMU 488c2ecf20Sopenharmony_ci select EDAC_SUPPORT 498c2ecf20Sopenharmony_ci select EDAC_ATOMIC_SCRUB 508c2ecf20Sopenharmony_ci select GENERIC_ALLOCATOR 518c2ecf20Sopenharmony_ci select GENERIC_ARCH_TOPOLOGY if ARM_CPU_TOPOLOGY 528c2ecf20Sopenharmony_ci select GENERIC_ATOMIC64 if CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI 538c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS_BROADCAST if SMP 548c2ecf20Sopenharmony_ci select GENERIC_IRQ_IPI if SMP 558c2ecf20Sopenharmony_ci select GENERIC_CPU_AUTOPROBE 568c2ecf20Sopenharmony_ci select GENERIC_EARLY_IOREMAP 578c2ecf20Sopenharmony_ci select GENERIC_IDLE_POLL_SETUP 588c2ecf20Sopenharmony_ci select GENERIC_IRQ_PROBE 598c2ecf20Sopenharmony_ci select GENERIC_IRQ_SHOW 608c2ecf20Sopenharmony_ci select GENERIC_IRQ_SHOW_LEVEL 618c2ecf20Sopenharmony_ci select GENERIC_PCI_IOMAP 628c2ecf20Sopenharmony_ci select GENERIC_SCHED_CLOCK 638c2ecf20Sopenharmony_ci select GENERIC_SMP_IDLE_THREAD 648c2ecf20Sopenharmony_ci select GENERIC_STRNCPY_FROM_USER 658c2ecf20Sopenharmony_ci select GENERIC_STRNLEN_USER 668c2ecf20Sopenharmony_ci select HANDLE_DOMAIN_IRQ 678c2ecf20Sopenharmony_ci select HARDIRQS_SW_RESEND 688c2ecf20Sopenharmony_ci select HAVE_ARCH_AUDITSYSCALL if AEABI && !OABI_COMPAT 698c2ecf20Sopenharmony_ci select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6 708c2ecf20Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU 718c2ecf20Sopenharmony_ci select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU 728c2ecf20Sopenharmony_ci select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL 738c2ecf20Sopenharmony_ci select HAVE_ARCH_MMAP_RND_BITS if MMU 748c2ecf20Sopenharmony_ci select HAVE_ARCH_SECCOMP 758c2ecf20Sopenharmony_ci select HAVE_ARCH_SECCOMP_FILTER if AEABI && !OABI_COMPAT 768c2ecf20Sopenharmony_ci select HAVE_ARCH_THREAD_STRUCT_WHITELIST 778c2ecf20Sopenharmony_ci select HAVE_ARCH_TRACEHOOK 788c2ecf20Sopenharmony_ci select HAVE_ARM_SMCCC if CPU_V7 798c2ecf20Sopenharmony_ci select HAVE_EBPF_JIT if !CPU_ENDIAN_BE32 808c2ecf20Sopenharmony_ci select HAVE_CONTEXT_TRACKING 818c2ecf20Sopenharmony_ci select HAVE_C_RECORDMCOUNT 828c2ecf20Sopenharmony_ci select HAVE_DEBUG_KMEMLEAK if !XIP_KERNEL 838c2ecf20Sopenharmony_ci select HAVE_DMA_CONTIGUOUS if MMU 848c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU 858c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE 868c2ecf20Sopenharmony_ci select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU 878c2ecf20Sopenharmony_ci select HAVE_EXIT_THREAD 888c2ecf20Sopenharmony_ci select HAVE_FAST_GUP if ARM_LPAE 898c2ecf20Sopenharmony_ci select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL 908c2ecf20Sopenharmony_ci select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL && !CC_IS_CLANG 918c2ecf20Sopenharmony_ci select HAVE_FUNCTION_TRACER if !XIP_KERNEL 928c2ecf20Sopenharmony_ci select HAVE_FUTEX_CMPXCHG if FUTEX 938c2ecf20Sopenharmony_ci select HAVE_GCC_PLUGINS 948c2ecf20Sopenharmony_ci select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7) 958c2ecf20Sopenharmony_ci select HAVE_IDE if PCI || ISA || PCMCIA 968c2ecf20Sopenharmony_ci select HAVE_IRQ_TIME_ACCOUNTING 978c2ecf20Sopenharmony_ci select HAVE_KERNEL_GZIP 988c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZ4 998c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZMA 1008c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZO 1018c2ecf20Sopenharmony_ci select HAVE_KERNEL_XZ 1028c2ecf20Sopenharmony_ci select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M 1038c2ecf20Sopenharmony_ci select HAVE_KRETPROBES if HAVE_KPROBES 1048c2ecf20Sopenharmony_ci select HAVE_MOD_ARCH_SPECIFIC 1058c2ecf20Sopenharmony_ci select HAVE_NMI 1068c2ecf20Sopenharmony_ci select HAVE_OPROFILE if HAVE_PERF_EVENTS 1078c2ecf20Sopenharmony_ci select HAVE_OPTPROBES if !THUMB2_KERNEL 1088c2ecf20Sopenharmony_ci select HAVE_PERF_EVENTS 1098c2ecf20Sopenharmony_ci select HAVE_PERF_REGS 1108c2ecf20Sopenharmony_ci select HAVE_PERF_USER_STACK_DUMP 1118c2ecf20Sopenharmony_ci select MMU_GATHER_RCU_TABLE_FREE if SMP && ARM_LPAE 1128c2ecf20Sopenharmony_ci select HAVE_REGS_AND_STACK_ACCESS_API 1138c2ecf20Sopenharmony_ci select HAVE_RSEQ 1148c2ecf20Sopenharmony_ci select HAVE_STACKPROTECTOR 1158c2ecf20Sopenharmony_ci select HAVE_SYSCALL_TRACEPOINTS 1168c2ecf20Sopenharmony_ci select HAVE_UID16 1178c2ecf20Sopenharmony_ci select HAVE_VIRT_CPU_ACCOUNTING_GEN 1188c2ecf20Sopenharmony_ci select IRQ_FORCED_THREADING 1198c2ecf20Sopenharmony_ci select MODULES_USE_ELF_REL 1208c2ecf20Sopenharmony_ci select NEED_DMA_MAP_STATE 1218c2ecf20Sopenharmony_ci select OF_EARLY_FLATTREE if OF 1228c2ecf20Sopenharmony_ci select OLD_SIGACTION 1238c2ecf20Sopenharmony_ci select OLD_SIGSUSPEND3 1248c2ecf20Sopenharmony_ci select PCI_SYSCALL if PCI 1258c2ecf20Sopenharmony_ci select PERF_USE_VMALLOC 1268c2ecf20Sopenharmony_ci select RTC_LIB 1278c2ecf20Sopenharmony_ci select SET_FS 1288c2ecf20Sopenharmony_ci select SYS_SUPPORTS_APM_EMULATION 1298c2ecf20Sopenharmony_ci # Above selects are sorted alphabetically; please add new ones 1308c2ecf20Sopenharmony_ci # according to that. Thanks. 1318c2ecf20Sopenharmony_ci help 1328c2ecf20Sopenharmony_ci The ARM series is a line of low-power-consumption RISC chip designs 1338c2ecf20Sopenharmony_ci licensed by ARM Ltd and targeted at embedded applications and 1348c2ecf20Sopenharmony_ci handhelds such as the Compaq IPAQ. ARM-based PCs are no longer 1358c2ecf20Sopenharmony_ci manufactured, but legacy ARM-based PC hardware remains popular in 1368c2ecf20Sopenharmony_ci Europe. There is an ARM Linux project with a web page at 1378c2ecf20Sopenharmony_ci <http://www.arm.linux.org.uk/>. 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ciconfig ARM_HAS_SG_CHAIN 1408c2ecf20Sopenharmony_ci bool 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ciconfig ARM_DMA_USE_IOMMU 1438c2ecf20Sopenharmony_ci bool 1448c2ecf20Sopenharmony_ci select ARM_HAS_SG_CHAIN 1458c2ecf20Sopenharmony_ci select NEED_SG_DMA_LENGTH 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ciif ARM_DMA_USE_IOMMU 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ciconfig ARM_DMA_IOMMU_ALIGNMENT 1508c2ecf20Sopenharmony_ci int "Maximum PAGE_SIZE order of alignment for DMA IOMMU buffers" 1518c2ecf20Sopenharmony_ci range 4 9 1528c2ecf20Sopenharmony_ci default 8 1538c2ecf20Sopenharmony_ci help 1548c2ecf20Sopenharmony_ci DMA mapping framework by default aligns all buffers to the smallest 1558c2ecf20Sopenharmony_ci PAGE_SIZE order which is greater than or equal to the requested buffer 1568c2ecf20Sopenharmony_ci size. This works well for buffers up to a few hundreds kilobytes, but 1578c2ecf20Sopenharmony_ci for larger buffers it just a waste of address space. Drivers which has 1588c2ecf20Sopenharmony_ci relatively small addressing window (like 64Mib) might run out of 1598c2ecf20Sopenharmony_ci virtual space with just a few allocations. 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci With this parameter you can specify the maximum PAGE_SIZE order for 1628c2ecf20Sopenharmony_ci DMA IOMMU buffers. Larger buffers will be aligned only to this 1638c2ecf20Sopenharmony_ci specified order. The order is expressed as a power of two multiplied 1648c2ecf20Sopenharmony_ci by the PAGE_SIZE. 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ciendif 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_APM_EMULATION 1698c2ecf20Sopenharmony_ci bool 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ciconfig HAVE_TCM 1728c2ecf20Sopenharmony_ci bool 1738c2ecf20Sopenharmony_ci select GENERIC_ALLOCATOR 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ciconfig HAVE_PROC_CPU 1768c2ecf20Sopenharmony_ci bool 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ciconfig NO_IOPORT_MAP 1798c2ecf20Sopenharmony_ci bool 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ciconfig SBUS 1828c2ecf20Sopenharmony_ci bool 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ciconfig STACKTRACE_SUPPORT 1858c2ecf20Sopenharmony_ci bool 1868c2ecf20Sopenharmony_ci default y 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ciconfig LOCKDEP_SUPPORT 1898c2ecf20Sopenharmony_ci bool 1908c2ecf20Sopenharmony_ci default y 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ciconfig TRACE_IRQFLAGS_SUPPORT 1938c2ecf20Sopenharmony_ci bool 1948c2ecf20Sopenharmony_ci default !CPU_V7M 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ciconfig ARCH_HAS_ILOG2_U32 1978c2ecf20Sopenharmony_ci bool 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ciconfig ARCH_HAS_ILOG2_U64 2008c2ecf20Sopenharmony_ci bool 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ciconfig ARCH_HAS_BANDGAP 2038c2ecf20Sopenharmony_ci bool 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ciconfig FIX_EARLYCON_MEM 2068c2ecf20Sopenharmony_ci def_bool y if MMU 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ciconfig GENERIC_HWEIGHT 2098c2ecf20Sopenharmony_ci bool 2108c2ecf20Sopenharmony_ci default y 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY 2138c2ecf20Sopenharmony_ci bool 2148c2ecf20Sopenharmony_ci default y 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ciconfig ARCH_MAY_HAVE_PC_FDC 2178c2ecf20Sopenharmony_ci bool 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ciconfig ZONE_DMA 2208c2ecf20Sopenharmony_ci bool 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ciconfig ARCH_SUPPORTS_UPROBES 2238c2ecf20Sopenharmony_ci def_bool y 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ciconfig ARCH_HAS_DMA_SET_COHERENT_MASK 2268c2ecf20Sopenharmony_ci bool 2278c2ecf20Sopenharmony_ci 2288c2ecf20Sopenharmony_ciconfig GENERIC_ISA_DMA 2298c2ecf20Sopenharmony_ci bool 2308c2ecf20Sopenharmony_ci 2318c2ecf20Sopenharmony_ciconfig FIQ 2328c2ecf20Sopenharmony_ci bool 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_ciconfig NEED_RET_TO_USER 2358c2ecf20Sopenharmony_ci bool 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ciconfig ARCH_MTD_XIP 2388c2ecf20Sopenharmony_ci bool 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ciconfig ARM_PATCH_PHYS_VIRT 2418c2ecf20Sopenharmony_ci bool "Patch physical to virtual translations at runtime" if EMBEDDED 2428c2ecf20Sopenharmony_ci default y 2438c2ecf20Sopenharmony_ci depends on !XIP_KERNEL && MMU 2448c2ecf20Sopenharmony_ci help 2458c2ecf20Sopenharmony_ci Patch phys-to-virt and virt-to-phys translation functions at 2468c2ecf20Sopenharmony_ci boot and module load time according to the position of the 2478c2ecf20Sopenharmony_ci kernel in system memory. 2488c2ecf20Sopenharmony_ci 2498c2ecf20Sopenharmony_ci This can only be used with non-XIP MMU kernels where the base 2508c2ecf20Sopenharmony_ci of physical memory is at a 2 MiB boundary. 2518c2ecf20Sopenharmony_ci 2528c2ecf20Sopenharmony_ci Only disable this option if you know that you do not require 2538c2ecf20Sopenharmony_ci this feature (eg, building a kernel for a single machine) and 2548c2ecf20Sopenharmony_ci you need to shrink the kernel to the minimal size. 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ciconfig NEED_MACH_IO_H 2578c2ecf20Sopenharmony_ci bool 2588c2ecf20Sopenharmony_ci help 2598c2ecf20Sopenharmony_ci Select this when mach/io.h is required to provide special 2608c2ecf20Sopenharmony_ci definitions for this platform. The need for mach/io.h should 2618c2ecf20Sopenharmony_ci be avoided when possible. 2628c2ecf20Sopenharmony_ci 2638c2ecf20Sopenharmony_ciconfig NEED_MACH_MEMORY_H 2648c2ecf20Sopenharmony_ci bool 2658c2ecf20Sopenharmony_ci help 2668c2ecf20Sopenharmony_ci Select this when mach/memory.h is required to provide special 2678c2ecf20Sopenharmony_ci definitions for this platform. The need for mach/memory.h should 2688c2ecf20Sopenharmony_ci be avoided when possible. 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ciconfig PHYS_OFFSET 2718c2ecf20Sopenharmony_ci hex "Physical address of main memory" if MMU 2728c2ecf20Sopenharmony_ci depends on !ARM_PATCH_PHYS_VIRT 2738c2ecf20Sopenharmony_ci default DRAM_BASE if !MMU 2748c2ecf20Sopenharmony_ci default 0x00000000 if ARCH_EBSA110 || \ 2758c2ecf20Sopenharmony_ci ARCH_FOOTBRIDGE 2768c2ecf20Sopenharmony_ci default 0x10000000 if ARCH_OMAP1 || ARCH_RPC 2778c2ecf20Sopenharmony_ci default 0x20000000 if ARCH_S5PV210 2788c2ecf20Sopenharmony_ci default 0xc0000000 if ARCH_SA1100 2798c2ecf20Sopenharmony_ci help 2808c2ecf20Sopenharmony_ci Please provide the physical address corresponding to the 2818c2ecf20Sopenharmony_ci location of main memory in your system. 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ciconfig GENERIC_BUG 2848c2ecf20Sopenharmony_ci def_bool y 2858c2ecf20Sopenharmony_ci depends on BUG 2868c2ecf20Sopenharmony_ci 2878c2ecf20Sopenharmony_ciconfig PGTABLE_LEVELS 2888c2ecf20Sopenharmony_ci int 2898c2ecf20Sopenharmony_ci default 3 if ARM_LPAE 2908c2ecf20Sopenharmony_ci default 2 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_cimenu "System Type" 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ciconfig MMU 2958c2ecf20Sopenharmony_ci bool "MMU-based Paged Memory Management Support" 2968c2ecf20Sopenharmony_ci default y 2978c2ecf20Sopenharmony_ci help 2988c2ecf20Sopenharmony_ci Select if you want MMU-based virtualised addressing space 2998c2ecf20Sopenharmony_ci support by paged memory management. If unsure, say 'Y'. 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MIN 3028c2ecf20Sopenharmony_ci default 8 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MAX 3058c2ecf20Sopenharmony_ci default 14 if PAGE_OFFSET=0x40000000 3068c2ecf20Sopenharmony_ci default 15 if PAGE_OFFSET=0x80000000 3078c2ecf20Sopenharmony_ci default 16 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ci# 3108c2ecf20Sopenharmony_ci# The "ARM system type" choice list is ordered alphabetically by option 3118c2ecf20Sopenharmony_ci# text. Please add new entries in the option alphabetic order. 3128c2ecf20Sopenharmony_ci# 3138c2ecf20Sopenharmony_cichoice 3148c2ecf20Sopenharmony_ci prompt "ARM system type" 3158c2ecf20Sopenharmony_ci default ARM_SINGLE_ARMV7M if !MMU 3168c2ecf20Sopenharmony_ci default ARCH_MULTIPLATFORM if MMU 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ciconfig ARCH_MULTIPLATFORM 3198c2ecf20Sopenharmony_ci bool "Allow multiple platforms to be selected" 3208c2ecf20Sopenharmony_ci depends on MMU 3218c2ecf20Sopenharmony_ci select ARCH_FLATMEM_ENABLE 3228c2ecf20Sopenharmony_ci select ARCH_SPARSEMEM_ENABLE 3238c2ecf20Sopenharmony_ci select ARCH_SELECT_MEMORY_MODEL 3248c2ecf20Sopenharmony_ci select ARM_HAS_SG_CHAIN 3258c2ecf20Sopenharmony_ci select ARM_PATCH_PHYS_VIRT 3268c2ecf20Sopenharmony_ci select AUTO_ZRELADDR 3278c2ecf20Sopenharmony_ci select TIMER_OF 3288c2ecf20Sopenharmony_ci select COMMON_CLK 3298c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 3308c2ecf20Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 3318c2ecf20Sopenharmony_ci select HAVE_PCI 3328c2ecf20Sopenharmony_ci select PCI_DOMAINS_GENERIC if PCI 3338c2ecf20Sopenharmony_ci select SPARSE_IRQ 3348c2ecf20Sopenharmony_ci select USE_OF 3358c2ecf20Sopenharmony_ci 3368c2ecf20Sopenharmony_ciconfig ARM_SINGLE_ARMV7M 3378c2ecf20Sopenharmony_ci bool "ARMv7-M based platforms (Cortex-M0/M3/M4)" 3388c2ecf20Sopenharmony_ci depends on !MMU 3398c2ecf20Sopenharmony_ci select ARM_NVIC 3408c2ecf20Sopenharmony_ci select AUTO_ZRELADDR 3418c2ecf20Sopenharmony_ci select TIMER_OF 3428c2ecf20Sopenharmony_ci select COMMON_CLK 3438c2ecf20Sopenharmony_ci select CPU_V7M 3448c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 3458c2ecf20Sopenharmony_ci select NO_IOPORT_MAP 3468c2ecf20Sopenharmony_ci select SPARSE_IRQ 3478c2ecf20Sopenharmony_ci select USE_OF 3488c2ecf20Sopenharmony_ci 3498c2ecf20Sopenharmony_ciconfig ARCH_EBSA110 3508c2ecf20Sopenharmony_ci bool "EBSA-110" 3518c2ecf20Sopenharmony_ci select ARCH_USES_GETTIMEOFFSET 3528c2ecf20Sopenharmony_ci select CPU_SA110 3538c2ecf20Sopenharmony_ci select ISA 3548c2ecf20Sopenharmony_ci select NEED_MACH_IO_H 3558c2ecf20Sopenharmony_ci select NEED_MACH_MEMORY_H 3568c2ecf20Sopenharmony_ci select NO_IOPORT_MAP 3578c2ecf20Sopenharmony_ci help 3588c2ecf20Sopenharmony_ci This is an evaluation board for the StrongARM processor available 3598c2ecf20Sopenharmony_ci from Digital. It has limited hardware on-board, including an 3608c2ecf20Sopenharmony_ci Ethernet interface, two PCMCIA sockets, two serial ports and a 3618c2ecf20Sopenharmony_ci parallel port. 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_ciconfig ARCH_EP93XX 3648c2ecf20Sopenharmony_ci bool "EP93xx-based" 3658c2ecf20Sopenharmony_ci select ARCH_SPARSEMEM_ENABLE 3668c2ecf20Sopenharmony_ci select ARM_AMBA 3678c2ecf20Sopenharmony_ci imply ARM_PATCH_PHYS_VIRT 3688c2ecf20Sopenharmony_ci select ARM_VIC 3698c2ecf20Sopenharmony_ci select AUTO_ZRELADDR 3708c2ecf20Sopenharmony_ci select CLKDEV_LOOKUP 3718c2ecf20Sopenharmony_ci select CLKSRC_MMIO 3728c2ecf20Sopenharmony_ci select CPU_ARM920T 3738c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 3748c2ecf20Sopenharmony_ci select GPIOLIB 3758c2ecf20Sopenharmony_ci select HAVE_LEGACY_CLK 3768c2ecf20Sopenharmony_ci help 3778c2ecf20Sopenharmony_ci This enables support for the Cirrus EP93xx series of CPUs. 3788c2ecf20Sopenharmony_ci 3798c2ecf20Sopenharmony_ciconfig ARCH_FOOTBRIDGE 3808c2ecf20Sopenharmony_ci bool "FootBridge" 3818c2ecf20Sopenharmony_ci select CPU_SA110 3828c2ecf20Sopenharmony_ci select FOOTBRIDGE 3838c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 3848c2ecf20Sopenharmony_ci select HAVE_IDE 3858c2ecf20Sopenharmony_ci select NEED_MACH_IO_H if !MMU 3868c2ecf20Sopenharmony_ci select NEED_MACH_MEMORY_H 3878c2ecf20Sopenharmony_ci help 3888c2ecf20Sopenharmony_ci Support for systems based on the DC21285 companion chip 3898c2ecf20Sopenharmony_ci ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. 3908c2ecf20Sopenharmony_ci 3918c2ecf20Sopenharmony_ciconfig ARCH_IOP32X 3928c2ecf20Sopenharmony_ci bool "IOP32x-based" 3938c2ecf20Sopenharmony_ci depends on MMU 3948c2ecf20Sopenharmony_ci select CPU_XSCALE 3958c2ecf20Sopenharmony_ci select GPIO_IOP 3968c2ecf20Sopenharmony_ci select GPIOLIB 3978c2ecf20Sopenharmony_ci select NEED_RET_TO_USER 3988c2ecf20Sopenharmony_ci select FORCE_PCI 3998c2ecf20Sopenharmony_ci select PLAT_IOP 4008c2ecf20Sopenharmony_ci help 4018c2ecf20Sopenharmony_ci Support for Intel's 80219 and IOP32X (XScale) family of 4028c2ecf20Sopenharmony_ci processors. 4038c2ecf20Sopenharmony_ci 4048c2ecf20Sopenharmony_ciconfig ARCH_IXP4XX 4058c2ecf20Sopenharmony_ci bool "IXP4xx-based" 4068c2ecf20Sopenharmony_ci depends on MMU 4078c2ecf20Sopenharmony_ci select ARCH_HAS_DMA_SET_COHERENT_MASK 4088c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_BIG_ENDIAN 4098c2ecf20Sopenharmony_ci select CPU_XSCALE 4108c2ecf20Sopenharmony_ci select DMABOUNCE if PCI 4118c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 4128c2ecf20Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 4138c2ecf20Sopenharmony_ci select GPIO_IXP4XX 4148c2ecf20Sopenharmony_ci select GPIOLIB 4158c2ecf20Sopenharmony_ci select HAVE_PCI 4168c2ecf20Sopenharmony_ci select IXP4XX_IRQ 4178c2ecf20Sopenharmony_ci select IXP4XX_TIMER 4188c2ecf20Sopenharmony_ci select NEED_MACH_IO_H 4198c2ecf20Sopenharmony_ci select USB_EHCI_BIG_ENDIAN_DESC 4208c2ecf20Sopenharmony_ci select USB_EHCI_BIG_ENDIAN_MMIO 4218c2ecf20Sopenharmony_ci help 4228c2ecf20Sopenharmony_ci Support for Intel's IXP4XX (XScale) family of processors. 4238c2ecf20Sopenharmony_ci 4248c2ecf20Sopenharmony_ciconfig ARCH_DOVE 4258c2ecf20Sopenharmony_ci bool "Marvell Dove" 4268c2ecf20Sopenharmony_ci select CPU_PJ4 4278c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 4288c2ecf20Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 4298c2ecf20Sopenharmony_ci select GPIOLIB 4308c2ecf20Sopenharmony_ci select HAVE_PCI 4318c2ecf20Sopenharmony_ci select MVEBU_MBUS 4328c2ecf20Sopenharmony_ci select PINCTRL 4338c2ecf20Sopenharmony_ci select PINCTRL_DOVE 4348c2ecf20Sopenharmony_ci select PLAT_ORION_LEGACY 4358c2ecf20Sopenharmony_ci select SPARSE_IRQ 4368c2ecf20Sopenharmony_ci select PM_GENERIC_DOMAINS if PM 4378c2ecf20Sopenharmony_ci help 4388c2ecf20Sopenharmony_ci Support for the Marvell Dove SoC 88AP510 4398c2ecf20Sopenharmony_ci 4408c2ecf20Sopenharmony_ciconfig ARCH_PXA 4418c2ecf20Sopenharmony_ci bool "PXA2xx/PXA3xx-based" 4428c2ecf20Sopenharmony_ci depends on MMU 4438c2ecf20Sopenharmony_ci select ARCH_MTD_XIP 4448c2ecf20Sopenharmony_ci select ARM_CPU_SUSPEND if PM 4458c2ecf20Sopenharmony_ci select AUTO_ZRELADDR 4468c2ecf20Sopenharmony_ci select COMMON_CLK 4478c2ecf20Sopenharmony_ci select CLKSRC_PXA 4488c2ecf20Sopenharmony_ci select CLKSRC_MMIO 4498c2ecf20Sopenharmony_ci select TIMER_OF 4508c2ecf20Sopenharmony_ci select CPU_XSCALE if !CPU_XSC3 4518c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 4528c2ecf20Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 4538c2ecf20Sopenharmony_ci select GPIO_PXA 4548c2ecf20Sopenharmony_ci select GPIOLIB 4558c2ecf20Sopenharmony_ci select HAVE_IDE 4568c2ecf20Sopenharmony_ci select IRQ_DOMAIN 4578c2ecf20Sopenharmony_ci select PLAT_PXA 4588c2ecf20Sopenharmony_ci select SPARSE_IRQ 4598c2ecf20Sopenharmony_ci help 4608c2ecf20Sopenharmony_ci Support for Intel/Marvell's PXA2xx/PXA3xx processor line. 4618c2ecf20Sopenharmony_ci 4628c2ecf20Sopenharmony_ciconfig ARCH_RPC 4638c2ecf20Sopenharmony_ci bool "RiscPC" 4648c2ecf20Sopenharmony_ci depends on MMU 4658c2ecf20Sopenharmony_ci select ARCH_ACORN 4668c2ecf20Sopenharmony_ci select ARCH_MAY_HAVE_PC_FDC 4678c2ecf20Sopenharmony_ci select ARCH_SPARSEMEM_ENABLE 4688c2ecf20Sopenharmony_ci select ARM_HAS_SG_CHAIN 4698c2ecf20Sopenharmony_ci select CPU_SA110 4708c2ecf20Sopenharmony_ci select FIQ 4718c2ecf20Sopenharmony_ci select HAVE_IDE 4728c2ecf20Sopenharmony_ci select HAVE_PATA_PLATFORM 4738c2ecf20Sopenharmony_ci select ISA_DMA_API 4748c2ecf20Sopenharmony_ci select NEED_MACH_IO_H 4758c2ecf20Sopenharmony_ci select NEED_MACH_MEMORY_H 4768c2ecf20Sopenharmony_ci select NO_IOPORT_MAP 4778c2ecf20Sopenharmony_ci help 4788c2ecf20Sopenharmony_ci On the Acorn Risc-PC, Linux can support the internal IDE disk and 4798c2ecf20Sopenharmony_ci CD-ROM interface, serial and parallel port, and the floppy drive. 4808c2ecf20Sopenharmony_ci 4818c2ecf20Sopenharmony_ciconfig ARCH_SA1100 4828c2ecf20Sopenharmony_ci bool "SA1100-based" 4838c2ecf20Sopenharmony_ci select ARCH_MTD_XIP 4848c2ecf20Sopenharmony_ci select ARCH_SPARSEMEM_ENABLE 4858c2ecf20Sopenharmony_ci select CLKSRC_MMIO 4868c2ecf20Sopenharmony_ci select CLKSRC_PXA 4878c2ecf20Sopenharmony_ci select TIMER_OF if OF 4888c2ecf20Sopenharmony_ci select COMMON_CLK 4898c2ecf20Sopenharmony_ci select CPU_FREQ 4908c2ecf20Sopenharmony_ci select CPU_SA1100 4918c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 4928c2ecf20Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 4938c2ecf20Sopenharmony_ci select GPIOLIB 4948c2ecf20Sopenharmony_ci select HAVE_IDE 4958c2ecf20Sopenharmony_ci select IRQ_DOMAIN 4968c2ecf20Sopenharmony_ci select ISA 4978c2ecf20Sopenharmony_ci select NEED_MACH_MEMORY_H 4988c2ecf20Sopenharmony_ci select SPARSE_IRQ 4998c2ecf20Sopenharmony_ci help 5008c2ecf20Sopenharmony_ci Support for StrongARM 11x0 based boards. 5018c2ecf20Sopenharmony_ci 5028c2ecf20Sopenharmony_ciconfig ARCH_S3C24XX 5038c2ecf20Sopenharmony_ci bool "Samsung S3C24XX SoCs" 5048c2ecf20Sopenharmony_ci select ATAGS 5058c2ecf20Sopenharmony_ci select CLKSRC_SAMSUNG_PWM 5068c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 5078c2ecf20Sopenharmony_ci select GPIO_SAMSUNG 5088c2ecf20Sopenharmony_ci select GPIOLIB 5098c2ecf20Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 5108c2ecf20Sopenharmony_ci select HAVE_S3C2410_I2C if I2C 5118c2ecf20Sopenharmony_ci select HAVE_S3C_RTC if RTC_CLASS 5128c2ecf20Sopenharmony_ci select NEED_MACH_IO_H 5138c2ecf20Sopenharmony_ci select S3C2410_WATCHDOG 5148c2ecf20Sopenharmony_ci select SAMSUNG_ATAGS 5158c2ecf20Sopenharmony_ci select USE_OF 5168c2ecf20Sopenharmony_ci select WATCHDOG 5178c2ecf20Sopenharmony_ci help 5188c2ecf20Sopenharmony_ci Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443 5198c2ecf20Sopenharmony_ci and S3C2450 SoCs based systems, such as the Simtec Electronics BAST 5208c2ecf20Sopenharmony_ci (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the 5218c2ecf20Sopenharmony_ci Samsung SMDK2410 development board (and derivatives). 5228c2ecf20Sopenharmony_ci 5238c2ecf20Sopenharmony_ciconfig ARCH_OMAP1 5248c2ecf20Sopenharmony_ci bool "TI OMAP1" 5258c2ecf20Sopenharmony_ci depends on MMU 5268c2ecf20Sopenharmony_ci select ARCH_OMAP 5278c2ecf20Sopenharmony_ci select CLKDEV_LOOKUP 5288c2ecf20Sopenharmony_ci select CLKSRC_MMIO 5298c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 5308c2ecf20Sopenharmony_ci select GENERIC_IRQ_CHIP 5318c2ecf20Sopenharmony_ci select GENERIC_IRQ_MULTI_HANDLER 5328c2ecf20Sopenharmony_ci select GPIOLIB 5338c2ecf20Sopenharmony_ci select HAVE_IDE 5348c2ecf20Sopenharmony_ci select HAVE_LEGACY_CLK 5358c2ecf20Sopenharmony_ci select IRQ_DOMAIN 5368c2ecf20Sopenharmony_ci select NEED_MACH_IO_H if PCCARD 5378c2ecf20Sopenharmony_ci select NEED_MACH_MEMORY_H 5388c2ecf20Sopenharmony_ci select SPARSE_IRQ 5398c2ecf20Sopenharmony_ci help 5408c2ecf20Sopenharmony_ci Support for older TI OMAP1 (omap7xx, omap15xx or omap16xx) 5418c2ecf20Sopenharmony_ci 5428c2ecf20Sopenharmony_ciendchoice 5438c2ecf20Sopenharmony_ci 5448c2ecf20Sopenharmony_cimenu "Multiple platform selection" 5458c2ecf20Sopenharmony_ci depends on ARCH_MULTIPLATFORM 5468c2ecf20Sopenharmony_ci 5478c2ecf20Sopenharmony_cicomment "CPU Core family selection" 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_ciconfig ARCH_MULTI_V4 5508c2ecf20Sopenharmony_ci bool "ARMv4 based platforms (FA526)" 5518c2ecf20Sopenharmony_ci depends on !ARCH_MULTI_V6_V7 5528c2ecf20Sopenharmony_ci select ARCH_MULTI_V4_V5 5538c2ecf20Sopenharmony_ci select CPU_FA526 5548c2ecf20Sopenharmony_ci 5558c2ecf20Sopenharmony_ciconfig ARCH_MULTI_V4T 5568c2ecf20Sopenharmony_ci bool "ARMv4T based platforms (ARM720T, ARM920T, ...)" 5578c2ecf20Sopenharmony_ci depends on !ARCH_MULTI_V6_V7 5588c2ecf20Sopenharmony_ci select ARCH_MULTI_V4_V5 5598c2ecf20Sopenharmony_ci select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \ 5608c2ecf20Sopenharmony_ci CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \ 5618c2ecf20Sopenharmony_ci CPU_ARM925T || CPU_ARM940T) 5628c2ecf20Sopenharmony_ci 5638c2ecf20Sopenharmony_ciconfig ARCH_MULTI_V5 5648c2ecf20Sopenharmony_ci bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)" 5658c2ecf20Sopenharmony_ci depends on !ARCH_MULTI_V6_V7 5668c2ecf20Sopenharmony_ci select ARCH_MULTI_V4_V5 5678c2ecf20Sopenharmony_ci select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \ 5688c2ecf20Sopenharmony_ci CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \ 5698c2ecf20Sopenharmony_ci CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON) 5708c2ecf20Sopenharmony_ci 5718c2ecf20Sopenharmony_ciconfig ARCH_MULTI_V4_V5 5728c2ecf20Sopenharmony_ci bool 5738c2ecf20Sopenharmony_ci 5748c2ecf20Sopenharmony_ciconfig ARCH_MULTI_V6 5758c2ecf20Sopenharmony_ci bool "ARMv6 based platforms (ARM11)" 5768c2ecf20Sopenharmony_ci select ARCH_MULTI_V6_V7 5778c2ecf20Sopenharmony_ci select CPU_V6K 5788c2ecf20Sopenharmony_ci 5798c2ecf20Sopenharmony_ciconfig ARCH_MULTI_V7 5808c2ecf20Sopenharmony_ci bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" 5818c2ecf20Sopenharmony_ci default y 5828c2ecf20Sopenharmony_ci select ARCH_MULTI_V6_V7 5838c2ecf20Sopenharmony_ci select CPU_V7 5848c2ecf20Sopenharmony_ci select HAVE_SMP 5858c2ecf20Sopenharmony_ci 5868c2ecf20Sopenharmony_ciconfig ARCH_MULTI_V6_V7 5878c2ecf20Sopenharmony_ci bool 5888c2ecf20Sopenharmony_ci select MIGHT_HAVE_CACHE_L2X0 5898c2ecf20Sopenharmony_ci 5908c2ecf20Sopenharmony_ciconfig ARCH_MULTI_CPU_AUTO 5918c2ecf20Sopenharmony_ci def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7) 5928c2ecf20Sopenharmony_ci select ARCH_MULTI_V5 5938c2ecf20Sopenharmony_ci 5948c2ecf20Sopenharmony_ciendmenu 5958c2ecf20Sopenharmony_ci 5968c2ecf20Sopenharmony_ciconfig ARCH_VIRT 5978c2ecf20Sopenharmony_ci bool "Dummy Virtual Machine" 5988c2ecf20Sopenharmony_ci depends on ARCH_MULTI_V7 5998c2ecf20Sopenharmony_ci select ARM_AMBA 6008c2ecf20Sopenharmony_ci select ARM_GIC 6018c2ecf20Sopenharmony_ci select ARM_GIC_V2M if PCI 6028c2ecf20Sopenharmony_ci select ARM_GIC_V3 6038c2ecf20Sopenharmony_ci select ARM_GIC_V3_ITS if PCI 6048c2ecf20Sopenharmony_ci select ARM_PSCI 6058c2ecf20Sopenharmony_ci select HAVE_ARM_ARCH_TIMER 6068c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_BIG_ENDIAN 6078c2ecf20Sopenharmony_ci 6088c2ecf20Sopenharmony_ci# 6098c2ecf20Sopenharmony_ci# This is sorted alphabetically by mach-* pathname. However, plat-* 6108c2ecf20Sopenharmony_ci# Kconfigs may be included either alphabetically (according to the 6118c2ecf20Sopenharmony_ci# plat- suffix) or along side the corresponding mach-* source. 6128c2ecf20Sopenharmony_ci# 6138c2ecf20Sopenharmony_cisource "arch/arm/mach-actions/Kconfig" 6148c2ecf20Sopenharmony_ci 6158c2ecf20Sopenharmony_cisource "arch/arm/mach-alpine/Kconfig" 6168c2ecf20Sopenharmony_ci 6178c2ecf20Sopenharmony_cisource "arch/arm/mach-artpec/Kconfig" 6188c2ecf20Sopenharmony_ci 6198c2ecf20Sopenharmony_cisource "arch/arm/mach-asm9260/Kconfig" 6208c2ecf20Sopenharmony_ci 6218c2ecf20Sopenharmony_cisource "arch/arm/mach-aspeed/Kconfig" 6228c2ecf20Sopenharmony_ci 6238c2ecf20Sopenharmony_cisource "arch/arm/mach-at91/Kconfig" 6248c2ecf20Sopenharmony_ci 6258c2ecf20Sopenharmony_cisource "arch/arm/mach-axxia/Kconfig" 6268c2ecf20Sopenharmony_ci 6278c2ecf20Sopenharmony_cisource "arch/arm/mach-bcm/Kconfig" 6288c2ecf20Sopenharmony_ci 6298c2ecf20Sopenharmony_cisource "arch/arm/mach-berlin/Kconfig" 6308c2ecf20Sopenharmony_ci 6318c2ecf20Sopenharmony_cisource "arch/arm/mach-clps711x/Kconfig" 6328c2ecf20Sopenharmony_ci 6338c2ecf20Sopenharmony_cisource "arch/arm/mach-cns3xxx/Kconfig" 6348c2ecf20Sopenharmony_ci 6358c2ecf20Sopenharmony_cisource "arch/arm/mach-davinci/Kconfig" 6368c2ecf20Sopenharmony_ci 6378c2ecf20Sopenharmony_cisource "arch/arm/mach-digicolor/Kconfig" 6388c2ecf20Sopenharmony_ci 6398c2ecf20Sopenharmony_cisource "arch/arm/mach-dove/Kconfig" 6408c2ecf20Sopenharmony_ci 6418c2ecf20Sopenharmony_cisource "arch/arm/mach-ep93xx/Kconfig" 6428c2ecf20Sopenharmony_ci 6438c2ecf20Sopenharmony_cisource "arch/arm/mach-exynos/Kconfig" 6448c2ecf20Sopenharmony_ci 6458c2ecf20Sopenharmony_cisource "arch/arm/mach-footbridge/Kconfig" 6468c2ecf20Sopenharmony_ci 6478c2ecf20Sopenharmony_cisource "arch/arm/mach-gemini/Kconfig" 6488c2ecf20Sopenharmony_ci 6498c2ecf20Sopenharmony_cisource "arch/arm/mach-highbank/Kconfig" 6508c2ecf20Sopenharmony_ci 6518c2ecf20Sopenharmony_cisource "arch/arm/mach-hisi/Kconfig" 6528c2ecf20Sopenharmony_ci 6538c2ecf20Sopenharmony_cisource "arch/arm/mach-imx/Kconfig" 6548c2ecf20Sopenharmony_ci 6558c2ecf20Sopenharmony_cisource "arch/arm/mach-integrator/Kconfig" 6568c2ecf20Sopenharmony_ci 6578c2ecf20Sopenharmony_cisource "arch/arm/mach-iop32x/Kconfig" 6588c2ecf20Sopenharmony_ci 6598c2ecf20Sopenharmony_cisource "arch/arm/mach-ixp4xx/Kconfig" 6608c2ecf20Sopenharmony_ci 6618c2ecf20Sopenharmony_cisource "arch/arm/mach-keystone/Kconfig" 6628c2ecf20Sopenharmony_ci 6638c2ecf20Sopenharmony_cisource "arch/arm/mach-lpc32xx/Kconfig" 6648c2ecf20Sopenharmony_ci 6658c2ecf20Sopenharmony_cisource "arch/arm/mach-mediatek/Kconfig" 6668c2ecf20Sopenharmony_ci 6678c2ecf20Sopenharmony_cisource "arch/arm/mach-meson/Kconfig" 6688c2ecf20Sopenharmony_ci 6698c2ecf20Sopenharmony_cisource "arch/arm/mach-milbeaut/Kconfig" 6708c2ecf20Sopenharmony_ci 6718c2ecf20Sopenharmony_cisource "arch/arm/mach-mmp/Kconfig" 6728c2ecf20Sopenharmony_ci 6738c2ecf20Sopenharmony_cisource "arch/arm/mach-moxart/Kconfig" 6748c2ecf20Sopenharmony_ci 6758c2ecf20Sopenharmony_cisource "arch/arm/mach-mstar/Kconfig" 6768c2ecf20Sopenharmony_ci 6778c2ecf20Sopenharmony_cisource "arch/arm/mach-mv78xx0/Kconfig" 6788c2ecf20Sopenharmony_ci 6798c2ecf20Sopenharmony_cisource "arch/arm/mach-mvebu/Kconfig" 6808c2ecf20Sopenharmony_ci 6818c2ecf20Sopenharmony_cisource "arch/arm/mach-mxs/Kconfig" 6828c2ecf20Sopenharmony_ci 6838c2ecf20Sopenharmony_cisource "arch/arm/mach-nomadik/Kconfig" 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_cisource "arch/arm/mach-npcm/Kconfig" 6868c2ecf20Sopenharmony_ci 6878c2ecf20Sopenharmony_cisource "arch/arm/mach-nspire/Kconfig" 6888c2ecf20Sopenharmony_ci 6898c2ecf20Sopenharmony_cisource "arch/arm/plat-omap/Kconfig" 6908c2ecf20Sopenharmony_ci 6918c2ecf20Sopenharmony_cisource "arch/arm/mach-omap1/Kconfig" 6928c2ecf20Sopenharmony_ci 6938c2ecf20Sopenharmony_cisource "arch/arm/mach-omap2/Kconfig" 6948c2ecf20Sopenharmony_ci 6958c2ecf20Sopenharmony_cisource "arch/arm/mach-orion5x/Kconfig" 6968c2ecf20Sopenharmony_ci 6978c2ecf20Sopenharmony_cisource "arch/arm/mach-oxnas/Kconfig" 6988c2ecf20Sopenharmony_ci 6998c2ecf20Sopenharmony_cisource "arch/arm/mach-picoxcell/Kconfig" 7008c2ecf20Sopenharmony_ci 7018c2ecf20Sopenharmony_cisource "arch/arm/mach-prima2/Kconfig" 7028c2ecf20Sopenharmony_ci 7038c2ecf20Sopenharmony_cisource "arch/arm/mach-pxa/Kconfig" 7048c2ecf20Sopenharmony_cisource "arch/arm/plat-pxa/Kconfig" 7058c2ecf20Sopenharmony_ci 7068c2ecf20Sopenharmony_cisource "arch/arm/mach-qcom/Kconfig" 7078c2ecf20Sopenharmony_ci 7088c2ecf20Sopenharmony_cisource "arch/arm/mach-rda/Kconfig" 7098c2ecf20Sopenharmony_ci 7108c2ecf20Sopenharmony_cisource "arch/arm/mach-realtek/Kconfig" 7118c2ecf20Sopenharmony_ci 7128c2ecf20Sopenharmony_cisource "arch/arm/mach-realview/Kconfig" 7138c2ecf20Sopenharmony_ci 7148c2ecf20Sopenharmony_cisource "arch/arm/mach-rockchip/Kconfig" 7158c2ecf20Sopenharmony_ci 7168c2ecf20Sopenharmony_cisource "arch/arm/mach-s3c/Kconfig" 7178c2ecf20Sopenharmony_ci 7188c2ecf20Sopenharmony_cisource "arch/arm/mach-s5pv210/Kconfig" 7198c2ecf20Sopenharmony_ci 7208c2ecf20Sopenharmony_cisource "arch/arm/mach-sa1100/Kconfig" 7218c2ecf20Sopenharmony_ci 7228c2ecf20Sopenharmony_cisource "arch/arm/mach-shmobile/Kconfig" 7238c2ecf20Sopenharmony_ci 7248c2ecf20Sopenharmony_cisource "arch/arm/mach-socfpga/Kconfig" 7258c2ecf20Sopenharmony_ci 7268c2ecf20Sopenharmony_cisource "arch/arm/mach-spear/Kconfig" 7278c2ecf20Sopenharmony_ci 7288c2ecf20Sopenharmony_cisource "arch/arm/mach-sti/Kconfig" 7298c2ecf20Sopenharmony_ci 7308c2ecf20Sopenharmony_cisource "arch/arm/mach-stm32/Kconfig" 7318c2ecf20Sopenharmony_ci 7328c2ecf20Sopenharmony_cisource "arch/arm/mach-sunxi/Kconfig" 7338c2ecf20Sopenharmony_ci 7348c2ecf20Sopenharmony_cisource "arch/arm/mach-tango/Kconfig" 7358c2ecf20Sopenharmony_ci 7368c2ecf20Sopenharmony_cisource "arch/arm/mach-tegra/Kconfig" 7378c2ecf20Sopenharmony_ci 7388c2ecf20Sopenharmony_cisource "arch/arm/mach-u300/Kconfig" 7398c2ecf20Sopenharmony_ci 7408c2ecf20Sopenharmony_cisource "arch/arm/mach-uniphier/Kconfig" 7418c2ecf20Sopenharmony_ci 7428c2ecf20Sopenharmony_cisource "arch/arm/mach-ux500/Kconfig" 7438c2ecf20Sopenharmony_ci 7448c2ecf20Sopenharmony_cisource "arch/arm/mach-versatile/Kconfig" 7458c2ecf20Sopenharmony_ci 7468c2ecf20Sopenharmony_cisource "arch/arm/mach-vexpress/Kconfig" 7478c2ecf20Sopenharmony_ci 7488c2ecf20Sopenharmony_cisource "arch/arm/mach-vt8500/Kconfig" 7498c2ecf20Sopenharmony_ci 7508c2ecf20Sopenharmony_cisource "arch/arm/mach-zx/Kconfig" 7518c2ecf20Sopenharmony_ci 7528c2ecf20Sopenharmony_cisource "arch/arm/mach-zynq/Kconfig" 7538c2ecf20Sopenharmony_ci 7548c2ecf20Sopenharmony_ci# ARMv7-M architecture 7558c2ecf20Sopenharmony_ciconfig ARCH_EFM32 7568c2ecf20Sopenharmony_ci bool "Energy Micro efm32" 7578c2ecf20Sopenharmony_ci depends on ARM_SINGLE_ARMV7M 7588c2ecf20Sopenharmony_ci select GPIOLIB 7598c2ecf20Sopenharmony_ci help 7608c2ecf20Sopenharmony_ci Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko 7618c2ecf20Sopenharmony_ci processors. 7628c2ecf20Sopenharmony_ci 7638c2ecf20Sopenharmony_ciconfig ARCH_LPC18XX 7648c2ecf20Sopenharmony_ci bool "NXP LPC18xx/LPC43xx" 7658c2ecf20Sopenharmony_ci depends on ARM_SINGLE_ARMV7M 7668c2ecf20Sopenharmony_ci select ARCH_HAS_RESET_CONTROLLER 7678c2ecf20Sopenharmony_ci select ARM_AMBA 7688c2ecf20Sopenharmony_ci select CLKSRC_LPC32XX 7698c2ecf20Sopenharmony_ci select PINCTRL 7708c2ecf20Sopenharmony_ci help 7718c2ecf20Sopenharmony_ci Support for NXP's LPC18xx Cortex-M3 and LPC43xx Cortex-M4 7728c2ecf20Sopenharmony_ci high performance microcontrollers. 7738c2ecf20Sopenharmony_ci 7748c2ecf20Sopenharmony_ciconfig ARCH_MPS2 7758c2ecf20Sopenharmony_ci bool "ARM MPS2 platform" 7768c2ecf20Sopenharmony_ci depends on ARM_SINGLE_ARMV7M 7778c2ecf20Sopenharmony_ci select ARM_AMBA 7788c2ecf20Sopenharmony_ci select CLKSRC_MPS2 7798c2ecf20Sopenharmony_ci help 7808c2ecf20Sopenharmony_ci Support for Cortex-M Prototyping System (or V2M-MPS2) which comes 7818c2ecf20Sopenharmony_ci with a range of available cores like Cortex-M3/M4/M7. 7828c2ecf20Sopenharmony_ci 7838c2ecf20Sopenharmony_ci Please, note that depends which Application Note is used memory map 7848c2ecf20Sopenharmony_ci for the platform may vary, so adjustment of RAM base might be needed. 7858c2ecf20Sopenharmony_ci 7868c2ecf20Sopenharmony_ci# Definitions to make life easier 7878c2ecf20Sopenharmony_ciconfig ARCH_ACORN 7888c2ecf20Sopenharmony_ci bool 7898c2ecf20Sopenharmony_ci 7908c2ecf20Sopenharmony_ciconfig PLAT_IOP 7918c2ecf20Sopenharmony_ci bool 7928c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 7938c2ecf20Sopenharmony_ci 7948c2ecf20Sopenharmony_ciconfig PLAT_ORION 7958c2ecf20Sopenharmony_ci bool 7968c2ecf20Sopenharmony_ci select CLKSRC_MMIO 7978c2ecf20Sopenharmony_ci select COMMON_CLK 7988c2ecf20Sopenharmony_ci select GENERIC_IRQ_CHIP 7998c2ecf20Sopenharmony_ci select IRQ_DOMAIN 8008c2ecf20Sopenharmony_ci 8018c2ecf20Sopenharmony_ciconfig PLAT_ORION_LEGACY 8028c2ecf20Sopenharmony_ci bool 8038c2ecf20Sopenharmony_ci select PLAT_ORION 8048c2ecf20Sopenharmony_ci 8058c2ecf20Sopenharmony_ciconfig PLAT_PXA 8068c2ecf20Sopenharmony_ci bool 8078c2ecf20Sopenharmony_ci 8088c2ecf20Sopenharmony_ciconfig PLAT_VERSATILE 8098c2ecf20Sopenharmony_ci bool 8108c2ecf20Sopenharmony_ci 8118c2ecf20Sopenharmony_cisource "arch/arm/mm/Kconfig" 8128c2ecf20Sopenharmony_ci 8138c2ecf20Sopenharmony_ciconfig IWMMXT 8148c2ecf20Sopenharmony_ci bool "Enable iWMMXt support" 8158c2ecf20Sopenharmony_ci depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B 8168c2ecf20Sopenharmony_ci default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B 8178c2ecf20Sopenharmony_ci help 8188c2ecf20Sopenharmony_ci Enable support for iWMMXt context switching at run time if 8198c2ecf20Sopenharmony_ci running on a CPU that supports it. 8208c2ecf20Sopenharmony_ci 8218c2ecf20Sopenharmony_ciif !MMU 8228c2ecf20Sopenharmony_cisource "arch/arm/Kconfig-nommu" 8238c2ecf20Sopenharmony_ciendif 8248c2ecf20Sopenharmony_ci 8258c2ecf20Sopenharmony_ciconfig PJ4B_ERRATA_4742 8268c2ecf20Sopenharmony_ci bool "PJ4B Errata 4742: IDLE Wake Up Commands can Cause the CPU Core to Cease Operation" 8278c2ecf20Sopenharmony_ci depends on CPU_PJ4B && MACH_ARMADA_370 8288c2ecf20Sopenharmony_ci default y 8298c2ecf20Sopenharmony_ci help 8308c2ecf20Sopenharmony_ci When coming out of either a Wait for Interrupt (WFI) or a Wait for 8318c2ecf20Sopenharmony_ci Event (WFE) IDLE states, a specific timing sensitivity exists between 8328c2ecf20Sopenharmony_ci the retiring WFI/WFE instructions and the newly issued subsequent 8338c2ecf20Sopenharmony_ci instructions. This sensitivity can result in a CPU hang scenario. 8348c2ecf20Sopenharmony_ci Workaround: 8358c2ecf20Sopenharmony_ci The software must insert either a Data Synchronization Barrier (DSB) 8368c2ecf20Sopenharmony_ci or Data Memory Barrier (DMB) command immediately after the WFI/WFE 8378c2ecf20Sopenharmony_ci instruction 8388c2ecf20Sopenharmony_ci 8398c2ecf20Sopenharmony_ciconfig ARM_ERRATA_326103 8408c2ecf20Sopenharmony_ci bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory" 8418c2ecf20Sopenharmony_ci depends on CPU_V6 8428c2ecf20Sopenharmony_ci help 8438c2ecf20Sopenharmony_ci Executing a SWP instruction to read-only memory does not set bit 11 8448c2ecf20Sopenharmony_ci of the FSR on the ARM 1136 prior to r1p0. This causes the kernel to 8458c2ecf20Sopenharmony_ci treat the access as a read, preventing a COW from occurring and 8468c2ecf20Sopenharmony_ci causing the faulting task to livelock. 8478c2ecf20Sopenharmony_ci 8488c2ecf20Sopenharmony_ciconfig ARM_ERRATA_411920 8498c2ecf20Sopenharmony_ci bool "ARM errata: Invalidation of the Instruction Cache operation can fail" 8508c2ecf20Sopenharmony_ci depends on CPU_V6 || CPU_V6K 8518c2ecf20Sopenharmony_ci help 8528c2ecf20Sopenharmony_ci Invalidation of the Instruction Cache operation can 8538c2ecf20Sopenharmony_ci fail. This erratum is present in 1136 (before r1p4), 1156 and 1176. 8548c2ecf20Sopenharmony_ci It does not affect the MPCore. This option enables the ARM Ltd. 8558c2ecf20Sopenharmony_ci recommended workaround. 8568c2ecf20Sopenharmony_ci 8578c2ecf20Sopenharmony_ciconfig ARM_ERRATA_430973 8588c2ecf20Sopenharmony_ci bool "ARM errata: Stale prediction on replaced interworking branch" 8598c2ecf20Sopenharmony_ci depends on CPU_V7 8608c2ecf20Sopenharmony_ci help 8618c2ecf20Sopenharmony_ci This option enables the workaround for the 430973 Cortex-A8 8628c2ecf20Sopenharmony_ci r1p* erratum. If a code sequence containing an ARM/Thumb 8638c2ecf20Sopenharmony_ci interworking branch is replaced with another code sequence at the 8648c2ecf20Sopenharmony_ci same virtual address, whether due to self-modifying code or virtual 8658c2ecf20Sopenharmony_ci to physical address re-mapping, Cortex-A8 does not recover from the 8668c2ecf20Sopenharmony_ci stale interworking branch prediction. This results in Cortex-A8 8678c2ecf20Sopenharmony_ci executing the new code sequence in the incorrect ARM or Thumb state. 8688c2ecf20Sopenharmony_ci The workaround enables the BTB/BTAC operations by setting ACTLR.IBE 8698c2ecf20Sopenharmony_ci and also flushes the branch target cache at every context switch. 8708c2ecf20Sopenharmony_ci Note that setting specific bits in the ACTLR register may not be 8718c2ecf20Sopenharmony_ci available in non-secure mode. 8728c2ecf20Sopenharmony_ci 8738c2ecf20Sopenharmony_ciconfig ARM_ERRATA_458693 8748c2ecf20Sopenharmony_ci bool "ARM errata: Processor deadlock when a false hazard is created" 8758c2ecf20Sopenharmony_ci depends on CPU_V7 8768c2ecf20Sopenharmony_ci depends on !ARCH_MULTIPLATFORM 8778c2ecf20Sopenharmony_ci help 8788c2ecf20Sopenharmony_ci This option enables the workaround for the 458693 Cortex-A8 (r2p0) 8798c2ecf20Sopenharmony_ci erratum. For very specific sequences of memory operations, it is 8808c2ecf20Sopenharmony_ci possible for a hazard condition intended for a cache line to instead 8818c2ecf20Sopenharmony_ci be incorrectly associated with a different cache line. This false 8828c2ecf20Sopenharmony_ci hazard might then cause a processor deadlock. The workaround enables 8838c2ecf20Sopenharmony_ci the L1 caching of the NEON accesses and disables the PLD instruction 8848c2ecf20Sopenharmony_ci in the ACTLR register. Note that setting specific bits in the ACTLR 8858c2ecf20Sopenharmony_ci register may not be available in non-secure mode. 8868c2ecf20Sopenharmony_ci 8878c2ecf20Sopenharmony_ciconfig ARM_ERRATA_460075 8888c2ecf20Sopenharmony_ci bool "ARM errata: Data written to the L2 cache can be overwritten with stale data" 8898c2ecf20Sopenharmony_ci depends on CPU_V7 8908c2ecf20Sopenharmony_ci depends on !ARCH_MULTIPLATFORM 8918c2ecf20Sopenharmony_ci help 8928c2ecf20Sopenharmony_ci This option enables the workaround for the 460075 Cortex-A8 (r2p0) 8938c2ecf20Sopenharmony_ci erratum. Any asynchronous access to the L2 cache may encounter a 8948c2ecf20Sopenharmony_ci situation in which recent store transactions to the L2 cache are lost 8958c2ecf20Sopenharmony_ci and overwritten with stale memory contents from external memory. The 8968c2ecf20Sopenharmony_ci workaround disables the write-allocate mode for the L2 cache via the 8978c2ecf20Sopenharmony_ci ACTLR register. Note that setting specific bits in the ACTLR register 8988c2ecf20Sopenharmony_ci may not be available in non-secure mode. 8998c2ecf20Sopenharmony_ci 9008c2ecf20Sopenharmony_ciconfig ARM_ERRATA_742230 9018c2ecf20Sopenharmony_ci bool "ARM errata: DMB operation may be faulty" 9028c2ecf20Sopenharmony_ci depends on CPU_V7 && SMP 9038c2ecf20Sopenharmony_ci depends on !ARCH_MULTIPLATFORM 9048c2ecf20Sopenharmony_ci help 9058c2ecf20Sopenharmony_ci This option enables the workaround for the 742230 Cortex-A9 9068c2ecf20Sopenharmony_ci (r1p0..r2p2) erratum. Under rare circumstances, a DMB instruction 9078c2ecf20Sopenharmony_ci between two write operations may not ensure the correct visibility 9088c2ecf20Sopenharmony_ci ordering of the two writes. This workaround sets a specific bit in 9098c2ecf20Sopenharmony_ci the diagnostic register of the Cortex-A9 which causes the DMB 9108c2ecf20Sopenharmony_ci instruction to behave as a DSB, ensuring the correct behaviour of 9118c2ecf20Sopenharmony_ci the two writes. 9128c2ecf20Sopenharmony_ci 9138c2ecf20Sopenharmony_ciconfig ARM_ERRATA_742231 9148c2ecf20Sopenharmony_ci bool "ARM errata: Incorrect hazard handling in the SCU may lead to data corruption" 9158c2ecf20Sopenharmony_ci depends on CPU_V7 && SMP 9168c2ecf20Sopenharmony_ci depends on !ARCH_MULTIPLATFORM 9178c2ecf20Sopenharmony_ci help 9188c2ecf20Sopenharmony_ci This option enables the workaround for the 742231 Cortex-A9 9198c2ecf20Sopenharmony_ci (r2p0..r2p2) erratum. Under certain conditions, specific to the 9208c2ecf20Sopenharmony_ci Cortex-A9 MPCore micro-architecture, two CPUs working in SMP mode, 9218c2ecf20Sopenharmony_ci accessing some data located in the same cache line, may get corrupted 9228c2ecf20Sopenharmony_ci data due to bad handling of the address hazard when the line gets 9238c2ecf20Sopenharmony_ci replaced from one of the CPUs at the same time as another CPU is 9248c2ecf20Sopenharmony_ci accessing it. This workaround sets specific bits in the diagnostic 9258c2ecf20Sopenharmony_ci register of the Cortex-A9 which reduces the linefill issuing 9268c2ecf20Sopenharmony_ci capabilities of the processor. 9278c2ecf20Sopenharmony_ci 9288c2ecf20Sopenharmony_ciconfig ARM_ERRATA_643719 9298c2ecf20Sopenharmony_ci bool "ARM errata: LoUIS bit field in CLIDR register is incorrect" 9308c2ecf20Sopenharmony_ci depends on CPU_V7 && SMP 9318c2ecf20Sopenharmony_ci default y 9328c2ecf20Sopenharmony_ci help 9338c2ecf20Sopenharmony_ci This option enables the workaround for the 643719 Cortex-A9 (prior to 9348c2ecf20Sopenharmony_ci r1p0) erratum. On affected cores the LoUIS bit field of the CLIDR 9358c2ecf20Sopenharmony_ci register returns zero when it should return one. The workaround 9368c2ecf20Sopenharmony_ci corrects this value, ensuring cache maintenance operations which use 9378c2ecf20Sopenharmony_ci it behave as intended and avoiding data corruption. 9388c2ecf20Sopenharmony_ci 9398c2ecf20Sopenharmony_ciconfig ARM_ERRATA_720789 9408c2ecf20Sopenharmony_ci bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID" 9418c2ecf20Sopenharmony_ci depends on CPU_V7 9428c2ecf20Sopenharmony_ci help 9438c2ecf20Sopenharmony_ci This option enables the workaround for the 720789 Cortex-A9 (prior to 9448c2ecf20Sopenharmony_ci r2p0) erratum. A faulty ASID can be sent to the other CPUs for the 9458c2ecf20Sopenharmony_ci broadcasted CP15 TLB maintenance operations TLBIASIDIS and TLBIMVAIS. 9468c2ecf20Sopenharmony_ci As a consequence of this erratum, some TLB entries which should be 9478c2ecf20Sopenharmony_ci invalidated are not, resulting in an incoherency in the system page 9488c2ecf20Sopenharmony_ci tables. The workaround changes the TLB flushing routines to invalidate 9498c2ecf20Sopenharmony_ci entries regardless of the ASID. 9508c2ecf20Sopenharmony_ci 9518c2ecf20Sopenharmony_ciconfig ARM_ERRATA_743622 9528c2ecf20Sopenharmony_ci bool "ARM errata: Faulty hazard checking in the Store Buffer may lead to data corruption" 9538c2ecf20Sopenharmony_ci depends on CPU_V7 9548c2ecf20Sopenharmony_ci depends on !ARCH_MULTIPLATFORM 9558c2ecf20Sopenharmony_ci help 9568c2ecf20Sopenharmony_ci This option enables the workaround for the 743622 Cortex-A9 9578c2ecf20Sopenharmony_ci (r2p*) erratum. Under very rare conditions, a faulty 9588c2ecf20Sopenharmony_ci optimisation in the Cortex-A9 Store Buffer may lead to data 9598c2ecf20Sopenharmony_ci corruption. This workaround sets a specific bit in the diagnostic 9608c2ecf20Sopenharmony_ci register of the Cortex-A9 which disables the Store Buffer 9618c2ecf20Sopenharmony_ci optimisation, preventing the defect from occurring. This has no 9628c2ecf20Sopenharmony_ci visible impact on the overall performance or power consumption of the 9638c2ecf20Sopenharmony_ci processor. 9648c2ecf20Sopenharmony_ci 9658c2ecf20Sopenharmony_ciconfig ARM_ERRATA_751472 9668c2ecf20Sopenharmony_ci bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation" 9678c2ecf20Sopenharmony_ci depends on CPU_V7 9688c2ecf20Sopenharmony_ci depends on !ARCH_MULTIPLATFORM 9698c2ecf20Sopenharmony_ci help 9708c2ecf20Sopenharmony_ci This option enables the workaround for the 751472 Cortex-A9 (prior 9718c2ecf20Sopenharmony_ci to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the 9728c2ecf20Sopenharmony_ci completion of a following broadcasted operation if the second 9738c2ecf20Sopenharmony_ci operation is received by a CPU before the ICIALLUIS has completed, 9748c2ecf20Sopenharmony_ci potentially leading to corrupted entries in the cache or TLB. 9758c2ecf20Sopenharmony_ci 9768c2ecf20Sopenharmony_ciconfig ARM_ERRATA_754322 9778c2ecf20Sopenharmony_ci bool "ARM errata: possible faulty MMU translations following an ASID switch" 9788c2ecf20Sopenharmony_ci depends on CPU_V7 9798c2ecf20Sopenharmony_ci help 9808c2ecf20Sopenharmony_ci This option enables the workaround for the 754322 Cortex-A9 (r2p*, 9818c2ecf20Sopenharmony_ci r3p*) erratum. A speculative memory access may cause a page table walk 9828c2ecf20Sopenharmony_ci which starts prior to an ASID switch but completes afterwards. This 9838c2ecf20Sopenharmony_ci can populate the micro-TLB with a stale entry which may be hit with 9848c2ecf20Sopenharmony_ci the new ASID. This workaround places two dsb instructions in the mm 9858c2ecf20Sopenharmony_ci switching code so that no page table walks can cross the ASID switch. 9868c2ecf20Sopenharmony_ci 9878c2ecf20Sopenharmony_ciconfig ARM_ERRATA_754327 9888c2ecf20Sopenharmony_ci bool "ARM errata: no automatic Store Buffer drain" 9898c2ecf20Sopenharmony_ci depends on CPU_V7 && SMP 9908c2ecf20Sopenharmony_ci help 9918c2ecf20Sopenharmony_ci This option enables the workaround for the 754327 Cortex-A9 (prior to 9928c2ecf20Sopenharmony_ci r2p0) erratum. The Store Buffer does not have any automatic draining 9938c2ecf20Sopenharmony_ci mechanism and therefore a livelock may occur if an external agent 9948c2ecf20Sopenharmony_ci continuously polls a memory location waiting to observe an update. 9958c2ecf20Sopenharmony_ci This workaround defines cpu_relax() as smp_mb(), preventing correctly 9968c2ecf20Sopenharmony_ci written polling loops from denying visibility of updates to memory. 9978c2ecf20Sopenharmony_ci 9988c2ecf20Sopenharmony_ciconfig ARM_ERRATA_364296 9998c2ecf20Sopenharmony_ci bool "ARM errata: Possible cache data corruption with hit-under-miss enabled" 10008c2ecf20Sopenharmony_ci depends on CPU_V6 10018c2ecf20Sopenharmony_ci help 10028c2ecf20Sopenharmony_ci This options enables the workaround for the 364296 ARM1136 10038c2ecf20Sopenharmony_ci r0p2 erratum (possible cache data corruption with 10048c2ecf20Sopenharmony_ci hit-under-miss enabled). It sets the undocumented bit 31 in 10058c2ecf20Sopenharmony_ci the auxiliary control register and the FI bit in the control 10068c2ecf20Sopenharmony_ci register, thus disabling hit-under-miss without putting the 10078c2ecf20Sopenharmony_ci processor into full low interrupt latency mode. ARM11MPCore 10088c2ecf20Sopenharmony_ci is not affected. 10098c2ecf20Sopenharmony_ci 10108c2ecf20Sopenharmony_ciconfig ARM_ERRATA_764369 10118c2ecf20Sopenharmony_ci bool "ARM errata: Data cache line maintenance operation by MVA may not succeed" 10128c2ecf20Sopenharmony_ci depends on CPU_V7 && SMP 10138c2ecf20Sopenharmony_ci help 10148c2ecf20Sopenharmony_ci This option enables the workaround for erratum 764369 10158c2ecf20Sopenharmony_ci affecting Cortex-A9 MPCore with two or more processors (all 10168c2ecf20Sopenharmony_ci current revisions). Under certain timing circumstances, a data 10178c2ecf20Sopenharmony_ci cache line maintenance operation by MVA targeting an Inner 10188c2ecf20Sopenharmony_ci Shareable memory region may fail to proceed up to either the 10198c2ecf20Sopenharmony_ci Point of Coherency or to the Point of Unification of the 10208c2ecf20Sopenharmony_ci system. This workaround adds a DSB instruction before the 10218c2ecf20Sopenharmony_ci relevant cache maintenance functions and sets a specific bit 10228c2ecf20Sopenharmony_ci in the diagnostic control register of the SCU. 10238c2ecf20Sopenharmony_ci 10248c2ecf20Sopenharmony_ciconfig ARM_ERRATA_775420 10258c2ecf20Sopenharmony_ci bool "ARM errata: A data cache maintenance operation which aborts, might lead to deadlock" 10268c2ecf20Sopenharmony_ci depends on CPU_V7 10278c2ecf20Sopenharmony_ci help 10288c2ecf20Sopenharmony_ci This option enables the workaround for the 775420 Cortex-A9 (r2p2, 10298c2ecf20Sopenharmony_ci r2p6,r2p8,r2p10,r3p0) erratum. In case a data cache maintenance 10308c2ecf20Sopenharmony_ci operation aborts with MMU exception, it might cause the processor 10318c2ecf20Sopenharmony_ci to deadlock. This workaround puts DSB before executing ISB if 10328c2ecf20Sopenharmony_ci an abort may occur on cache maintenance. 10338c2ecf20Sopenharmony_ci 10348c2ecf20Sopenharmony_ciconfig ARM_ERRATA_798181 10358c2ecf20Sopenharmony_ci bool "ARM errata: TLBI/DSB failure on Cortex-A15" 10368c2ecf20Sopenharmony_ci depends on CPU_V7 && SMP 10378c2ecf20Sopenharmony_ci help 10388c2ecf20Sopenharmony_ci On Cortex-A15 (r0p0..r3p2) the TLBI*IS/DSB operations are not 10398c2ecf20Sopenharmony_ci adequately shooting down all use of the old entries. This 10408c2ecf20Sopenharmony_ci option enables the Linux kernel workaround for this erratum 10418c2ecf20Sopenharmony_ci which sends an IPI to the CPUs that are running the same ASID 10428c2ecf20Sopenharmony_ci as the one being invalidated. 10438c2ecf20Sopenharmony_ci 10448c2ecf20Sopenharmony_ciconfig ARM_ERRATA_773022 10458c2ecf20Sopenharmony_ci bool "ARM errata: incorrect instructions may be executed from loop buffer" 10468c2ecf20Sopenharmony_ci depends on CPU_V7 10478c2ecf20Sopenharmony_ci help 10488c2ecf20Sopenharmony_ci This option enables the workaround for the 773022 Cortex-A15 10498c2ecf20Sopenharmony_ci (up to r0p4) erratum. In certain rare sequences of code, the 10508c2ecf20Sopenharmony_ci loop buffer may deliver incorrect instructions. This 10518c2ecf20Sopenharmony_ci workaround disables the loop buffer to avoid the erratum. 10528c2ecf20Sopenharmony_ci 10538c2ecf20Sopenharmony_ciconfig ARM_ERRATA_818325_852422 10548c2ecf20Sopenharmony_ci bool "ARM errata: A12: some seqs of opposed cond code instrs => deadlock or corruption" 10558c2ecf20Sopenharmony_ci depends on CPU_V7 10568c2ecf20Sopenharmony_ci help 10578c2ecf20Sopenharmony_ci This option enables the workaround for: 10588c2ecf20Sopenharmony_ci - Cortex-A12 818325: Execution of an UNPREDICTABLE STR or STM 10598c2ecf20Sopenharmony_ci instruction might deadlock. Fixed in r0p1. 10608c2ecf20Sopenharmony_ci - Cortex-A12 852422: Execution of a sequence of instructions might 10618c2ecf20Sopenharmony_ci lead to either a data corruption or a CPU deadlock. Not fixed in 10628c2ecf20Sopenharmony_ci any Cortex-A12 cores yet. 10638c2ecf20Sopenharmony_ci This workaround for all both errata involves setting bit[12] of the 10648c2ecf20Sopenharmony_ci Feature Register. This bit disables an optimisation applied to a 10658c2ecf20Sopenharmony_ci sequence of 2 instructions that use opposing condition codes. 10668c2ecf20Sopenharmony_ci 10678c2ecf20Sopenharmony_ciconfig ARM_ERRATA_821420 10688c2ecf20Sopenharmony_ci bool "ARM errata: A12: sequence of VMOV to core registers might lead to a dead lock" 10698c2ecf20Sopenharmony_ci depends on CPU_V7 10708c2ecf20Sopenharmony_ci help 10718c2ecf20Sopenharmony_ci This option enables the workaround for the 821420 Cortex-A12 10728c2ecf20Sopenharmony_ci (all revs) erratum. In very rare timing conditions, a sequence 10738c2ecf20Sopenharmony_ci of VMOV to Core registers instructions, for which the second 10748c2ecf20Sopenharmony_ci one is in the shadow of a branch or abort, can lead to a 10758c2ecf20Sopenharmony_ci deadlock when the VMOV instructions are issued out-of-order. 10768c2ecf20Sopenharmony_ci 10778c2ecf20Sopenharmony_ciconfig ARM_ERRATA_825619 10788c2ecf20Sopenharmony_ci bool "ARM errata: A12: DMB NSHST/ISHST mixed ... might cause deadlock" 10798c2ecf20Sopenharmony_ci depends on CPU_V7 10808c2ecf20Sopenharmony_ci help 10818c2ecf20Sopenharmony_ci This option enables the workaround for the 825619 Cortex-A12 10828c2ecf20Sopenharmony_ci (all revs) erratum. Within rare timing constraints, executing a 10838c2ecf20Sopenharmony_ci DMB NSHST or DMB ISHST instruction followed by a mix of Cacheable 10848c2ecf20Sopenharmony_ci and Device/Strongly-Ordered loads and stores might cause deadlock 10858c2ecf20Sopenharmony_ci 10868c2ecf20Sopenharmony_ciconfig ARM_ERRATA_857271 10878c2ecf20Sopenharmony_ci bool "ARM errata: A12: CPU might deadlock under some very rare internal conditions" 10888c2ecf20Sopenharmony_ci depends on CPU_V7 10898c2ecf20Sopenharmony_ci help 10908c2ecf20Sopenharmony_ci This option enables the workaround for the 857271 Cortex-A12 10918c2ecf20Sopenharmony_ci (all revs) erratum. Under very rare timing conditions, the CPU might 10928c2ecf20Sopenharmony_ci hang. The workaround is expected to have a < 1% performance impact. 10938c2ecf20Sopenharmony_ci 10948c2ecf20Sopenharmony_ciconfig ARM_ERRATA_852421 10958c2ecf20Sopenharmony_ci bool "ARM errata: A17: DMB ST might fail to create order between stores" 10968c2ecf20Sopenharmony_ci depends on CPU_V7 10978c2ecf20Sopenharmony_ci help 10988c2ecf20Sopenharmony_ci This option enables the workaround for the 852421 Cortex-A17 10998c2ecf20Sopenharmony_ci (r1p0, r1p1, r1p2) erratum. Under very rare timing conditions, 11008c2ecf20Sopenharmony_ci execution of a DMB ST instruction might fail to properly order 11018c2ecf20Sopenharmony_ci stores from GroupA and stores from GroupB. 11028c2ecf20Sopenharmony_ci 11038c2ecf20Sopenharmony_ciconfig ARM_ERRATA_852423 11048c2ecf20Sopenharmony_ci bool "ARM errata: A17: some seqs of opposed cond code instrs => deadlock or corruption" 11058c2ecf20Sopenharmony_ci depends on CPU_V7 11068c2ecf20Sopenharmony_ci help 11078c2ecf20Sopenharmony_ci This option enables the workaround for: 11088c2ecf20Sopenharmony_ci - Cortex-A17 852423: Execution of a sequence of instructions might 11098c2ecf20Sopenharmony_ci lead to either a data corruption or a CPU deadlock. Not fixed in 11108c2ecf20Sopenharmony_ci any Cortex-A17 cores yet. 11118c2ecf20Sopenharmony_ci This is identical to Cortex-A12 erratum 852422. It is a separate 11128c2ecf20Sopenharmony_ci config option from the A12 erratum due to the way errata are checked 11138c2ecf20Sopenharmony_ci for and handled. 11148c2ecf20Sopenharmony_ci 11158c2ecf20Sopenharmony_ciconfig ARM_ERRATA_857272 11168c2ecf20Sopenharmony_ci bool "ARM errata: A17: CPU might deadlock under some very rare internal conditions" 11178c2ecf20Sopenharmony_ci depends on CPU_V7 11188c2ecf20Sopenharmony_ci help 11198c2ecf20Sopenharmony_ci This option enables the workaround for the 857272 Cortex-A17 erratum. 11208c2ecf20Sopenharmony_ci This erratum is not known to be fixed in any A17 revision. 11218c2ecf20Sopenharmony_ci This is identical to Cortex-A12 erratum 857271. It is a separate 11228c2ecf20Sopenharmony_ci config option from the A12 erratum due to the way errata are checked 11238c2ecf20Sopenharmony_ci for and handled. 11248c2ecf20Sopenharmony_ci 11258c2ecf20Sopenharmony_ciendmenu 11268c2ecf20Sopenharmony_ci 11278c2ecf20Sopenharmony_cisource "arch/arm/common/Kconfig" 11288c2ecf20Sopenharmony_ci 11298c2ecf20Sopenharmony_cimenu "Bus support" 11308c2ecf20Sopenharmony_ci 11318c2ecf20Sopenharmony_ciconfig ISA 11328c2ecf20Sopenharmony_ci bool 11338c2ecf20Sopenharmony_ci help 11348c2ecf20Sopenharmony_ci Find out whether you have ISA slots on your motherboard. ISA is the 11358c2ecf20Sopenharmony_ci name of a bus system, i.e. the way the CPU talks to the other stuff 11368c2ecf20Sopenharmony_ci inside your box. Other bus systems are PCI, EISA, MicroChannel 11378c2ecf20Sopenharmony_ci (MCA) or VESA. ISA is an older system, now being displaced by PCI; 11388c2ecf20Sopenharmony_ci newer boards don't support it. If you have ISA, say Y, otherwise N. 11398c2ecf20Sopenharmony_ci 11408c2ecf20Sopenharmony_ci# Select ISA DMA controller support 11418c2ecf20Sopenharmony_ciconfig ISA_DMA 11428c2ecf20Sopenharmony_ci bool 11438c2ecf20Sopenharmony_ci select ISA_DMA_API 11448c2ecf20Sopenharmony_ci 11458c2ecf20Sopenharmony_ci# Select ISA DMA interface 11468c2ecf20Sopenharmony_ciconfig ISA_DMA_API 11478c2ecf20Sopenharmony_ci bool 11488c2ecf20Sopenharmony_ci 11498c2ecf20Sopenharmony_ciconfig PCI_NANOENGINE 11508c2ecf20Sopenharmony_ci bool "BSE nanoEngine PCI support" 11518c2ecf20Sopenharmony_ci depends on SA1100_NANOENGINE 11528c2ecf20Sopenharmony_ci help 11538c2ecf20Sopenharmony_ci Enable PCI on the BSE nanoEngine board. 11548c2ecf20Sopenharmony_ci 11558c2ecf20Sopenharmony_ciconfig ARM_ERRATA_814220 11568c2ecf20Sopenharmony_ci bool "ARM errata: Cache maintenance by set/way operations can execute out of order" 11578c2ecf20Sopenharmony_ci depends on CPU_V7 11588c2ecf20Sopenharmony_ci help 11598c2ecf20Sopenharmony_ci The v7 ARM states that all cache and branch predictor maintenance 11608c2ecf20Sopenharmony_ci operations that do not specify an address execute, relative to 11618c2ecf20Sopenharmony_ci each other, in program order. 11628c2ecf20Sopenharmony_ci However, because of this erratum, an L2 set/way cache maintenance 11638c2ecf20Sopenharmony_ci operation can overtake an L1 set/way cache maintenance operation. 11648c2ecf20Sopenharmony_ci This ERRATA only affected the Cortex-A7 and present in r0p2, r0p3, 11658c2ecf20Sopenharmony_ci r0p4, r0p5. 11668c2ecf20Sopenharmony_ci 11678c2ecf20Sopenharmony_ciendmenu 11688c2ecf20Sopenharmony_ci 11698c2ecf20Sopenharmony_cimenu "Kernel Features" 11708c2ecf20Sopenharmony_ci 11718c2ecf20Sopenharmony_ciconfig HAVE_SMP 11728c2ecf20Sopenharmony_ci bool 11738c2ecf20Sopenharmony_ci help 11748c2ecf20Sopenharmony_ci This option should be selected by machines which have an SMP- 11758c2ecf20Sopenharmony_ci capable CPU. 11768c2ecf20Sopenharmony_ci 11778c2ecf20Sopenharmony_ci The only effect of this option is to make the SMP-related 11788c2ecf20Sopenharmony_ci options available to the user for configuration. 11798c2ecf20Sopenharmony_ci 11808c2ecf20Sopenharmony_ciconfig SMP 11818c2ecf20Sopenharmony_ci bool "Symmetric Multi-Processing" 11828c2ecf20Sopenharmony_ci depends on CPU_V6K || CPU_V7 11838c2ecf20Sopenharmony_ci depends on GENERIC_CLOCKEVENTS 11848c2ecf20Sopenharmony_ci depends on HAVE_SMP 11858c2ecf20Sopenharmony_ci depends on MMU || ARM_MPU 11868c2ecf20Sopenharmony_ci select IRQ_WORK 11878c2ecf20Sopenharmony_ci help 11888c2ecf20Sopenharmony_ci This enables support for systems with more than one CPU. If you have 11898c2ecf20Sopenharmony_ci a system with only one CPU, say N. If you have a system with more 11908c2ecf20Sopenharmony_ci than one CPU, say Y. 11918c2ecf20Sopenharmony_ci 11928c2ecf20Sopenharmony_ci If you say N here, the kernel will run on uni- and multiprocessor 11938c2ecf20Sopenharmony_ci machines, but will use only one CPU of a multiprocessor machine. If 11948c2ecf20Sopenharmony_ci you say Y here, the kernel will run on many, but not all, 11958c2ecf20Sopenharmony_ci uniprocessor machines. On a uniprocessor machine, the kernel 11968c2ecf20Sopenharmony_ci will run faster if you say N here. 11978c2ecf20Sopenharmony_ci 11988c2ecf20Sopenharmony_ci See also <file:Documentation/x86/i386/IO-APIC.rst>, 11998c2ecf20Sopenharmony_ci <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at 12008c2ecf20Sopenharmony_ci <http://tldp.org/HOWTO/SMP-HOWTO.html>. 12018c2ecf20Sopenharmony_ci 12028c2ecf20Sopenharmony_ci If you don't know what to do here, say N. 12038c2ecf20Sopenharmony_ci 12048c2ecf20Sopenharmony_ciconfig SMP_ON_UP 12058c2ecf20Sopenharmony_ci bool "Allow booting SMP kernel on uniprocessor systems" 12068c2ecf20Sopenharmony_ci depends on SMP && !XIP_KERNEL && MMU 12078c2ecf20Sopenharmony_ci default y 12088c2ecf20Sopenharmony_ci help 12098c2ecf20Sopenharmony_ci SMP kernels contain instructions which fail on non-SMP processors. 12108c2ecf20Sopenharmony_ci Enabling this option allows the kernel to modify itself to make 12118c2ecf20Sopenharmony_ci these instructions safe. Disabling it allows about 1K of space 12128c2ecf20Sopenharmony_ci savings. 12138c2ecf20Sopenharmony_ci 12148c2ecf20Sopenharmony_ci If you don't know what to do here, say Y. 12158c2ecf20Sopenharmony_ci 12168c2ecf20Sopenharmony_ciconfig ARM_CPU_TOPOLOGY 12178c2ecf20Sopenharmony_ci bool "Support cpu topology definition" 12188c2ecf20Sopenharmony_ci depends on SMP && CPU_V7 12198c2ecf20Sopenharmony_ci default y 12208c2ecf20Sopenharmony_ci help 12218c2ecf20Sopenharmony_ci Support ARM cpu topology definition. The MPIDR register defines 12228c2ecf20Sopenharmony_ci affinity between processors which is then used to describe the cpu 12238c2ecf20Sopenharmony_ci topology of an ARM System. 12248c2ecf20Sopenharmony_ci 12258c2ecf20Sopenharmony_ciconfig SCHED_MC 12268c2ecf20Sopenharmony_ci bool "Multi-core scheduler support" 12278c2ecf20Sopenharmony_ci depends on ARM_CPU_TOPOLOGY 12288c2ecf20Sopenharmony_ci help 12298c2ecf20Sopenharmony_ci Multi-core scheduler support improves the CPU scheduler's decision 12308c2ecf20Sopenharmony_ci making when dealing with multi-core CPU chips at a cost of slightly 12318c2ecf20Sopenharmony_ci increased overhead in some places. If unsure say N here. 12328c2ecf20Sopenharmony_ci 12338c2ecf20Sopenharmony_ciconfig SCHED_SMT 12348c2ecf20Sopenharmony_ci bool "SMT scheduler support" 12358c2ecf20Sopenharmony_ci depends on ARM_CPU_TOPOLOGY 12368c2ecf20Sopenharmony_ci help 12378c2ecf20Sopenharmony_ci Improves the CPU scheduler's decision making when dealing with 12388c2ecf20Sopenharmony_ci MultiThreading at a cost of slightly increased overhead in some 12398c2ecf20Sopenharmony_ci places. If unsure say N here. 12408c2ecf20Sopenharmony_ci 12418c2ecf20Sopenharmony_ciconfig HAVE_ARM_SCU 12428c2ecf20Sopenharmony_ci bool 12438c2ecf20Sopenharmony_ci help 12448c2ecf20Sopenharmony_ci This option enables support for the ARM snoop control unit 12458c2ecf20Sopenharmony_ci 12468c2ecf20Sopenharmony_ciconfig HAVE_ARM_ARCH_TIMER 12478c2ecf20Sopenharmony_ci bool "Architected timer support" 12488c2ecf20Sopenharmony_ci depends on CPU_V7 12498c2ecf20Sopenharmony_ci select ARM_ARCH_TIMER 12508c2ecf20Sopenharmony_ci help 12518c2ecf20Sopenharmony_ci This option enables support for the ARM architected timer 12528c2ecf20Sopenharmony_ci 12538c2ecf20Sopenharmony_ciconfig HAVE_ARM_TWD 12548c2ecf20Sopenharmony_ci bool 12558c2ecf20Sopenharmony_ci help 12568c2ecf20Sopenharmony_ci This options enables support for the ARM timer and watchdog unit 12578c2ecf20Sopenharmony_ci 12588c2ecf20Sopenharmony_ciconfig MCPM 12598c2ecf20Sopenharmony_ci bool "Multi-Cluster Power Management" 12608c2ecf20Sopenharmony_ci depends on CPU_V7 && SMP 12618c2ecf20Sopenharmony_ci help 12628c2ecf20Sopenharmony_ci This option provides the common power management infrastructure 12638c2ecf20Sopenharmony_ci for (multi-)cluster based systems, such as big.LITTLE based 12648c2ecf20Sopenharmony_ci systems. 12658c2ecf20Sopenharmony_ci 12668c2ecf20Sopenharmony_ciconfig MCPM_QUAD_CLUSTER 12678c2ecf20Sopenharmony_ci bool 12688c2ecf20Sopenharmony_ci depends on MCPM 12698c2ecf20Sopenharmony_ci help 12708c2ecf20Sopenharmony_ci To avoid wasting resources unnecessarily, MCPM only supports up 12718c2ecf20Sopenharmony_ci to 2 clusters by default. 12728c2ecf20Sopenharmony_ci Platforms with 3 or 4 clusters that use MCPM must select this 12738c2ecf20Sopenharmony_ci option to allow the additional clusters to be managed. 12748c2ecf20Sopenharmony_ci 12758c2ecf20Sopenharmony_ciconfig BIG_LITTLE 12768c2ecf20Sopenharmony_ci bool "big.LITTLE support (Experimental)" 12778c2ecf20Sopenharmony_ci depends on CPU_V7 && SMP 12788c2ecf20Sopenharmony_ci select MCPM 12798c2ecf20Sopenharmony_ci help 12808c2ecf20Sopenharmony_ci This option enables support selections for the big.LITTLE 12818c2ecf20Sopenharmony_ci system architecture. 12828c2ecf20Sopenharmony_ci 12838c2ecf20Sopenharmony_ciconfig BL_SWITCHER 12848c2ecf20Sopenharmony_ci bool "big.LITTLE switcher support" 12858c2ecf20Sopenharmony_ci depends on BIG_LITTLE && MCPM && HOTPLUG_CPU && ARM_GIC 12868c2ecf20Sopenharmony_ci select CPU_PM 12878c2ecf20Sopenharmony_ci help 12888c2ecf20Sopenharmony_ci The big.LITTLE "switcher" provides the core functionality to 12898c2ecf20Sopenharmony_ci transparently handle transition between a cluster of A15's 12908c2ecf20Sopenharmony_ci and a cluster of A7's in a big.LITTLE system. 12918c2ecf20Sopenharmony_ci 12928c2ecf20Sopenharmony_ciconfig BL_SWITCHER_DUMMY_IF 12938c2ecf20Sopenharmony_ci tristate "Simple big.LITTLE switcher user interface" 12948c2ecf20Sopenharmony_ci depends on BL_SWITCHER && DEBUG_KERNEL 12958c2ecf20Sopenharmony_ci help 12968c2ecf20Sopenharmony_ci This is a simple and dummy char dev interface to control 12978c2ecf20Sopenharmony_ci the big.LITTLE switcher core code. It is meant for 12988c2ecf20Sopenharmony_ci debugging purposes only. 12998c2ecf20Sopenharmony_ci 13008c2ecf20Sopenharmony_cichoice 13018c2ecf20Sopenharmony_ci prompt "Memory split" 13028c2ecf20Sopenharmony_ci depends on MMU 13038c2ecf20Sopenharmony_ci default VMSPLIT_3G 13048c2ecf20Sopenharmony_ci help 13058c2ecf20Sopenharmony_ci Select the desired split between kernel and user memory. 13068c2ecf20Sopenharmony_ci 13078c2ecf20Sopenharmony_ci If you are not absolutely sure what you are doing, leave this 13088c2ecf20Sopenharmony_ci option alone! 13098c2ecf20Sopenharmony_ci 13108c2ecf20Sopenharmony_ci config VMSPLIT_3G 13118c2ecf20Sopenharmony_ci bool "3G/1G user/kernel split" 13128c2ecf20Sopenharmony_ci config VMSPLIT_3G_OPT 13138c2ecf20Sopenharmony_ci depends on !ARM_LPAE 13148c2ecf20Sopenharmony_ci bool "3G/1G user/kernel split (for full 1G low memory)" 13158c2ecf20Sopenharmony_ci config VMSPLIT_2G 13168c2ecf20Sopenharmony_ci bool "2G/2G user/kernel split" 13178c2ecf20Sopenharmony_ci config VMSPLIT_1G 13188c2ecf20Sopenharmony_ci bool "1G/3G user/kernel split" 13198c2ecf20Sopenharmony_ciendchoice 13208c2ecf20Sopenharmony_ci 13218c2ecf20Sopenharmony_ciconfig PAGE_OFFSET 13228c2ecf20Sopenharmony_ci hex 13238c2ecf20Sopenharmony_ci default PHYS_OFFSET if !MMU 13248c2ecf20Sopenharmony_ci default 0x40000000 if VMSPLIT_1G 13258c2ecf20Sopenharmony_ci default 0x80000000 if VMSPLIT_2G 13268c2ecf20Sopenharmony_ci default 0xB0000000 if VMSPLIT_3G_OPT 13278c2ecf20Sopenharmony_ci default 0xC0000000 13288c2ecf20Sopenharmony_ci 13298c2ecf20Sopenharmony_ciconfig KASAN_SHADOW_OFFSET 13308c2ecf20Sopenharmony_ci hex 13318c2ecf20Sopenharmony_ci depends on KASAN 13328c2ecf20Sopenharmony_ci default 0x1f000000 if PAGE_OFFSET=0x40000000 13338c2ecf20Sopenharmony_ci default 0x5f000000 if PAGE_OFFSET=0x80000000 13348c2ecf20Sopenharmony_ci default 0x9f000000 if PAGE_OFFSET=0xC0000000 13358c2ecf20Sopenharmony_ci default 0x8f000000 if PAGE_OFFSET=0xB0000000 13368c2ecf20Sopenharmony_ci default 0xffffffff 13378c2ecf20Sopenharmony_ci 13388c2ecf20Sopenharmony_ciconfig NR_CPUS 13398c2ecf20Sopenharmony_ci int "Maximum number of CPUs (2-32)" 13408c2ecf20Sopenharmony_ci range 2 32 13418c2ecf20Sopenharmony_ci depends on SMP 13428c2ecf20Sopenharmony_ci default "4" 13438c2ecf20Sopenharmony_ci 13448c2ecf20Sopenharmony_ciconfig HOTPLUG_CPU 13458c2ecf20Sopenharmony_ci bool "Support for hot-pluggable CPUs" 13468c2ecf20Sopenharmony_ci depends on SMP 13478c2ecf20Sopenharmony_ci select GENERIC_IRQ_MIGRATION 13488c2ecf20Sopenharmony_ci help 13498c2ecf20Sopenharmony_ci Say Y here to experiment with turning CPUs off and on. CPUs 13508c2ecf20Sopenharmony_ci can be controlled through /sys/devices/system/cpu. 13518c2ecf20Sopenharmony_ci 13528c2ecf20Sopenharmony_ciconfig ARM_PSCI 13538c2ecf20Sopenharmony_ci bool "Support for the ARM Power State Coordination Interface (PSCI)" 13548c2ecf20Sopenharmony_ci depends on HAVE_ARM_SMCCC 13558c2ecf20Sopenharmony_ci select ARM_PSCI_FW 13568c2ecf20Sopenharmony_ci help 13578c2ecf20Sopenharmony_ci Say Y here if you want Linux to communicate with system firmware 13588c2ecf20Sopenharmony_ci implementing the PSCI specification for CPU-centric power 13598c2ecf20Sopenharmony_ci management operations described in ARM document number ARM DEN 13608c2ecf20Sopenharmony_ci 0022A ("Power State Coordination Interface System Software on 13618c2ecf20Sopenharmony_ci ARM processors"). 13628c2ecf20Sopenharmony_ci 13638c2ecf20Sopenharmony_ci# The GPIO number here must be sorted by descending number. In case of 13648c2ecf20Sopenharmony_ci# a multiplatform kernel, we just want the highest value required by the 13658c2ecf20Sopenharmony_ci# selected platforms. 13668c2ecf20Sopenharmony_ciconfig ARCH_NR_GPIO 13678c2ecf20Sopenharmony_ci int 13688c2ecf20Sopenharmony_ci default 2048 if ARCH_SOCFPGA 13698c2ecf20Sopenharmony_ci default 1024 if ARCH_BRCMSTB || ARCH_RENESAS || ARCH_TEGRA || \ 13708c2ecf20Sopenharmony_ci ARCH_ZYNQ || ARCH_ASPEED 13718c2ecf20Sopenharmony_ci default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || \ 13728c2ecf20Sopenharmony_ci SOC_DRA7XX || ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210 13738c2ecf20Sopenharmony_ci default 416 if ARCH_SUNXI 13748c2ecf20Sopenharmony_ci default 392 if ARCH_U8500 13758c2ecf20Sopenharmony_ci default 352 if ARCH_VT8500 13768c2ecf20Sopenharmony_ci default 288 if ARCH_ROCKCHIP 13778c2ecf20Sopenharmony_ci default 264 if MACH_H4700 13788c2ecf20Sopenharmony_ci default 0 13798c2ecf20Sopenharmony_ci help 13808c2ecf20Sopenharmony_ci Maximum number of GPIOs in the system. 13818c2ecf20Sopenharmony_ci 13828c2ecf20Sopenharmony_ci If unsure, leave the default value. 13838c2ecf20Sopenharmony_ci 13848c2ecf20Sopenharmony_ciconfig HZ_FIXED 13858c2ecf20Sopenharmony_ci int 13868c2ecf20Sopenharmony_ci default 200 if ARCH_EBSA110 13878c2ecf20Sopenharmony_ci default 128 if SOC_AT91RM9200 13888c2ecf20Sopenharmony_ci default 0 13898c2ecf20Sopenharmony_ci 13908c2ecf20Sopenharmony_cichoice 13918c2ecf20Sopenharmony_ci depends on HZ_FIXED = 0 13928c2ecf20Sopenharmony_ci prompt "Timer frequency" 13938c2ecf20Sopenharmony_ci 13948c2ecf20Sopenharmony_ciconfig HZ_100 13958c2ecf20Sopenharmony_ci bool "100 Hz" 13968c2ecf20Sopenharmony_ci 13978c2ecf20Sopenharmony_ciconfig HZ_200 13988c2ecf20Sopenharmony_ci bool "200 Hz" 13998c2ecf20Sopenharmony_ci 14008c2ecf20Sopenharmony_ciconfig HZ_250 14018c2ecf20Sopenharmony_ci bool "250 Hz" 14028c2ecf20Sopenharmony_ci 14038c2ecf20Sopenharmony_ciconfig HZ_300 14048c2ecf20Sopenharmony_ci bool "300 Hz" 14058c2ecf20Sopenharmony_ci 14068c2ecf20Sopenharmony_ciconfig HZ_500 14078c2ecf20Sopenharmony_ci bool "500 Hz" 14088c2ecf20Sopenharmony_ci 14098c2ecf20Sopenharmony_ciconfig HZ_1000 14108c2ecf20Sopenharmony_ci bool "1000 Hz" 14118c2ecf20Sopenharmony_ci 14128c2ecf20Sopenharmony_ciendchoice 14138c2ecf20Sopenharmony_ci 14148c2ecf20Sopenharmony_ciconfig HZ 14158c2ecf20Sopenharmony_ci int 14168c2ecf20Sopenharmony_ci default HZ_FIXED if HZ_FIXED != 0 14178c2ecf20Sopenharmony_ci default 100 if HZ_100 14188c2ecf20Sopenharmony_ci default 200 if HZ_200 14198c2ecf20Sopenharmony_ci default 250 if HZ_250 14208c2ecf20Sopenharmony_ci default 300 if HZ_300 14218c2ecf20Sopenharmony_ci default 500 if HZ_500 14228c2ecf20Sopenharmony_ci default 1000 14238c2ecf20Sopenharmony_ci 14248c2ecf20Sopenharmony_ciconfig SCHED_HRTICK 14258c2ecf20Sopenharmony_ci def_bool HIGH_RES_TIMERS 14268c2ecf20Sopenharmony_ci 14278c2ecf20Sopenharmony_ciconfig THUMB2_KERNEL 14288c2ecf20Sopenharmony_ci bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY 14298c2ecf20Sopenharmony_ci depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K 14308c2ecf20Sopenharmony_ci default y if CPU_THUMBONLY 14318c2ecf20Sopenharmony_ci select ARM_UNWIND 14328c2ecf20Sopenharmony_ci help 14338c2ecf20Sopenharmony_ci By enabling this option, the kernel will be compiled in 14348c2ecf20Sopenharmony_ci Thumb-2 mode. 14358c2ecf20Sopenharmony_ci 14368c2ecf20Sopenharmony_ci If unsure, say N. 14378c2ecf20Sopenharmony_ci 14388c2ecf20Sopenharmony_ciconfig ARM_PATCH_IDIV 14398c2ecf20Sopenharmony_ci bool "Runtime patch udiv/sdiv instructions into __aeabi_{u}idiv()" 14408c2ecf20Sopenharmony_ci depends on CPU_32v7 && !XIP_KERNEL 14418c2ecf20Sopenharmony_ci default y 14428c2ecf20Sopenharmony_ci help 14438c2ecf20Sopenharmony_ci The ARM compiler inserts calls to __aeabi_idiv() and 14448c2ecf20Sopenharmony_ci __aeabi_uidiv() when it needs to perform division on signed 14458c2ecf20Sopenharmony_ci and unsigned integers. Some v7 CPUs have support for the sdiv 14468c2ecf20Sopenharmony_ci and udiv instructions that can be used to implement those 14478c2ecf20Sopenharmony_ci functions. 14488c2ecf20Sopenharmony_ci 14498c2ecf20Sopenharmony_ci Enabling this option allows the kernel to modify itself to 14508c2ecf20Sopenharmony_ci replace the first two instructions of these library functions 14518c2ecf20Sopenharmony_ci with the sdiv or udiv plus "bx lr" instructions when the CPU 14528c2ecf20Sopenharmony_ci it is running on supports them. Typically this will be faster 14538c2ecf20Sopenharmony_ci and less power intensive than running the original library 14548c2ecf20Sopenharmony_ci code to do integer division. 14558c2ecf20Sopenharmony_ci 14568c2ecf20Sopenharmony_ciconfig AEABI 14578c2ecf20Sopenharmony_ci bool "Use the ARM EABI to compile the kernel" if !CPU_V7 && \ 14588c2ecf20Sopenharmony_ci !CPU_V7M && !CPU_V6 && !CPU_V6K && !CC_IS_CLANG 14598c2ecf20Sopenharmony_ci default CPU_V7 || CPU_V7M || CPU_V6 || CPU_V6K || CC_IS_CLANG 14608c2ecf20Sopenharmony_ci help 14618c2ecf20Sopenharmony_ci This option allows for the kernel to be compiled using the latest 14628c2ecf20Sopenharmony_ci ARM ABI (aka EABI). This is only useful if you are using a user 14638c2ecf20Sopenharmony_ci space environment that is also compiled with EABI. 14648c2ecf20Sopenharmony_ci 14658c2ecf20Sopenharmony_ci Since there are major incompatibilities between the legacy ABI and 14668c2ecf20Sopenharmony_ci EABI, especially with regard to structure member alignment, this 14678c2ecf20Sopenharmony_ci option also changes the kernel syscall calling convention to 14688c2ecf20Sopenharmony_ci disambiguate both ABIs and allow for backward compatibility support 14698c2ecf20Sopenharmony_ci (selected with CONFIG_OABI_COMPAT). 14708c2ecf20Sopenharmony_ci 14718c2ecf20Sopenharmony_ci To use this you need GCC version 4.0.0 or later. 14728c2ecf20Sopenharmony_ci 14738c2ecf20Sopenharmony_ciconfig OABI_COMPAT 14748c2ecf20Sopenharmony_ci bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" 14758c2ecf20Sopenharmony_ci depends on AEABI && !THUMB2_KERNEL 14768c2ecf20Sopenharmony_ci help 14778c2ecf20Sopenharmony_ci This option preserves the old syscall interface along with the 14788c2ecf20Sopenharmony_ci new (ARM EABI) one. It also provides a compatibility layer to 14798c2ecf20Sopenharmony_ci intercept syscalls that have structure arguments which layout 14808c2ecf20Sopenharmony_ci in memory differs between the legacy ABI and the new ARM EABI 14818c2ecf20Sopenharmony_ci (only for non "thumb" binaries). This option adds a tiny 14828c2ecf20Sopenharmony_ci overhead to all syscalls and produces a slightly larger kernel. 14838c2ecf20Sopenharmony_ci 14848c2ecf20Sopenharmony_ci The seccomp filter system will not be available when this is 14858c2ecf20Sopenharmony_ci selected, since there is no way yet to sensibly distinguish 14868c2ecf20Sopenharmony_ci between calling conventions during filtering. 14878c2ecf20Sopenharmony_ci 14888c2ecf20Sopenharmony_ci If you know you'll be using only pure EABI user space then you 14898c2ecf20Sopenharmony_ci can say N here. If this option is not selected and you attempt 14908c2ecf20Sopenharmony_ci to execute a legacy ABI binary then the result will be 14918c2ecf20Sopenharmony_ci UNPREDICTABLE (in fact it can be predicted that it won't work 14928c2ecf20Sopenharmony_ci at all). If in doubt say N. 14938c2ecf20Sopenharmony_ci 14948c2ecf20Sopenharmony_ciconfig ARCH_SELECT_MEMORY_MODEL 14958c2ecf20Sopenharmony_ci bool 14968c2ecf20Sopenharmony_ci 14978c2ecf20Sopenharmony_ciconfig ARCH_FLATMEM_ENABLE 14988c2ecf20Sopenharmony_ci bool 14998c2ecf20Sopenharmony_ci 15008c2ecf20Sopenharmony_ciconfig ARCH_SPARSEMEM_ENABLE 15018c2ecf20Sopenharmony_ci bool 15028c2ecf20Sopenharmony_ci select SPARSEMEM_STATIC if SPARSEMEM 15038c2ecf20Sopenharmony_ci 15048c2ecf20Sopenharmony_ciconfig HAVE_ARCH_PFN_VALID 15058c2ecf20Sopenharmony_ci def_bool y 15068c2ecf20Sopenharmony_ci 15078c2ecf20Sopenharmony_ciconfig HIGHMEM 15088c2ecf20Sopenharmony_ci bool "High Memory Support" 15098c2ecf20Sopenharmony_ci depends on MMU 15108c2ecf20Sopenharmony_ci help 15118c2ecf20Sopenharmony_ci The address space of ARM processors is only 4 Gigabytes large 15128c2ecf20Sopenharmony_ci and it has to accommodate user address space, kernel address 15138c2ecf20Sopenharmony_ci space as well as some memory mapped IO. That means that, if you 15148c2ecf20Sopenharmony_ci have a large amount of physical memory and/or IO, not all of the 15158c2ecf20Sopenharmony_ci memory can be "permanently mapped" by the kernel. The physical 15168c2ecf20Sopenharmony_ci memory that is not permanently mapped is called "high memory". 15178c2ecf20Sopenharmony_ci 15188c2ecf20Sopenharmony_ci Depending on the selected kernel/user memory split, minimum 15198c2ecf20Sopenharmony_ci vmalloc space and actual amount of RAM, you may not need this 15208c2ecf20Sopenharmony_ci option which should result in a slightly faster kernel. 15218c2ecf20Sopenharmony_ci 15228c2ecf20Sopenharmony_ci If unsure, say n. 15238c2ecf20Sopenharmony_ci 15248c2ecf20Sopenharmony_ciconfig HIGHPTE 15258c2ecf20Sopenharmony_ci bool "Allocate 2nd-level pagetables from highmem" if EXPERT 15268c2ecf20Sopenharmony_ci depends on HIGHMEM 15278c2ecf20Sopenharmony_ci default y 15288c2ecf20Sopenharmony_ci help 15298c2ecf20Sopenharmony_ci The VM uses one page of physical memory for each page table. 15308c2ecf20Sopenharmony_ci For systems with a lot of processes, this can use a lot of 15318c2ecf20Sopenharmony_ci precious low memory, eventually leading to low memory being 15328c2ecf20Sopenharmony_ci consumed by page tables. Setting this option will allow 15338c2ecf20Sopenharmony_ci user-space 2nd level page tables to reside in high memory. 15348c2ecf20Sopenharmony_ci 15358c2ecf20Sopenharmony_ciconfig CPU_SW_DOMAIN_PAN 15368c2ecf20Sopenharmony_ci bool "Enable use of CPU domains to implement privileged no-access" 15378c2ecf20Sopenharmony_ci depends on MMU && !ARM_LPAE 15388c2ecf20Sopenharmony_ci default y 15398c2ecf20Sopenharmony_ci help 15408c2ecf20Sopenharmony_ci Increase kernel security by ensuring that normal kernel accesses 15418c2ecf20Sopenharmony_ci are unable to access userspace addresses. This can help prevent 15428c2ecf20Sopenharmony_ci use-after-free bugs becoming an exploitable privilege escalation 15438c2ecf20Sopenharmony_ci by ensuring that magic values (such as LIST_POISON) will always 15448c2ecf20Sopenharmony_ci fault when dereferenced. 15458c2ecf20Sopenharmony_ci 15468c2ecf20Sopenharmony_ci CPUs with low-vector mappings use a best-efforts implementation. 15478c2ecf20Sopenharmony_ci Their lower 1MB needs to remain accessible for the vectors, but 15488c2ecf20Sopenharmony_ci the remainder of userspace will become appropriately inaccessible. 15498c2ecf20Sopenharmony_ci 15508c2ecf20Sopenharmony_ciconfig HW_PERF_EVENTS 15518c2ecf20Sopenharmony_ci def_bool y 15528c2ecf20Sopenharmony_ci depends on ARM_PMU 15538c2ecf20Sopenharmony_ci 15548c2ecf20Sopenharmony_ciconfig SYS_SUPPORTS_HUGETLBFS 15558c2ecf20Sopenharmony_ci def_bool y 15568c2ecf20Sopenharmony_ci depends on ARM_LPAE 15578c2ecf20Sopenharmony_ci 15588c2ecf20Sopenharmony_ciconfig HAVE_ARCH_TRANSPARENT_HUGEPAGE 15598c2ecf20Sopenharmony_ci def_bool y 15608c2ecf20Sopenharmony_ci depends on ARM_LPAE 15618c2ecf20Sopenharmony_ci 15628c2ecf20Sopenharmony_ciconfig ARCH_WANT_GENERAL_HUGETLB 15638c2ecf20Sopenharmony_ci def_bool y 15648c2ecf20Sopenharmony_ci 15658c2ecf20Sopenharmony_ciconfig ARM_MODULE_PLTS 15668c2ecf20Sopenharmony_ci bool "Use PLTs to allow module memory to spill over into vmalloc area" 15678c2ecf20Sopenharmony_ci depends on MODULES 15688c2ecf20Sopenharmony_ci default y 15698c2ecf20Sopenharmony_ci help 15708c2ecf20Sopenharmony_ci Allocate PLTs when loading modules so that jumps and calls whose 15718c2ecf20Sopenharmony_ci targets are too far away for their relative offsets to be encoded 15728c2ecf20Sopenharmony_ci in the instructions themselves can be bounced via veneers in the 15738c2ecf20Sopenharmony_ci module's PLT. This allows modules to be allocated in the generic 15748c2ecf20Sopenharmony_ci vmalloc area after the dedicated module memory area has been 15758c2ecf20Sopenharmony_ci exhausted. The modules will use slightly more memory, but after 15768c2ecf20Sopenharmony_ci rounding up to page size, the actual memory footprint is usually 15778c2ecf20Sopenharmony_ci the same. 15788c2ecf20Sopenharmony_ci 15798c2ecf20Sopenharmony_ci Disabling this is usually safe for small single-platform 15808c2ecf20Sopenharmony_ci configurations. If unsure, say y. 15818c2ecf20Sopenharmony_ci 15828c2ecf20Sopenharmony_ciconfig FORCE_MAX_ZONEORDER 15838c2ecf20Sopenharmony_ci int "Maximum zone order" 15848c2ecf20Sopenharmony_ci default "12" if SOC_AM33XX 15858c2ecf20Sopenharmony_ci default "9" if SA1111 || ARCH_EFM32 15868c2ecf20Sopenharmony_ci default "11" 15878c2ecf20Sopenharmony_ci help 15888c2ecf20Sopenharmony_ci The kernel memory allocator divides physically contiguous memory 15898c2ecf20Sopenharmony_ci blocks into "zones", where each zone is a power of two number of 15908c2ecf20Sopenharmony_ci pages. This option selects the largest power of two that the kernel 15918c2ecf20Sopenharmony_ci keeps in the memory allocator. If you need to allocate very large 15928c2ecf20Sopenharmony_ci blocks of physically contiguous memory, then you may need to 15938c2ecf20Sopenharmony_ci increase this value. 15948c2ecf20Sopenharmony_ci 15958c2ecf20Sopenharmony_ci This config option is actually maximum order plus one. For example, 15968c2ecf20Sopenharmony_ci a value of 11 means that the largest free memory block is 2^10 pages. 15978c2ecf20Sopenharmony_ci 15988c2ecf20Sopenharmony_ciconfig ALIGNMENT_TRAP 15998c2ecf20Sopenharmony_ci bool 16008c2ecf20Sopenharmony_ci depends on CPU_CP15_MMU 16018c2ecf20Sopenharmony_ci default y if !ARCH_EBSA110 16028c2ecf20Sopenharmony_ci select HAVE_PROC_CPU if PROC_FS 16038c2ecf20Sopenharmony_ci help 16048c2ecf20Sopenharmony_ci ARM processors cannot fetch/store information which is not 16058c2ecf20Sopenharmony_ci naturally aligned on the bus, i.e., a 4 byte fetch must start at an 16068c2ecf20Sopenharmony_ci address divisible by 4. On 32-bit ARM processors, these non-aligned 16078c2ecf20Sopenharmony_ci fetch/store instructions will be emulated in software if you say 16088c2ecf20Sopenharmony_ci here, which has a severe performance impact. This is necessary for 16098c2ecf20Sopenharmony_ci correct operation of some network protocols. With an IP-only 16108c2ecf20Sopenharmony_ci configuration it is safe to say N, otherwise say Y. 16118c2ecf20Sopenharmony_ci 16128c2ecf20Sopenharmony_ciconfig UACCESS_WITH_MEMCPY 16138c2ecf20Sopenharmony_ci bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()" 16148c2ecf20Sopenharmony_ci depends on MMU 16158c2ecf20Sopenharmony_ci default y if CPU_FEROCEON 16168c2ecf20Sopenharmony_ci help 16178c2ecf20Sopenharmony_ci Implement faster copy_to_user and clear_user methods for CPU 16188c2ecf20Sopenharmony_ci cores where a 8-word STM instruction give significantly higher 16198c2ecf20Sopenharmony_ci memory write throughput than a sequence of individual 32bit stores. 16208c2ecf20Sopenharmony_ci 16218c2ecf20Sopenharmony_ci A possible side effect is a slight increase in scheduling latency 16228c2ecf20Sopenharmony_ci between threads sharing the same address space if they invoke 16238c2ecf20Sopenharmony_ci such copy operations with large buffers. 16248c2ecf20Sopenharmony_ci 16258c2ecf20Sopenharmony_ci However, if the CPU data cache is using a write-allocate mode, 16268c2ecf20Sopenharmony_ci this option is unlikely to provide any performance gain. 16278c2ecf20Sopenharmony_ci 16288c2ecf20Sopenharmony_ciconfig PARAVIRT 16298c2ecf20Sopenharmony_ci bool "Enable paravirtualization code" 16308c2ecf20Sopenharmony_ci help 16318c2ecf20Sopenharmony_ci This changes the kernel so it can modify itself when it is run 16328c2ecf20Sopenharmony_ci under a hypervisor, potentially improving performance significantly 16338c2ecf20Sopenharmony_ci over full virtualization. 16348c2ecf20Sopenharmony_ci 16358c2ecf20Sopenharmony_ciconfig PARAVIRT_TIME_ACCOUNTING 16368c2ecf20Sopenharmony_ci bool "Paravirtual steal time accounting" 16378c2ecf20Sopenharmony_ci select PARAVIRT 16388c2ecf20Sopenharmony_ci help 16398c2ecf20Sopenharmony_ci Select this option to enable fine granularity task steal time 16408c2ecf20Sopenharmony_ci accounting. Time spent executing other tasks in parallel with 16418c2ecf20Sopenharmony_ci the current vCPU is discounted from the vCPU power. To account for 16428c2ecf20Sopenharmony_ci that, there can be a small performance impact. 16438c2ecf20Sopenharmony_ci 16448c2ecf20Sopenharmony_ci If in doubt, say N here. 16458c2ecf20Sopenharmony_ci 16468c2ecf20Sopenharmony_ciconfig XEN_DOM0 16478c2ecf20Sopenharmony_ci def_bool y 16488c2ecf20Sopenharmony_ci depends on XEN 16498c2ecf20Sopenharmony_ci 16508c2ecf20Sopenharmony_ciconfig XEN 16518c2ecf20Sopenharmony_ci bool "Xen guest support on ARM" 16528c2ecf20Sopenharmony_ci depends on ARM && AEABI && OF 16538c2ecf20Sopenharmony_ci depends on CPU_V7 && !CPU_V6 16548c2ecf20Sopenharmony_ci depends on !GENERIC_ATOMIC64 16558c2ecf20Sopenharmony_ci depends on MMU 16568c2ecf20Sopenharmony_ci select ARCH_DMA_ADDR_T_64BIT 16578c2ecf20Sopenharmony_ci select ARM_PSCI 16588c2ecf20Sopenharmony_ci select SWIOTLB 16598c2ecf20Sopenharmony_ci select SWIOTLB_XEN 16608c2ecf20Sopenharmony_ci select PARAVIRT 16618c2ecf20Sopenharmony_ci help 16628c2ecf20Sopenharmony_ci Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. 16638c2ecf20Sopenharmony_ci 16648c2ecf20Sopenharmony_ciconfig STACKPROTECTOR_PER_TASK 16658c2ecf20Sopenharmony_ci bool "Use a unique stack canary value for each task" 16668c2ecf20Sopenharmony_ci depends on GCC_PLUGINS && STACKPROTECTOR && SMP && !XIP_DEFLATED_DATA 16678c2ecf20Sopenharmony_ci select GCC_PLUGIN_ARM_SSP_PER_TASK 16688c2ecf20Sopenharmony_ci default y 16698c2ecf20Sopenharmony_ci help 16708c2ecf20Sopenharmony_ci Due to the fact that GCC uses an ordinary symbol reference from 16718c2ecf20Sopenharmony_ci which to load the value of the stack canary, this value can only 16728c2ecf20Sopenharmony_ci change at reboot time on SMP systems, and all tasks running in the 16738c2ecf20Sopenharmony_ci kernel's address space are forced to use the same canary value for 16748c2ecf20Sopenharmony_ci the entire duration that the system is up. 16758c2ecf20Sopenharmony_ci 16768c2ecf20Sopenharmony_ci Enable this option to switch to a different method that uses a 16778c2ecf20Sopenharmony_ci different canary value for each task. 16788c2ecf20Sopenharmony_ci 16798c2ecf20Sopenharmony_ciconfig RELOCATABLE 16808c2ecf20Sopenharmony_ci bool 16818c2ecf20Sopenharmony_ci depends on !XIP_KERNEL && !JUMP_LABEL 16828c2ecf20Sopenharmony_ci select HAVE_ARCH_PREL32_RELOCATIONS 16838c2ecf20Sopenharmony_ci 16848c2ecf20Sopenharmony_ciconfig RANDOMIZE_BASE 16858c2ecf20Sopenharmony_ci bool "Randomize the address of the kernel image" 16868c2ecf20Sopenharmony_ci depends on MMU && AUTO_ZRELADDR 16878c2ecf20Sopenharmony_ci depends on !XIP_KERNEL && !ZBOOT_ROM && !JUMP_LABEL 16888c2ecf20Sopenharmony_ci select RELOCATABLE 16898c2ecf20Sopenharmony_ci select ARM_MODULE_PLTS if MODULES 16908c2ecf20Sopenharmony_ci select MODULE_REL_CRCS if MODVERSIONS 16918c2ecf20Sopenharmony_ci help 16928c2ecf20Sopenharmony_ci Randomizes the virtual and physical address at which the kernel 16938c2ecf20Sopenharmony_ci image is loaded, as a security feature that deters exploit attempts 16948c2ecf20Sopenharmony_ci relying on knowledge of the location of kernel internals. 16958c2ecf20Sopenharmony_ci 16968c2ecf20Sopenharmony_ciendmenu 16978c2ecf20Sopenharmony_ci 16988c2ecf20Sopenharmony_cimenu "Boot options" 16998c2ecf20Sopenharmony_ci 17008c2ecf20Sopenharmony_ciconfig USE_OF 17018c2ecf20Sopenharmony_ci bool "Flattened Device Tree support" 17028c2ecf20Sopenharmony_ci select IRQ_DOMAIN 17038c2ecf20Sopenharmony_ci select OF 17048c2ecf20Sopenharmony_ci help 17058c2ecf20Sopenharmony_ci Include support for flattened device tree machine descriptions. 17068c2ecf20Sopenharmony_ci 17078c2ecf20Sopenharmony_ciconfig ATAGS 17088c2ecf20Sopenharmony_ci bool "Support for the traditional ATAGS boot data passing" if USE_OF 17098c2ecf20Sopenharmony_ci default y 17108c2ecf20Sopenharmony_ci help 17118c2ecf20Sopenharmony_ci This is the traditional way of passing data to the kernel at boot 17128c2ecf20Sopenharmony_ci time. If you are solely relying on the flattened device tree (or 17138c2ecf20Sopenharmony_ci the ARM_ATAG_DTB_COMPAT option) then you may unselect this option 17148c2ecf20Sopenharmony_ci to remove ATAGS support from your kernel binary. If unsure, 17158c2ecf20Sopenharmony_ci leave this to y. 17168c2ecf20Sopenharmony_ci 17178c2ecf20Sopenharmony_ciconfig DEPRECATED_PARAM_STRUCT 17188c2ecf20Sopenharmony_ci bool "Provide old way to pass kernel parameters" 17198c2ecf20Sopenharmony_ci depends on ATAGS 17208c2ecf20Sopenharmony_ci help 17218c2ecf20Sopenharmony_ci This was deprecated in 2001 and announced to live on for 5 years. 17228c2ecf20Sopenharmony_ci Some old boot loaders still use this way. 17238c2ecf20Sopenharmony_ci 17248c2ecf20Sopenharmony_ci# Compressed boot loader in ROM. Yes, we really want to ask about 17258c2ecf20Sopenharmony_ci# TEXT and BSS so we preserve their values in the config files. 17268c2ecf20Sopenharmony_ciconfig ZBOOT_ROM_TEXT 17278c2ecf20Sopenharmony_ci hex "Compressed ROM boot loader base address" 17288c2ecf20Sopenharmony_ci default 0x0 17298c2ecf20Sopenharmony_ci help 17308c2ecf20Sopenharmony_ci The physical address at which the ROM-able zImage is to be 17318c2ecf20Sopenharmony_ci placed in the target. Platforms which normally make use of 17328c2ecf20Sopenharmony_ci ROM-able zImage formats normally set this to a suitable 17338c2ecf20Sopenharmony_ci value in their defconfig file. 17348c2ecf20Sopenharmony_ci 17358c2ecf20Sopenharmony_ci If ZBOOT_ROM is not enabled, this has no effect. 17368c2ecf20Sopenharmony_ci 17378c2ecf20Sopenharmony_ciconfig ZBOOT_ROM_BSS 17388c2ecf20Sopenharmony_ci hex "Compressed ROM boot loader BSS address" 17398c2ecf20Sopenharmony_ci default 0x0 17408c2ecf20Sopenharmony_ci help 17418c2ecf20Sopenharmony_ci The base address of an area of read/write memory in the target 17428c2ecf20Sopenharmony_ci for the ROM-able zImage which must be available while the 17438c2ecf20Sopenharmony_ci decompressor is running. It must be large enough to hold the 17448c2ecf20Sopenharmony_ci entire decompressed kernel plus an additional 128 KiB. 17458c2ecf20Sopenharmony_ci Platforms which normally make use of ROM-able zImage formats 17468c2ecf20Sopenharmony_ci normally set this to a suitable value in their defconfig file. 17478c2ecf20Sopenharmony_ci 17488c2ecf20Sopenharmony_ci If ZBOOT_ROM is not enabled, this has no effect. 17498c2ecf20Sopenharmony_ci 17508c2ecf20Sopenharmony_ciconfig ZBOOT_ROM 17518c2ecf20Sopenharmony_ci bool "Compressed boot loader in ROM/flash" 17528c2ecf20Sopenharmony_ci depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS 17538c2ecf20Sopenharmony_ci depends on !ARM_APPENDED_DTB && !XIP_KERNEL && !AUTO_ZRELADDR 17548c2ecf20Sopenharmony_ci help 17558c2ecf20Sopenharmony_ci Say Y here if you intend to execute your compressed kernel image 17568c2ecf20Sopenharmony_ci (zImage) directly from ROM or flash. If unsure, say N. 17578c2ecf20Sopenharmony_ci 17588c2ecf20Sopenharmony_ciconfig ARM_APPENDED_DTB 17598c2ecf20Sopenharmony_ci bool "Use appended device tree blob to zImage (EXPERIMENTAL)" 17608c2ecf20Sopenharmony_ci depends on OF 17618c2ecf20Sopenharmony_ci help 17628c2ecf20Sopenharmony_ci With this option, the boot code will look for a device tree binary 17638c2ecf20Sopenharmony_ci (DTB) appended to zImage 17648c2ecf20Sopenharmony_ci (e.g. cat zImage <filename>.dtb > zImage_w_dtb). 17658c2ecf20Sopenharmony_ci 17668c2ecf20Sopenharmony_ci This is meant as a backward compatibility convenience for those 17678c2ecf20Sopenharmony_ci systems with a bootloader that can't be upgraded to accommodate 17688c2ecf20Sopenharmony_ci the documented boot protocol using a device tree. 17698c2ecf20Sopenharmony_ci 17708c2ecf20Sopenharmony_ci Beware that there is very little in terms of protection against 17718c2ecf20Sopenharmony_ci this option being confused by leftover garbage in memory that might 17728c2ecf20Sopenharmony_ci look like a DTB header after a reboot if no actual DTB is appended 17738c2ecf20Sopenharmony_ci to zImage. Do not leave this option active in a production kernel 17748c2ecf20Sopenharmony_ci if you don't intend to always append a DTB. Proper passing of the 17758c2ecf20Sopenharmony_ci location into r2 of a bootloader provided DTB is always preferable 17768c2ecf20Sopenharmony_ci to this option. 17778c2ecf20Sopenharmony_ci 17788c2ecf20Sopenharmony_ciconfig ARM_ATAG_DTB_COMPAT 17798c2ecf20Sopenharmony_ci bool "Supplement the appended DTB with traditional ATAG information" 17808c2ecf20Sopenharmony_ci depends on ARM_APPENDED_DTB 17818c2ecf20Sopenharmony_ci help 17828c2ecf20Sopenharmony_ci Some old bootloaders can't be updated to a DTB capable one, yet 17838c2ecf20Sopenharmony_ci they provide ATAGs with memory configuration, the ramdisk address, 17848c2ecf20Sopenharmony_ci the kernel cmdline string, etc. Such information is dynamically 17858c2ecf20Sopenharmony_ci provided by the bootloader and can't always be stored in a static 17868c2ecf20Sopenharmony_ci DTB. To allow a device tree enabled kernel to be used with such 17878c2ecf20Sopenharmony_ci bootloaders, this option allows zImage to extract the information 17888c2ecf20Sopenharmony_ci from the ATAG list and store it at run time into the appended DTB. 17898c2ecf20Sopenharmony_ci 17908c2ecf20Sopenharmony_cichoice 17918c2ecf20Sopenharmony_ci prompt "Kernel command line type" if ARM_ATAG_DTB_COMPAT 17928c2ecf20Sopenharmony_ci default ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER 17938c2ecf20Sopenharmony_ci 17948c2ecf20Sopenharmony_ciconfig ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER 17958c2ecf20Sopenharmony_ci bool "Use bootloader kernel arguments if available" 17968c2ecf20Sopenharmony_ci help 17978c2ecf20Sopenharmony_ci Uses the command-line options passed by the boot loader instead of 17988c2ecf20Sopenharmony_ci the device tree bootargs property. If the boot loader doesn't provide 17998c2ecf20Sopenharmony_ci any, the device tree bootargs property will be used. 18008c2ecf20Sopenharmony_ci 18018c2ecf20Sopenharmony_ciconfig ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND 18028c2ecf20Sopenharmony_ci bool "Extend with bootloader kernel arguments" 18038c2ecf20Sopenharmony_ci help 18048c2ecf20Sopenharmony_ci The command-line arguments provided by the boot loader will be 18058c2ecf20Sopenharmony_ci appended to the the device tree bootargs property. 18068c2ecf20Sopenharmony_ci 18078c2ecf20Sopenharmony_ciendchoice 18088c2ecf20Sopenharmony_ci 18098c2ecf20Sopenharmony_ciconfig CMDLINE 18108c2ecf20Sopenharmony_ci string "Default kernel command string" 18118c2ecf20Sopenharmony_ci default "" 18128c2ecf20Sopenharmony_ci help 18138c2ecf20Sopenharmony_ci On some architectures (EBSA110 and CATS), there is currently no way 18148c2ecf20Sopenharmony_ci for the boot loader to pass arguments to the kernel. For these 18158c2ecf20Sopenharmony_ci architectures, you should supply some command-line options at build 18168c2ecf20Sopenharmony_ci time by entering them here. As a minimum, you should specify the 18178c2ecf20Sopenharmony_ci memory size and the root device (e.g., mem=64M root=/dev/nfs). 18188c2ecf20Sopenharmony_ci 18198c2ecf20Sopenharmony_cichoice 18208c2ecf20Sopenharmony_ci prompt "Kernel command line type" if CMDLINE != "" 18218c2ecf20Sopenharmony_ci default CMDLINE_FROM_BOOTLOADER 18228c2ecf20Sopenharmony_ci 18238c2ecf20Sopenharmony_ciconfig CMDLINE_FROM_BOOTLOADER 18248c2ecf20Sopenharmony_ci bool "Use bootloader kernel arguments if available" 18258c2ecf20Sopenharmony_ci help 18268c2ecf20Sopenharmony_ci Uses the command-line options passed by the boot loader. If 18278c2ecf20Sopenharmony_ci the boot loader doesn't provide any, the default kernel command 18288c2ecf20Sopenharmony_ci string provided in CMDLINE will be used. 18298c2ecf20Sopenharmony_ci 18308c2ecf20Sopenharmony_ciconfig CMDLINE_EXTEND 18318c2ecf20Sopenharmony_ci bool "Extend bootloader kernel arguments" 18328c2ecf20Sopenharmony_ci help 18338c2ecf20Sopenharmony_ci The command-line arguments provided by the boot loader will be 18348c2ecf20Sopenharmony_ci appended to the default kernel command string. 18358c2ecf20Sopenharmony_ci 18368c2ecf20Sopenharmony_ciconfig CMDLINE_FORCE 18378c2ecf20Sopenharmony_ci bool "Always use the default kernel command string" 18388c2ecf20Sopenharmony_ci help 18398c2ecf20Sopenharmony_ci Always use the default kernel command string, even if the boot 18408c2ecf20Sopenharmony_ci loader passes other arguments to the kernel. 18418c2ecf20Sopenharmony_ci This is useful if you cannot or don't want to change the 18428c2ecf20Sopenharmony_ci command-line options your boot loader passes to the kernel. 18438c2ecf20Sopenharmony_ciendchoice 18448c2ecf20Sopenharmony_ci 18458c2ecf20Sopenharmony_ciconfig XIP_KERNEL 18468c2ecf20Sopenharmony_ci bool "Kernel Execute-In-Place from ROM" 18478c2ecf20Sopenharmony_ci depends on !ARM_LPAE && !ARCH_MULTIPLATFORM 18488c2ecf20Sopenharmony_ci help 18498c2ecf20Sopenharmony_ci Execute-In-Place allows the kernel to run from non-volatile storage 18508c2ecf20Sopenharmony_ci directly addressable by the CPU, such as NOR flash. This saves RAM 18518c2ecf20Sopenharmony_ci space since the text section of the kernel is not loaded from flash 18528c2ecf20Sopenharmony_ci to RAM. Read-write sections, such as the data section and stack, 18538c2ecf20Sopenharmony_ci are still copied to RAM. The XIP kernel is not compressed since 18548c2ecf20Sopenharmony_ci it has to run directly from flash, so it will take more space to 18558c2ecf20Sopenharmony_ci store it. The flash address used to link the kernel object files, 18568c2ecf20Sopenharmony_ci and for storing it, is configuration dependent. Therefore, if you 18578c2ecf20Sopenharmony_ci say Y here, you must know the proper physical address where to 18588c2ecf20Sopenharmony_ci store the kernel image depending on your own flash memory usage. 18598c2ecf20Sopenharmony_ci 18608c2ecf20Sopenharmony_ci Also note that the make target becomes "make xipImage" rather than 18618c2ecf20Sopenharmony_ci "make zImage" or "make Image". The final kernel binary to put in 18628c2ecf20Sopenharmony_ci ROM memory will be arch/arm/boot/xipImage. 18638c2ecf20Sopenharmony_ci 18648c2ecf20Sopenharmony_ci If unsure, say N. 18658c2ecf20Sopenharmony_ci 18668c2ecf20Sopenharmony_ciconfig XIP_PHYS_ADDR 18678c2ecf20Sopenharmony_ci hex "XIP Kernel Physical Location" 18688c2ecf20Sopenharmony_ci depends on XIP_KERNEL 18698c2ecf20Sopenharmony_ci default "0x00080000" 18708c2ecf20Sopenharmony_ci help 18718c2ecf20Sopenharmony_ci This is the physical address in your flash memory the kernel will 18728c2ecf20Sopenharmony_ci be linked for and stored to. This address is dependent on your 18738c2ecf20Sopenharmony_ci own flash usage. 18748c2ecf20Sopenharmony_ci 18758c2ecf20Sopenharmony_ciconfig XIP_DEFLATED_DATA 18768c2ecf20Sopenharmony_ci bool "Store kernel .data section compressed in ROM" 18778c2ecf20Sopenharmony_ci depends on XIP_KERNEL 18788c2ecf20Sopenharmony_ci select ZLIB_INFLATE 18798c2ecf20Sopenharmony_ci help 18808c2ecf20Sopenharmony_ci Before the kernel is actually executed, its .data section has to be 18818c2ecf20Sopenharmony_ci copied to RAM from ROM. This option allows for storing that data 18828c2ecf20Sopenharmony_ci in compressed form and decompressed to RAM rather than merely being 18838c2ecf20Sopenharmony_ci copied, saving some precious ROM space. A possible drawback is a 18848c2ecf20Sopenharmony_ci slightly longer boot delay. 18858c2ecf20Sopenharmony_ci 18868c2ecf20Sopenharmony_ciconfig KEXEC 18878c2ecf20Sopenharmony_ci bool "Kexec system call (EXPERIMENTAL)" 18888c2ecf20Sopenharmony_ci depends on (!SMP || PM_SLEEP_SMP) 18898c2ecf20Sopenharmony_ci depends on MMU 18908c2ecf20Sopenharmony_ci select KEXEC_CORE 18918c2ecf20Sopenharmony_ci help 18928c2ecf20Sopenharmony_ci kexec is a system call that implements the ability to shutdown your 18938c2ecf20Sopenharmony_ci current kernel, and to start another kernel. It is like a reboot 18948c2ecf20Sopenharmony_ci but it is independent of the system firmware. And like a reboot 18958c2ecf20Sopenharmony_ci you can start any kernel with it, not just Linux. 18968c2ecf20Sopenharmony_ci 18978c2ecf20Sopenharmony_ci It is an ongoing process to be certain the hardware in a machine 18988c2ecf20Sopenharmony_ci is properly shutdown, so do not be surprised if this code does not 18998c2ecf20Sopenharmony_ci initially work for you. 19008c2ecf20Sopenharmony_ci 19018c2ecf20Sopenharmony_ciconfig ATAGS_PROC 19028c2ecf20Sopenharmony_ci bool "Export atags in procfs" 19038c2ecf20Sopenharmony_ci depends on ATAGS && KEXEC 19048c2ecf20Sopenharmony_ci default y 19058c2ecf20Sopenharmony_ci help 19068c2ecf20Sopenharmony_ci Should the atags used to boot the kernel be exported in an "atags" 19078c2ecf20Sopenharmony_ci file in procfs. Useful with kexec. 19088c2ecf20Sopenharmony_ci 19098c2ecf20Sopenharmony_ciconfig CRASH_DUMP 19108c2ecf20Sopenharmony_ci bool "Build kdump crash kernel (EXPERIMENTAL)" 19118c2ecf20Sopenharmony_ci help 19128c2ecf20Sopenharmony_ci Generate crash dump after being started by kexec. This should 19138c2ecf20Sopenharmony_ci be normally only set in special crash dump kernels which are 19148c2ecf20Sopenharmony_ci loaded in the main kernel with kexec-tools into a specially 19158c2ecf20Sopenharmony_ci reserved region and then later executed after a crash by 19168c2ecf20Sopenharmony_ci kdump/kexec. The crash dump kernel must be compiled to a 19178c2ecf20Sopenharmony_ci memory address not used by the main kernel 19188c2ecf20Sopenharmony_ci 19198c2ecf20Sopenharmony_ci For more details see Documentation/admin-guide/kdump/kdump.rst 19208c2ecf20Sopenharmony_ci 19218c2ecf20Sopenharmony_ciconfig AUTO_ZRELADDR 19228c2ecf20Sopenharmony_ci bool "Auto calculation of the decompressed kernel image address" 19238c2ecf20Sopenharmony_ci help 19248c2ecf20Sopenharmony_ci ZRELADDR is the physical address where the decompressed kernel 19258c2ecf20Sopenharmony_ci image will be placed. If AUTO_ZRELADDR is selected, the address 19268c2ecf20Sopenharmony_ci will be determined at run-time by masking the current IP with 19278c2ecf20Sopenharmony_ci 0xf8000000. This assumes the zImage being placed in the first 128MB 19288c2ecf20Sopenharmony_ci from start of memory. 19298c2ecf20Sopenharmony_ci 19308c2ecf20Sopenharmony_ciconfig EFI_STUB 19318c2ecf20Sopenharmony_ci bool 19328c2ecf20Sopenharmony_ci 19338c2ecf20Sopenharmony_ciconfig EFI 19348c2ecf20Sopenharmony_ci bool "UEFI runtime support" 19358c2ecf20Sopenharmony_ci depends on OF && !CPU_BIG_ENDIAN && MMU && AUTO_ZRELADDR && !XIP_KERNEL 19368c2ecf20Sopenharmony_ci select UCS2_STRING 19378c2ecf20Sopenharmony_ci select EFI_PARAMS_FROM_FDT 19388c2ecf20Sopenharmony_ci select EFI_STUB 19398c2ecf20Sopenharmony_ci select EFI_GENERIC_STUB 19408c2ecf20Sopenharmony_ci select EFI_RUNTIME_WRAPPERS 19418c2ecf20Sopenharmony_ci help 19428c2ecf20Sopenharmony_ci This option provides support for runtime services provided 19438c2ecf20Sopenharmony_ci by UEFI firmware (such as non-volatile variables, realtime 19448c2ecf20Sopenharmony_ci clock, and platform reset). A UEFI stub is also provided to 19458c2ecf20Sopenharmony_ci allow the kernel to be booted as an EFI application. This 19468c2ecf20Sopenharmony_ci is only useful for kernels that may run on systems that have 19478c2ecf20Sopenharmony_ci UEFI firmware. 19488c2ecf20Sopenharmony_ci 19498c2ecf20Sopenharmony_ciconfig DMI 19508c2ecf20Sopenharmony_ci bool "Enable support for SMBIOS (DMI) tables" 19518c2ecf20Sopenharmony_ci depends on EFI 19528c2ecf20Sopenharmony_ci default y 19538c2ecf20Sopenharmony_ci help 19548c2ecf20Sopenharmony_ci This enables SMBIOS/DMI feature for systems. 19558c2ecf20Sopenharmony_ci 19568c2ecf20Sopenharmony_ci This option is only useful on systems that have UEFI firmware. 19578c2ecf20Sopenharmony_ci However, even with this option, the resultant kernel should 19588c2ecf20Sopenharmony_ci continue to boot on existing non-UEFI platforms. 19598c2ecf20Sopenharmony_ci 19608c2ecf20Sopenharmony_ci NOTE: This does *NOT* enable or encourage the use of DMI quirks, 19618c2ecf20Sopenharmony_ci i.e., the the practice of identifying the platform via DMI to 19628c2ecf20Sopenharmony_ci decide whether certain workarounds for buggy hardware and/or 19638c2ecf20Sopenharmony_ci firmware need to be enabled. This would require the DMI subsystem 19648c2ecf20Sopenharmony_ci to be enabled much earlier than we do on ARM, which is non-trivial. 19658c2ecf20Sopenharmony_ci 19668c2ecf20Sopenharmony_ciendmenu 19678c2ecf20Sopenharmony_ci 19688c2ecf20Sopenharmony_cimenu "CPU Power Management" 19698c2ecf20Sopenharmony_ci 19708c2ecf20Sopenharmony_cisource "drivers/cpufreq/Kconfig" 19718c2ecf20Sopenharmony_ci 19728c2ecf20Sopenharmony_cisource "drivers/cpuidle/Kconfig" 19738c2ecf20Sopenharmony_ci 19748c2ecf20Sopenharmony_ciendmenu 19758c2ecf20Sopenharmony_ci 19768c2ecf20Sopenharmony_cimenu "Floating point emulation" 19778c2ecf20Sopenharmony_ci 19788c2ecf20Sopenharmony_cicomment "At least one emulation must be selected" 19798c2ecf20Sopenharmony_ci 19808c2ecf20Sopenharmony_ciconfig FPE_NWFPE 19818c2ecf20Sopenharmony_ci bool "NWFPE math emulation" 19828c2ecf20Sopenharmony_ci depends on (!AEABI || OABI_COMPAT) && !THUMB2_KERNEL 19838c2ecf20Sopenharmony_ci help 19848c2ecf20Sopenharmony_ci Say Y to include the NWFPE floating point emulator in the kernel. 19858c2ecf20Sopenharmony_ci This is necessary to run most binaries. Linux does not currently 19868c2ecf20Sopenharmony_ci support floating point hardware so you need to say Y here even if 19878c2ecf20Sopenharmony_ci your machine has an FPA or floating point co-processor podule. 19888c2ecf20Sopenharmony_ci 19898c2ecf20Sopenharmony_ci You may say N here if you are going to load the Acorn FPEmulator 19908c2ecf20Sopenharmony_ci early in the bootup. 19918c2ecf20Sopenharmony_ci 19928c2ecf20Sopenharmony_ciconfig FPE_NWFPE_XP 19938c2ecf20Sopenharmony_ci bool "Support extended precision" 19948c2ecf20Sopenharmony_ci depends on FPE_NWFPE 19958c2ecf20Sopenharmony_ci help 19968c2ecf20Sopenharmony_ci Say Y to include 80-bit support in the kernel floating-point 19978c2ecf20Sopenharmony_ci emulator. Otherwise, only 32 and 64-bit support is compiled in. 19988c2ecf20Sopenharmony_ci Note that gcc does not generate 80-bit operations by default, 19998c2ecf20Sopenharmony_ci so in most cases this option only enlarges the size of the 20008c2ecf20Sopenharmony_ci floating point emulator without any good reason. 20018c2ecf20Sopenharmony_ci 20028c2ecf20Sopenharmony_ci You almost surely want to say N here. 20038c2ecf20Sopenharmony_ci 20048c2ecf20Sopenharmony_ciconfig FPE_FASTFPE 20058c2ecf20Sopenharmony_ci bool "FastFPE math emulation (EXPERIMENTAL)" 20068c2ecf20Sopenharmony_ci depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 20078c2ecf20Sopenharmony_ci help 20088c2ecf20Sopenharmony_ci Say Y here to include the FAST floating point emulator in the kernel. 20098c2ecf20Sopenharmony_ci This is an experimental much faster emulator which now also has full 20108c2ecf20Sopenharmony_ci precision for the mantissa. It does not support any exceptions. 20118c2ecf20Sopenharmony_ci It is very simple, and approximately 3-6 times faster than NWFPE. 20128c2ecf20Sopenharmony_ci 20138c2ecf20Sopenharmony_ci It should be sufficient for most programs. It may be not suitable 20148c2ecf20Sopenharmony_ci for scientific calculations, but you have to check this for yourself. 20158c2ecf20Sopenharmony_ci If you do not feel you need a faster FP emulation you should better 20168c2ecf20Sopenharmony_ci choose NWFPE. 20178c2ecf20Sopenharmony_ci 20188c2ecf20Sopenharmony_ciconfig VFP 20198c2ecf20Sopenharmony_ci bool "VFP-format floating point maths" 20208c2ecf20Sopenharmony_ci depends on CPU_V6 || CPU_V6K || CPU_ARM926T || CPU_V7 || CPU_FEROCEON 20218c2ecf20Sopenharmony_ci help 20228c2ecf20Sopenharmony_ci Say Y to include VFP support code in the kernel. This is needed 20238c2ecf20Sopenharmony_ci if your hardware includes a VFP unit. 20248c2ecf20Sopenharmony_ci 20258c2ecf20Sopenharmony_ci Please see <file:Documentation/arm/vfp/release-notes.rst> for 20268c2ecf20Sopenharmony_ci release notes and additional status information. 20278c2ecf20Sopenharmony_ci 20288c2ecf20Sopenharmony_ci Say N if your target does not have VFP hardware. 20298c2ecf20Sopenharmony_ci 20308c2ecf20Sopenharmony_ciconfig VFPv3 20318c2ecf20Sopenharmony_ci bool 20328c2ecf20Sopenharmony_ci depends on VFP 20338c2ecf20Sopenharmony_ci default y if CPU_V7 20348c2ecf20Sopenharmony_ci 20358c2ecf20Sopenharmony_ciconfig NEON 20368c2ecf20Sopenharmony_ci bool "Advanced SIMD (NEON) Extension support" 20378c2ecf20Sopenharmony_ci depends on VFPv3 && CPU_V7 20388c2ecf20Sopenharmony_ci help 20398c2ecf20Sopenharmony_ci Say Y to include support code for NEON, the ARMv7 Advanced SIMD 20408c2ecf20Sopenharmony_ci Extension. 20418c2ecf20Sopenharmony_ci 20428c2ecf20Sopenharmony_ciconfig KERNEL_MODE_NEON 20438c2ecf20Sopenharmony_ci bool "Support for NEON in kernel mode" 20448c2ecf20Sopenharmony_ci depends on NEON && AEABI 20458c2ecf20Sopenharmony_ci help 20468c2ecf20Sopenharmony_ci Say Y to include support for NEON in kernel mode. 20478c2ecf20Sopenharmony_ci 20488c2ecf20Sopenharmony_ciendmenu 20498c2ecf20Sopenharmony_ci 20508c2ecf20Sopenharmony_cimenu "Power management options" 20518c2ecf20Sopenharmony_ci 20528c2ecf20Sopenharmony_cisource "kernel/power/Kconfig" 20538c2ecf20Sopenharmony_ci 20548c2ecf20Sopenharmony_ciconfig ARCH_SUSPEND_POSSIBLE 20558c2ecf20Sopenharmony_ci depends on CPU_ARM920T || CPU_ARM926T || CPU_FEROCEON || CPU_SA1100 || \ 20568c2ecf20Sopenharmony_ci CPU_V6 || CPU_V6K || CPU_V7 || CPU_V7M || CPU_XSC3 || CPU_XSCALE || CPU_MOHAWK 20578c2ecf20Sopenharmony_ci def_bool y 20588c2ecf20Sopenharmony_ci 20598c2ecf20Sopenharmony_ciconfig ARM_CPU_SUSPEND 20608c2ecf20Sopenharmony_ci def_bool PM_SLEEP || BL_SWITCHER || ARM_PSCI_FW 20618c2ecf20Sopenharmony_ci depends on ARCH_SUSPEND_POSSIBLE 20628c2ecf20Sopenharmony_ci 20638c2ecf20Sopenharmony_ciconfig ARCH_HIBERNATION_POSSIBLE 20648c2ecf20Sopenharmony_ci bool 20658c2ecf20Sopenharmony_ci depends on MMU 20668c2ecf20Sopenharmony_ci default y if ARCH_SUSPEND_POSSIBLE 20678c2ecf20Sopenharmony_ci 20688c2ecf20Sopenharmony_ciendmenu 20698c2ecf20Sopenharmony_ci 20708c2ecf20Sopenharmony_cisource "drivers/firmware/Kconfig" 20718c2ecf20Sopenharmony_ci 20728c2ecf20Sopenharmony_ciif CRYPTO 20738c2ecf20Sopenharmony_cisource "arch/arm/crypto/Kconfig" 20748c2ecf20Sopenharmony_ciendif 20758c2ecf20Sopenharmony_ci 20768c2ecf20Sopenharmony_cisource "arch/arm/Kconfig.assembler" 2077