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