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