Kconfig 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Library configuration
  4. #
  5. config BINARY_PRINTF
  6. def_bool n
  7. menu "Library routines"
  8. config RAID6_PQ
  9. tristate
  10. config RAID6_PQ_BENCHMARK
  11. bool "Automatically choose fastest RAID6 PQ functions"
  12. depends on RAID6_PQ
  13. default y
  14. help
  15. Benchmark all available RAID6 PQ functions on init and choose the
  16. fastest one.
  17. config LINEAR_RANGES
  18. tristate
  19. config PACKING
  20. bool "Generic bitfield packing and unpacking"
  21. select BITREVERSE
  22. default n
  23. help
  24. This option provides the packing() helper function, which permits
  25. converting bitfields between a CPU-usable representation and a
  26. memory representation that can have any combination of these quirks:
  27. - Is little endian (bytes are reversed within a 32-bit group)
  28. - The least-significant 32-bit word comes first (within a 64-bit
  29. group)
  30. - The most significant bit of a byte is at its right (bit 0 of a
  31. register description is numerically 2^7).
  32. Drivers may use these helpers to match the bit indices as described
  33. in the data sheets of the peripherals they are in control of.
  34. When in doubt, say N.
  35. config PACKING_KUNIT_TEST
  36. tristate "KUnit tests for packing library" if !KUNIT_ALL_TESTS
  37. depends on PACKING && KUNIT
  38. default KUNIT_ALL_TESTS
  39. help
  40. This builds KUnit tests for the packing library.
  41. For more information on KUnit and unit tests in general,
  42. please refer to the KUnit documentation in Documentation/dev-tools/kunit/.
  43. When in doubt, say N.
  44. config BITREVERSE
  45. tristate
  46. config HAVE_ARCH_BITREVERSE
  47. bool
  48. default n
  49. help
  50. This option enables the use of hardware bit-reversal instructions on
  51. architectures which support such operations.
  52. config ARCH_HAS_STRNCPY_FROM_USER
  53. bool
  54. config ARCH_HAS_STRNLEN_USER
  55. bool
  56. config GENERIC_STRNCPY_FROM_USER
  57. def_bool !ARCH_HAS_STRNCPY_FROM_USER
  58. config GENERIC_STRNLEN_USER
  59. def_bool !ARCH_HAS_STRNLEN_USER
  60. config GENERIC_NET_UTILS
  61. bool
  62. source "lib/math/Kconfig"
  63. config NO_GENERIC_PCI_IOPORT_MAP
  64. bool
  65. config GENERIC_IOMAP
  66. bool
  67. select GENERIC_PCI_IOMAP
  68. config STMP_DEVICE
  69. bool
  70. config ARCH_USE_CMPXCHG_LOCKREF
  71. bool
  72. config ARCH_HAS_FAST_MULTIPLIER
  73. bool
  74. config ARCH_USE_SYM_ANNOTATIONS
  75. bool
  76. config INDIRECT_PIO
  77. bool "Access I/O in non-MMIO mode"
  78. depends on ARM64
  79. depends on HAS_IOPORT
  80. help
  81. On some platforms where no separate I/O space exists, there are I/O
  82. hosts which can not be accessed in MMIO mode. Using the logical PIO
  83. mechanism, the host-local I/O resource can be mapped into system
  84. logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
  85. system can access the I/O devices with the mapped-logic PIO through
  86. I/O accessors.
  87. This way has relatively little I/O performance cost. Please make
  88. sure your devices really need this configure item enabled.
  89. When in doubt, say N.
  90. config INDIRECT_IOMEM
  91. bool
  92. help
  93. This is selected by other options/architectures to provide the
  94. emulated iomem accessors.
  95. config INDIRECT_IOMEM_FALLBACK
  96. bool
  97. depends on INDIRECT_IOMEM
  98. help
  99. If INDIRECT_IOMEM is selected, this enables falling back to plain
  100. mmio accesses when the IO memory address is not a registered
  101. emulated region.
  102. config TRACE_MMIO_ACCESS
  103. bool "Register read/write tracing"
  104. depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS
  105. help
  106. Create tracepoints for MMIO read/write operations. These trace events
  107. can be used for logging all MMIO read/write operations.
  108. source "lib/crc/Kconfig"
  109. source "lib/crypto/Kconfig"
  110. config XXHASH
  111. tristate
  112. config AUDIT_GENERIC
  113. bool
  114. depends on AUDIT && !AUDIT_ARCH
  115. default y
  116. config AUDIT_ARCH_COMPAT_GENERIC
  117. bool
  118. default n
  119. config AUDIT_COMPAT_GENERIC
  120. bool
  121. depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
  122. default y
  123. config RANDOM32_SELFTEST
  124. bool "PRNG perform self test on init"
  125. help
  126. This option enables the 32 bit PRNG library functions to perform a
  127. self test on initialization.
  128. #
  129. # compression support is select'ed if needed
  130. #
  131. config 842_COMPRESS
  132. select CRC32
  133. tristate
  134. config 842_DECOMPRESS
  135. select CRC32
  136. tristate
  137. config ZLIB_INFLATE
  138. tristate
  139. config ZLIB_DEFLATE
  140. tristate
  141. select BITREVERSE
  142. config ZLIB_DFLTCC
  143. def_bool y
  144. depends on S390
  145. prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
  146. help
  147. Enable s390x hardware support for zlib in the kernel.
  148. config LZO_COMPRESS
  149. tristate
  150. config LZO_DECOMPRESS
  151. tristate
  152. config LZ4_COMPRESS
  153. tristate
  154. config LZ4HC_COMPRESS
  155. tristate
  156. config LZ4_DECOMPRESS
  157. tristate
  158. config ZSTD_COMMON
  159. select XXHASH
  160. tristate
  161. config ZSTD_COMPRESS
  162. select ZSTD_COMMON
  163. tristate
  164. config ZSTD_DECOMPRESS
  165. select ZSTD_COMMON
  166. tristate
  167. source "lib/xz/Kconfig"
  168. #
  169. # These all provide a common interface (hence the apparent duplication with
  170. # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
  171. #
  172. config DECOMPRESS_GZIP
  173. select ZLIB_INFLATE
  174. tristate
  175. config DECOMPRESS_BZIP2
  176. tristate
  177. config DECOMPRESS_LZMA
  178. tristate
  179. config DECOMPRESS_XZ
  180. select XZ_DEC
  181. tristate
  182. config DECOMPRESS_LZO
  183. select LZO_DECOMPRESS
  184. tristate
  185. config DECOMPRESS_LZ4
  186. select LZ4_DECOMPRESS
  187. tristate
  188. config DECOMPRESS_ZSTD
  189. select ZSTD_DECOMPRESS
  190. tristate
  191. #
  192. # Generic allocator support is selected if needed
  193. #
  194. config GENERIC_ALLOCATOR
  195. bool
  196. #
  197. # reed solomon support is select'ed if needed
  198. #
  199. config REED_SOLOMON
  200. tristate
  201. config REED_SOLOMON_ENC8
  202. bool
  203. config REED_SOLOMON_DEC8
  204. bool
  205. config REED_SOLOMON_ENC16
  206. bool
  207. config REED_SOLOMON_DEC16
  208. bool
  209. #
  210. # BCH support is selected if needed
  211. #
  212. config BCH
  213. tristate
  214. select BITREVERSE
  215. config BCH_CONST_PARAMS
  216. bool
  217. help
  218. Drivers may select this option to force specific constant
  219. values for parameters 'm' (Galois field order) and 't'
  220. (error correction capability). Those specific values must
  221. be set by declaring default values for symbols BCH_CONST_M
  222. and BCH_CONST_T.
  223. Doing so will enable extra compiler optimizations,
  224. improving encoding and decoding performance up to 2x for
  225. usual (m,t) values (typically such that m*t < 200).
  226. When this option is selected, the BCH library supports
  227. only a single (m,t) configuration. This is mainly useful
  228. for NAND flash board drivers requiring known, fixed BCH
  229. parameters.
  230. config BCH_CONST_M
  231. int
  232. range 5 15
  233. help
  234. Constant value for Galois field order 'm'. If 'k' is the
  235. number of data bits to protect, 'm' should be chosen such
  236. that (k + m*t) <= 2**m - 1.
  237. Drivers should declare a default value for this symbol if
  238. they select option BCH_CONST_PARAMS.
  239. config BCH_CONST_T
  240. int
  241. help
  242. Constant value for error correction capability in bits 't'.
  243. Drivers should declare a default value for this symbol if
  244. they select option BCH_CONST_PARAMS.
  245. #
  246. # Textsearch support is select'ed if needed
  247. #
  248. config TEXTSEARCH
  249. bool
  250. config TEXTSEARCH_KMP
  251. tristate
  252. config TEXTSEARCH_BM
  253. tristate
  254. config TEXTSEARCH_FSM
  255. tristate
  256. config BTREE
  257. bool
  258. config INTERVAL_TREE
  259. bool
  260. help
  261. Simple, embeddable, interval-tree. Can find the start of an
  262. overlapping range in log(n) time and then iterate over all
  263. overlapping nodes. The algorithm is implemented as an
  264. augmented rbtree.
  265. See:
  266. Documentation/core-api/rbtree.rst
  267. for more information.
  268. config INTERVAL_TREE_SPAN_ITER
  269. bool
  270. depends on INTERVAL_TREE
  271. config XARRAY_MULTI
  272. bool
  273. help
  274. Support entries which occupy multiple consecutive indices in the
  275. XArray.
  276. config ASSOCIATIVE_ARRAY
  277. bool
  278. help
  279. Generic associative array. Can be searched and iterated over whilst
  280. it is being modified. It is also reasonably quick to search and
  281. modify. The algorithms are non-recursive, and the trees are highly
  282. capacious.
  283. See:
  284. Documentation/core-api/assoc_array.rst
  285. for more information.
  286. config CLOSURES
  287. bool
  288. config HAS_IOMEM
  289. bool
  290. depends on !NO_IOMEM
  291. default y
  292. config HAS_IOPORT
  293. bool
  294. config HAS_IOPORT_MAP
  295. bool
  296. depends on HAS_IOMEM && !NO_IOPORT_MAP
  297. default y
  298. source "kernel/dma/Kconfig"
  299. config SGL_ALLOC
  300. bool
  301. default n
  302. config IOMMU_HELPER
  303. bool
  304. config CHECK_SIGNATURE
  305. bool
  306. config CPUMASK_OFFSTACK
  307. bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
  308. help
  309. Use dynamic allocation for cpumask_var_t, instead of putting
  310. them on the stack. This is a bit more expensive, but avoids
  311. stack overflow.
  312. config FORCE_NR_CPUS
  313. def_bool !SMP
  314. config CPU_RMAP
  315. bool
  316. depends on SMP
  317. config DQL
  318. bool
  319. config GLOB
  320. bool
  321. # This actually supports modular compilation, but the module overhead
  322. # is ridiculous for the amount of code involved. Until an out-of-tree
  323. # driver asks for it, we'll just link it directly it into the kernel
  324. # when required. Since we're ignoring out-of-tree users, there's also
  325. # no need bother prompting for a manual decision:
  326. # prompt "glob_match() function"
  327. help
  328. This option provides a glob_match function for performing
  329. simple text pattern matching. It originated in the ATA code
  330. to blacklist particular drive models, but other device drivers
  331. may need similar functionality.
  332. All drivers in the Linux kernel tree that require this function
  333. should automatically select this option. Say N unless you
  334. are compiling an out-of tree driver which tells you that it
  335. depends on this.
  336. #
  337. # Netlink attribute parsing support is select'ed if needed
  338. #
  339. config NLATTR
  340. bool
  341. #
  342. # Generic 64-bit atomic support is selected if needed
  343. #
  344. config GENERIC_ATOMIC64
  345. bool
  346. config LRU_CACHE
  347. tristate
  348. config CLZ_TAB
  349. bool
  350. config IRQ_POLL
  351. bool "IRQ polling library"
  352. help
  353. Helper library to poll interrupt mitigation using polling.
  354. config MPILIB
  355. tristate
  356. select CLZ_TAB
  357. help
  358. Multiprecision maths library from GnuPG.
  359. It is used to implement RSA digital signature verification,
  360. which is used by IMA/EVM digital signature extension.
  361. config SIGNATURE
  362. tristate
  363. depends on KEYS
  364. select CRYPTO_LIB_SHA1
  365. select MPILIB
  366. help
  367. Digital signature verification. Currently only RSA is supported.
  368. Implementation is done using GnuPG MPI library
  369. config DIMLIB
  370. tristate
  371. depends on NET
  372. help
  373. Dynamic Interrupt Moderation library.
  374. Implements an algorithm for dynamically changing CQ moderation values
  375. according to run time performance.
  376. #
  377. # libfdt files, only selected if needed.
  378. #
  379. config LIBFDT
  380. bool
  381. config OID_REGISTRY
  382. tristate
  383. help
  384. Enable fast lookup object identifier registry.
  385. config UCS2_STRING
  386. tristate
  387. #
  388. # generic vdso
  389. #
  390. source "lib/vdso/Kconfig"
  391. source "lib/fonts/Kconfig"
  392. config SG_SPLIT
  393. def_bool n
  394. help
  395. Provides a helper to split scatterlists into chunks, each chunk being
  396. a scatterlist. This should be selected by a driver or an API which
  397. whishes to split a scatterlist amongst multiple DMA channels.
  398. config SG_POOL
  399. def_bool n
  400. help
  401. Provides a helper to allocate chained scatterlists. This should be
  402. selected by a driver or an API which whishes to allocate chained
  403. scatterlist.
  404. #
  405. # sg chaining option
  406. #
  407. config ARCH_NO_SG_CHAIN
  408. def_bool n
  409. config ARCH_HAS_PMEM_API
  410. bool
  411. config MEMREGION
  412. bool
  413. config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION
  414. bool
  415. config GENERIC_CPU_CACHE_MAINTENANCE
  416. bool
  417. config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
  418. bool
  419. # use memcpy to implement user copies for nommu architectures
  420. config UACCESS_MEMCPY
  421. bool
  422. config ARCH_HAS_UACCESS_FLUSHCACHE
  423. bool
  424. # arch has a concept of a recoverable synchronous exception due to a
  425. # memory-read error like x86 machine-check or ARM data-abort, and
  426. # implements copy_mc_to_{user,kernel} to abort and report
  427. # 'bytes-transferred' if that exception fires when accessing the source
  428. # buffer.
  429. config ARCH_HAS_COPY_MC
  430. bool
  431. # Temporary. Goes away when all archs are cleaned up
  432. config ARCH_STACKWALK
  433. bool
  434. config STACKDEPOT
  435. bool
  436. select STACKTRACE
  437. help
  438. Stack depot: stack trace storage that avoids duplication
  439. config STACKDEPOT_ALWAYS_INIT
  440. bool
  441. select STACKDEPOT
  442. help
  443. Always initialize stack depot during early boot
  444. config STACKDEPOT_MAX_FRAMES
  445. int "Maximum number of frames in trace saved in stack depot"
  446. range 1 256
  447. default 64
  448. depends on STACKDEPOT
  449. config REF_TRACKER
  450. bool
  451. depends on STACKTRACE_SUPPORT
  452. select STACKDEPOT
  453. config SBITMAP
  454. bool
  455. config PARMAN
  456. tristate "parman" if COMPILE_TEST
  457. config OBJAGG
  458. tristate "objagg" if COMPILE_TEST
  459. config LWQ_TEST
  460. bool "Boot-time test for lwq queuing"
  461. help
  462. Run boot-time test of light-weight queuing.
  463. endmenu
  464. config GENERIC_IOREMAP
  465. bool
  466. config GENERIC_LIB_ASHLDI3
  467. bool
  468. config GENERIC_LIB_ASHRDI3
  469. bool
  470. config GENERIC_LIB_LSHRDI3
  471. bool
  472. config GENERIC_LIB_MULDI3
  473. bool
  474. config GENERIC_LIB_CMPDI2
  475. bool
  476. config GENERIC_LIB_UCMPDI2
  477. bool
  478. config GENERIC_LIB_DEVMEM_IS_ALLOWED
  479. bool
  480. config PLDMFW
  481. bool
  482. select CRC32
  483. default n
  484. config ASN1_ENCODER
  485. tristate
  486. config POLYNOMIAL
  487. tristate
  488. config FIRMWARE_TABLE
  489. bool
  490. config UNION_FIND
  491. bool
  492. config MIN_HEAP
  493. bool