Kconfig 12 KB

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