Kconfig 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. #
  2. # Library configuration
  3. #
  4. config BINARY_PRINTF
  5. def_bool n
  6. menu "Library routines"
  7. config RAID6_PQ
  8. tristate
  9. config BITREVERSE
  10. tristate
  11. config HAVE_ARCH_BITREVERSE
  12. bool
  13. default n
  14. depends on BITREVERSE
  15. help
  16. This option enables the use of hardware bit-reversal instructions on
  17. architectures which support such operations.
  18. config RATIONAL
  19. bool
  20. config GENERIC_STRNCPY_FROM_USER
  21. bool
  22. config GENERIC_STRNLEN_USER
  23. bool
  24. config GENERIC_NET_UTILS
  25. bool
  26. config GENERIC_FIND_FIRST_BIT
  27. bool
  28. config NO_GENERIC_PCI_IOPORT_MAP
  29. bool
  30. config GENERIC_PCI_IOMAP
  31. bool
  32. config GENERIC_IOMAP
  33. bool
  34. select GENERIC_PCI_IOMAP
  35. config STMP_DEVICE
  36. bool
  37. config ARCH_USE_CMPXCHG_LOCKREF
  38. bool
  39. config ARCH_HAS_FAST_MULTIPLIER
  40. bool
  41. config INDIRECT_PIO
  42. bool "Access I/O in non-MMIO mode"
  43. depends on ARM64
  44. help
  45. On some platforms where no separate I/O space exists, there are I/O
  46. hosts which can not be accessed in MMIO mode. Using the logical PIO
  47. mechanism, the host-local I/O resource can be mapped into system
  48. logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
  49. system can access the I/O devices with the mapped-logic PIO through
  50. I/O accessors.
  51. This way has relatively little I/O performance cost. Please make
  52. sure your devices really need this configure item enabled.
  53. When in doubt, say N.
  54. config CRC_CCITT
  55. tristate "CRC-CCITT functions"
  56. help
  57. This option is provided for the case where no in-kernel-tree
  58. modules require CRC-CCITT functions, but a module built outside
  59. the kernel tree does. Such modules that use library CRC-CCITT
  60. functions require M here.
  61. config CRC16
  62. tristate "CRC16 functions"
  63. help
  64. This option is provided for the case where no in-kernel-tree
  65. modules require CRC16 functions, but a module built outside
  66. the kernel tree does. Such modules that use library CRC16
  67. functions require M here.
  68. config CRC_T10DIF
  69. tristate "CRC calculation for the T10 Data Integrity Field"
  70. select CRYPTO
  71. select CRYPTO_CRCT10DIF
  72. help
  73. This option is only needed if a module that's not in the
  74. kernel tree needs to calculate CRC checks for use with the
  75. SCSI data integrity subsystem.
  76. config CRC_ITU_T
  77. tristate "CRC ITU-T V.41 functions"
  78. help
  79. This option is provided for the case where no in-kernel-tree
  80. modules require CRC ITU-T V.41 functions, but a module built outside
  81. the kernel tree does. Such modules that use library CRC ITU-T V.41
  82. functions require M here.
  83. config CRC32
  84. tristate "CRC32/CRC32c functions"
  85. default y
  86. select BITREVERSE
  87. help
  88. This option is provided for the case where no in-kernel-tree
  89. modules require CRC32/CRC32c functions, but a module built outside
  90. the kernel tree does. Such modules that use library CRC32/CRC32c
  91. functions require M here.
  92. config CRC32_SELFTEST
  93. tristate "CRC32 perform self test on init"
  94. depends on CRC32
  95. help
  96. This option enables the CRC32 library functions to perform a
  97. self test on initialization. The self test computes crc32_le
  98. and crc32_be over byte strings with random alignment and length
  99. and computes the total elapsed time and number of bytes processed.
  100. choice
  101. prompt "CRC32 implementation"
  102. depends on CRC32
  103. default CRC32_SLICEBY8
  104. help
  105. This option allows a kernel builder to override the default choice
  106. of CRC32 algorithm. Choose the default ("slice by 8") unless you
  107. know that you need one of the others.
  108. config CRC32_SLICEBY8
  109. bool "Slice by 8 bytes"
  110. help
  111. Calculate checksum 8 bytes at a time with a clever slicing algorithm.
  112. This is the fastest algorithm, but comes with a 8KiB lookup table.
  113. Most modern processors have enough cache to hold this table without
  114. thrashing the cache.
  115. This is the default implementation choice. Choose this one unless
  116. you have a good reason not to.
  117. config CRC32_SLICEBY4
  118. bool "Slice by 4 bytes"
  119. help
  120. Calculate checksum 4 bytes at a time with a clever slicing algorithm.
  121. This is a bit slower than slice by 8, but has a smaller 4KiB lookup
  122. table.
  123. Only choose this option if you know what you are doing.
  124. config CRC32_SARWATE
  125. bool "Sarwate's Algorithm (one byte at a time)"
  126. help
  127. Calculate checksum a byte at a time using Sarwate's algorithm. This
  128. is not particularly fast, but has a small 256 byte lookup table.
  129. Only choose this option if you know what you are doing.
  130. config CRC32_BIT
  131. bool "Classic Algorithm (one bit at a time)"
  132. help
  133. Calculate checksum one bit at a time. This is VERY slow, but has
  134. no lookup table. This is provided as a debugging option.
  135. Only choose this option if you are debugging crc32.
  136. endchoice
  137. config CRC64
  138. tristate "CRC64 functions"
  139. help
  140. This option is provided for the case where no in-kernel-tree
  141. modules require CRC64 functions, but a module built outside
  142. the kernel tree does. Such modules that use library CRC64
  143. functions require M here.
  144. config CRC4
  145. tristate "CRC4 functions"
  146. help
  147. This option is provided for the case where no in-kernel-tree
  148. modules require CRC4 functions, but a module built outside
  149. the kernel tree does. Such modules that use library CRC4
  150. functions require M here.
  151. config CRC7
  152. tristate "CRC7 functions"
  153. help
  154. This option is provided for the case where no in-kernel-tree
  155. modules require CRC7 functions, but a module built outside
  156. the kernel tree does. Such modules that use library CRC7
  157. functions require M here.
  158. config LIBCRC32C
  159. tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
  160. select CRYPTO
  161. select CRYPTO_CRC32C
  162. help
  163. This option is provided for the case where no in-kernel-tree
  164. modules require CRC32c functions, but a module built outside the
  165. kernel tree does. Such modules that use library CRC32c functions
  166. require M here. See Castagnoli93.
  167. Module will be libcrc32c.
  168. config CRC8
  169. tristate "CRC8 function"
  170. help
  171. This option provides CRC8 function. Drivers may select this
  172. when they need to do cyclic redundancy check according CRC8
  173. algorithm. Module will be called crc8.
  174. config XXHASH
  175. tristate
  176. config AUDIT_GENERIC
  177. bool
  178. depends on AUDIT && !AUDIT_ARCH
  179. default y
  180. config AUDIT_ARCH_COMPAT_GENERIC
  181. bool
  182. default n
  183. config AUDIT_COMPAT_GENERIC
  184. bool
  185. depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
  186. default y
  187. config RANDOM32_SELFTEST
  188. bool "PRNG perform self test on init"
  189. help
  190. This option enables the 32 bit PRNG library functions to perform a
  191. self test on initialization.
  192. #
  193. # compression support is select'ed if needed
  194. #
  195. config 842_COMPRESS
  196. select CRC32
  197. tristate
  198. config 842_DECOMPRESS
  199. select CRC32
  200. tristate
  201. config ZLIB_INFLATE
  202. tristate
  203. config ZLIB_DEFLATE
  204. tristate
  205. select BITREVERSE
  206. config LZO_COMPRESS
  207. tristate
  208. config LZO_DECOMPRESS
  209. tristate
  210. config LZ4_COMPRESS
  211. tristate
  212. config LZ4HC_COMPRESS
  213. tristate
  214. config LZ4_DECOMPRESS
  215. tristate
  216. config ZSTD_COMPRESS
  217. select XXHASH
  218. tristate
  219. config ZSTD_DECOMPRESS
  220. select XXHASH
  221. tristate
  222. source "lib/xz/Kconfig"
  223. #
  224. # These all provide a common interface (hence the apparent duplication with
  225. # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
  226. #
  227. config DECOMPRESS_GZIP
  228. select ZLIB_INFLATE
  229. tristate
  230. config DECOMPRESS_BZIP2
  231. tristate
  232. config DECOMPRESS_LZMA
  233. tristate
  234. config DECOMPRESS_XZ
  235. select XZ_DEC
  236. tristate
  237. config DECOMPRESS_LZO
  238. select LZO_DECOMPRESS
  239. tristate
  240. config DECOMPRESS_LZ4
  241. select LZ4_DECOMPRESS
  242. tristate
  243. #
  244. # Generic allocator support is selected if needed
  245. #
  246. config GENERIC_ALLOCATOR
  247. bool
  248. #
  249. # reed solomon support is select'ed if needed
  250. #
  251. config REED_SOLOMON
  252. tristate
  253. config REED_SOLOMON_ENC8
  254. bool
  255. config REED_SOLOMON_DEC8
  256. bool
  257. config REED_SOLOMON_ENC16
  258. bool
  259. config REED_SOLOMON_DEC16
  260. bool
  261. #
  262. # BCH support is selected if needed
  263. #
  264. config BCH
  265. tristate
  266. config BCH_CONST_PARAMS
  267. bool
  268. help
  269. Drivers may select this option to force specific constant
  270. values for parameters 'm' (Galois field order) and 't'
  271. (error correction capability). Those specific values must
  272. be set by declaring default values for symbols BCH_CONST_M
  273. and BCH_CONST_T.
  274. Doing so will enable extra compiler optimizations,
  275. improving encoding and decoding performance up to 2x for
  276. usual (m,t) values (typically such that m*t < 200).
  277. When this option is selected, the BCH library supports
  278. only a single (m,t) configuration. This is mainly useful
  279. for NAND flash board drivers requiring known, fixed BCH
  280. parameters.
  281. config BCH_CONST_M
  282. int
  283. range 5 15
  284. help
  285. Constant value for Galois field order 'm'. If 'k' is the
  286. number of data bits to protect, 'm' should be chosen such
  287. that (k + m*t) <= 2**m - 1.
  288. Drivers should declare a default value for this symbol if
  289. they select option BCH_CONST_PARAMS.
  290. config BCH_CONST_T
  291. int
  292. help
  293. Constant value for error correction capability in bits 't'.
  294. Drivers should declare a default value for this symbol if
  295. they select option BCH_CONST_PARAMS.
  296. #
  297. # Textsearch support is select'ed if needed
  298. #
  299. config TEXTSEARCH
  300. bool
  301. config TEXTSEARCH_KMP
  302. tristate
  303. config TEXTSEARCH_BM
  304. tristate
  305. config TEXTSEARCH_FSM
  306. tristate
  307. config BTREE
  308. bool
  309. config INTERVAL_TREE
  310. bool
  311. help
  312. Simple, embeddable, interval-tree. Can find the start of an
  313. overlapping range in log(n) time and then iterate over all
  314. overlapping nodes. The algorithm is implemented as an
  315. augmented rbtree.
  316. See:
  317. Documentation/rbtree.txt
  318. for more information.
  319. config RADIX_TREE_MULTIORDER
  320. bool
  321. config ASSOCIATIVE_ARRAY
  322. bool
  323. help
  324. Generic associative array. Can be searched and iterated over whilst
  325. it is being modified. It is also reasonably quick to search and
  326. modify. The algorithms are non-recursive, and the trees are highly
  327. capacious.
  328. See:
  329. Documentation/core-api/assoc_array.rst
  330. for more information.
  331. config HAS_IOMEM
  332. bool
  333. depends on !NO_IOMEM
  334. select GENERIC_IO
  335. default y
  336. config HAS_IOPORT_MAP
  337. bool
  338. depends on HAS_IOMEM && !NO_IOPORT_MAP
  339. default y
  340. source "kernel/dma/Kconfig"
  341. config SGL_ALLOC
  342. bool
  343. default n
  344. config IOMMU_HELPER
  345. bool
  346. config CHECK_SIGNATURE
  347. bool
  348. config CPUMASK_OFFSTACK
  349. bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
  350. help
  351. Use dynamic allocation for cpumask_var_t, instead of putting
  352. them on the stack. This is a bit more expensive, but avoids
  353. stack overflow.
  354. config CPU_RMAP
  355. bool
  356. depends on SMP
  357. config DQL
  358. bool
  359. config GLOB
  360. bool
  361. # This actually supports modular compilation, but the module overhead
  362. # is ridiculous for the amount of code involved. Until an out-of-tree
  363. # driver asks for it, we'll just link it directly it into the kernel
  364. # when required. Since we're ignoring out-of-tree users, there's also
  365. # no need bother prompting for a manual decision:
  366. # prompt "glob_match() function"
  367. help
  368. This option provides a glob_match function for performing
  369. simple text pattern matching. It originated in the ATA code
  370. to blacklist particular drive models, but other device drivers
  371. may need similar functionality.
  372. All drivers in the Linux kernel tree that require this function
  373. should automatically select this option. Say N unless you
  374. are compiling an out-of tree driver which tells you that it
  375. depends on this.
  376. config GLOB_SELFTEST
  377. tristate "glob self-test on init"
  378. depends on GLOB
  379. help
  380. This option enables a simple self-test of the glob_match
  381. function on startup. It is primarily useful for people
  382. working on the code to ensure they haven't introduced any
  383. regressions.
  384. It only adds a little bit of code and slows kernel boot (or
  385. module load) by a small amount, so you're welcome to play with
  386. it, but you probably don't need it.
  387. #
  388. # Netlink attribute parsing support is select'ed if needed
  389. #
  390. config NLATTR
  391. bool
  392. #
  393. # Generic 64-bit atomic support is selected if needed
  394. #
  395. config GENERIC_ATOMIC64
  396. bool
  397. config LRU_CACHE
  398. tristate
  399. config CLZ_TAB
  400. bool
  401. config CORDIC
  402. tristate "CORDIC algorithm"
  403. help
  404. This option provides an implementation of the CORDIC algorithm;
  405. calculations are in fixed point. Module will be called cordic.
  406. config DDR
  407. bool "JEDEC DDR data"
  408. help
  409. Data from JEDEC specs for DDR SDRAM memories,
  410. particularly the AC timing parameters and addressing
  411. information. This data is useful for drivers handling
  412. DDR SDRAM controllers.
  413. config IRQ_POLL
  414. bool "IRQ polling library"
  415. help
  416. Helper library to poll interrupt mitigation using polling.
  417. config MPILIB
  418. tristate
  419. select CLZ_TAB
  420. help
  421. Multiprecision maths library from GnuPG.
  422. It is used to implement RSA digital signature verification,
  423. which is used by IMA/EVM digital signature extension.
  424. config SIGNATURE
  425. tristate
  426. depends on KEYS
  427. select CRYPTO
  428. select CRYPTO_SHA1
  429. select MPILIB
  430. help
  431. Digital signature verification. Currently only RSA is supported.
  432. Implementation is done using GnuPG MPI library
  433. #
  434. # libfdt files, only selected if needed.
  435. #
  436. config LIBFDT
  437. bool
  438. config OID_REGISTRY
  439. tristate
  440. help
  441. Enable fast lookup object identifier registry.
  442. config UCS2_STRING
  443. tristate
  444. source "lib/fonts/Kconfig"
  445. config SG_SPLIT
  446. def_bool n
  447. help
  448. Provides a helper to split scatterlists into chunks, each chunk being
  449. a scatterlist. This should be selected by a driver or an API which
  450. whishes to split a scatterlist amongst multiple DMA channels.
  451. config SG_POOL
  452. def_bool n
  453. help
  454. Provides a helper to allocate chained scatterlists. This should be
  455. selected by a driver or an API which whishes to allocate chained
  456. scatterlist.
  457. #
  458. # sg chaining option
  459. #
  460. config ARCH_HAS_SG_CHAIN
  461. def_bool n
  462. config ARCH_HAS_PMEM_API
  463. bool
  464. config ARCH_HAS_UACCESS_FLUSHCACHE
  465. bool
  466. config ARCH_HAS_UACCESS_MCSAFE
  467. bool
  468. config STACKDEPOT
  469. bool
  470. select STACKTRACE
  471. config SBITMAP
  472. bool
  473. config PARMAN
  474. tristate "parman" if COMPILE_TEST
  475. config PRIME_NUMBERS
  476. tristate
  477. config STRING_SELFTEST
  478. tristate "Test string functions"
  479. endmenu
  480. config GENERIC_LIB_ASHLDI3
  481. bool
  482. config GENERIC_LIB_ASHRDI3
  483. bool
  484. config GENERIC_LIB_LSHRDI3
  485. bool
  486. config GENERIC_LIB_MULDI3
  487. bool
  488. config GENERIC_LIB_CMPDI2
  489. bool
  490. config GENERIC_LIB_UCMPDI2
  491. bool