Kconfig 9.7 KB

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