1# SPDX-License-Identifier: GPL-2.0-only 2# 3# Library configuration 4# 5 6config BINARY_PRINTF 7 def_bool n 8 9menu "Library routines" 10 11config RAID6_PQ 12 tristate 13 14config RAID6_PQ_BENCHMARK 15 bool "Automatically choose fastest RAID6 PQ functions" 16 depends on RAID6_PQ 17 default y 18 help 19 Benchmark all available RAID6 PQ functions on init and choose the 20 fastest one. 21 22config LINEAR_RANGES 23 tristate 24 25config PACKING 26 bool "Generic bitfield packing and unpacking" 27 select BITREVERSE 28 default n 29 help 30 This option provides the packing() helper function, which permits 31 converting bitfields between a CPU-usable representation and a 32 memory representation that can have any combination of these quirks: 33 - Is little endian (bytes are reversed within a 32-bit group) 34 - The least-significant 32-bit word comes first (within a 64-bit 35 group) 36 - The most significant bit of a byte is at its right (bit 0 of a 37 register description is numerically 2^7). 38 Drivers may use these helpers to match the bit indices as described 39 in the data sheets of the peripherals they are in control of. 40 41 When in doubt, say N. 42 43config PACKING_KUNIT_TEST 44 tristate "KUnit tests for packing library" if !KUNIT_ALL_TESTS 45 depends on PACKING && KUNIT 46 default KUNIT_ALL_TESTS 47 help 48 This builds KUnit tests for the packing library. 49 50 For more information on KUnit and unit tests in general, 51 please refer to the KUnit documentation in Documentation/dev-tools/kunit/. 52 53 When in doubt, say N. 54 55config BITREVERSE 56 tristate 57 58config HAVE_ARCH_BITREVERSE 59 bool 60 default n 61 help 62 This option enables the use of hardware bit-reversal instructions on 63 architectures which support such operations. 64 65config ARCH_HAS_STRNCPY_FROM_USER 66 bool 67 68config ARCH_HAS_STRNLEN_USER 69 bool 70 71config GENERIC_STRNCPY_FROM_USER 72 def_bool !ARCH_HAS_STRNCPY_FROM_USER 73 74config GENERIC_STRNLEN_USER 75 def_bool !ARCH_HAS_STRNLEN_USER 76 77config GENERIC_NET_UTILS 78 bool 79 80source "lib/math/Kconfig" 81 82config NO_GENERIC_PCI_IOPORT_MAP 83 bool 84 85config GENERIC_IOMAP 86 bool 87 select GENERIC_PCI_IOMAP 88 89config STMP_DEVICE 90 bool 91 92config ARCH_USE_CMPXCHG_LOCKREF 93 bool 94 95config ARCH_HAS_FAST_MULTIPLIER 96 bool 97 98config ARCH_USE_SYM_ANNOTATIONS 99 bool 100 101config INDIRECT_PIO 102 bool "Access I/O in non-MMIO mode" 103 depends on ARM64 104 depends on HAS_IOPORT 105 help 106 On some platforms where no separate I/O space exists, there are I/O 107 hosts which can not be accessed in MMIO mode. Using the logical PIO 108 mechanism, the host-local I/O resource can be mapped into system 109 logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the 110 system can access the I/O devices with the mapped-logic PIO through 111 I/O accessors. 112 113 This way has relatively little I/O performance cost. Please make 114 sure your devices really need this configure item enabled. 115 116 When in doubt, say N. 117 118config INDIRECT_IOMEM 119 bool 120 help 121 This is selected by other options/architectures to provide the 122 emulated iomem accessors. 123 124config INDIRECT_IOMEM_FALLBACK 125 bool 126 depends on INDIRECT_IOMEM 127 help 128 If INDIRECT_IOMEM is selected, this enables falling back to plain 129 mmio accesses when the IO memory address is not a registered 130 emulated region. 131 132config TRACE_MMIO_ACCESS 133 bool "Register read/write tracing" 134 depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS 135 help 136 Create tracepoints for MMIO read/write operations. These trace events 137 can be used for logging all MMIO read/write operations. 138 139source "lib/crypto/Kconfig" 140 141config CRC_CCITT 142 tristate 143 help 144 The CRC-CCITT library functions. Select this if your module uses any 145 of the functions from <linux/crc-ccitt.h>. 146 147config CRC16 148 tristate 149 help 150 The CRC16 library functions. Select this if your module uses any of 151 the functions from <linux/crc16.h>. 152 153config CRC_T10DIF 154 tristate 155 help 156 The CRC-T10DIF library functions. Select this if your module uses 157 any of the functions from <linux/crc-t10dif.h>. 158 159config ARCH_HAS_CRC_T10DIF 160 bool 161 162config CRC_T10DIF_ARCH 163 tristate 164 default CRC_T10DIF if ARCH_HAS_CRC_T10DIF && CRC_OPTIMIZATIONS 165 166config CRC_ITU_T 167 tristate 168 help 169 The CRC-ITU-T library functions. Select this if your module uses 170 any of the functions from <linux/crc-itu-t.h>. 171 172config CRC32 173 tristate 174 select BITREVERSE 175 help 176 The CRC32 library functions. Select this if your module uses any of 177 the functions from <linux/crc32.h> or <linux/crc32c.h>. 178 179config ARCH_HAS_CRC32 180 bool 181 182config CRC32_ARCH 183 tristate 184 default CRC32 if ARCH_HAS_CRC32 && CRC_OPTIMIZATIONS 185 186config CRC64 187 tristate 188 help 189 The CRC64 library functions. Select this if your module uses any of 190 the functions from <linux/crc64.h>. 191 192config ARCH_HAS_CRC64 193 bool 194 195config CRC64_ARCH 196 tristate 197 default CRC64 if ARCH_HAS_CRC64 && CRC_OPTIMIZATIONS 198 199config CRC4 200 tristate 201 help 202 The CRC4 library functions. Select this if your module uses any of 203 the functions from <linux/crc4.h>. 204 205config CRC7 206 tristate 207 help 208 The CRC7 library functions. Select this if your module uses any of 209 the functions from <linux/crc7.h>. 210 211config CRC8 212 tristate 213 help 214 The CRC8 library functions. Select this if your module uses any of 215 the functions from <linux/crc8.h>. 216 217config CRC_OPTIMIZATIONS 218 bool "Enable optimized CRC implementations" if EXPERT 219 default y 220 help 221 Disabling this option reduces code size slightly by disabling the 222 architecture-optimized implementations of any CRC variants that are 223 enabled. CRC checksumming performance may get much slower. 224 225 Keep this enabled unless you're really trying to minimize the size of 226 the kernel. 227 228config XXHASH 229 tristate 230 231config AUDIT_GENERIC 232 bool 233 depends on AUDIT && !AUDIT_ARCH 234 default y 235 236config AUDIT_ARCH_COMPAT_GENERIC 237 bool 238 default n 239 240config AUDIT_COMPAT_GENERIC 241 bool 242 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT 243 default y 244 245config RANDOM32_SELFTEST 246 bool "PRNG perform self test on init" 247 help 248 This option enables the 32 bit PRNG library functions to perform a 249 self test on initialization. 250 251# 252# compression support is select'ed if needed 253# 254config 842_COMPRESS 255 select CRC32 256 tristate 257 258config 842_DECOMPRESS 259 select CRC32 260 tristate 261 262config ZLIB_INFLATE 263 tristate 264 265config ZLIB_DEFLATE 266 tristate 267 select BITREVERSE 268 269config ZLIB_DFLTCC 270 def_bool y 271 depends on S390 272 prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" 273 help 274 Enable s390x hardware support for zlib in the kernel. 275 276config LZO_COMPRESS 277 tristate 278 279config LZO_DECOMPRESS 280 tristate 281 282config LZ4_COMPRESS 283 tristate 284 285config LZ4HC_COMPRESS 286 tristate 287 288config LZ4_DECOMPRESS 289 tristate 290 291config ZSTD_COMMON 292 select XXHASH 293 tristate 294 295config ZSTD_COMPRESS 296 select ZSTD_COMMON 297 tristate 298 299config ZSTD_DECOMPRESS 300 select ZSTD_COMMON 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 331config DECOMPRESS_ZSTD 332 select ZSTD_DECOMPRESS 333 tristate 334 335# 336# Generic allocator support is selected if needed 337# 338config GENERIC_ALLOCATOR 339 bool 340 341# 342# reed solomon support is select'ed if needed 343# 344config REED_SOLOMON 345 tristate 346 347config REED_SOLOMON_ENC8 348 bool 349 350config REED_SOLOMON_DEC8 351 bool 352 353config REED_SOLOMON_ENC16 354 bool 355 356config REED_SOLOMON_DEC16 357 bool 358 359# 360# BCH support is selected if needed 361# 362config BCH 363 tristate 364 select BITREVERSE 365 366config BCH_CONST_PARAMS 367 bool 368 help 369 Drivers may select this option to force specific constant 370 values for parameters 'm' (Galois field order) and 't' 371 (error correction capability). Those specific values must 372 be set by declaring default values for symbols BCH_CONST_M 373 and BCH_CONST_T. 374 Doing so will enable extra compiler optimizations, 375 improving encoding and decoding performance up to 2x for 376 usual (m,t) values (typically such that m*t < 200). 377 When this option is selected, the BCH library supports 378 only a single (m,t) configuration. This is mainly useful 379 for NAND flash board drivers requiring known, fixed BCH 380 parameters. 381 382config BCH_CONST_M 383 int 384 range 5 15 385 help 386 Constant value for Galois field order 'm'. If 'k' is the 387 number of data bits to protect, 'm' should be chosen such 388 that (k + m*t) <= 2**m - 1. 389 Drivers should declare a default value for this symbol if 390 they select option BCH_CONST_PARAMS. 391 392config BCH_CONST_T 393 int 394 help 395 Constant value for error correction capability in bits 't'. 396 Drivers should declare a default value for this symbol if 397 they select option BCH_CONST_PARAMS. 398 399# 400# Textsearch support is select'ed if needed 401# 402config TEXTSEARCH 403 bool 404 405config TEXTSEARCH_KMP 406 tristate 407 408config TEXTSEARCH_BM 409 tristate 410 411config TEXTSEARCH_FSM 412 tristate 413 414config BTREE 415 bool 416 417config INTERVAL_TREE 418 bool 419 help 420 Simple, embeddable, interval-tree. Can find the start of an 421 overlapping range in log(n) time and then iterate over all 422 overlapping nodes. The algorithm is implemented as an 423 augmented rbtree. 424 425 See: 426 427 Documentation/core-api/rbtree.rst 428 429 for more information. 430 431config INTERVAL_TREE_SPAN_ITER 432 bool 433 depends on INTERVAL_TREE 434 435config XARRAY_MULTI 436 bool 437 help 438 Support entries which occupy multiple consecutive indices in the 439 XArray. 440 441config ASSOCIATIVE_ARRAY 442 bool 443 help 444 Generic associative array. Can be searched and iterated over whilst 445 it is being modified. It is also reasonably quick to search and 446 modify. The algorithms are non-recursive, and the trees are highly 447 capacious. 448 449 See: 450 451 Documentation/core-api/assoc_array.rst 452 453 for more information. 454 455config CLOSURES 456 bool 457 458config HAS_IOMEM 459 bool 460 depends on !NO_IOMEM 461 default y 462 463config HAS_IOPORT 464 bool 465 466config HAS_IOPORT_MAP 467 bool 468 depends on HAS_IOMEM && !NO_IOPORT_MAP 469 default y 470 471source "kernel/dma/Kconfig" 472 473config SGL_ALLOC 474 bool 475 default n 476 477config IOMMU_HELPER 478 bool 479 480config CHECK_SIGNATURE 481 bool 482 483config CPUMASK_OFFSTACK 484 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS 485 help 486 Use dynamic allocation for cpumask_var_t, instead of putting 487 them on the stack. This is a bit more expensive, but avoids 488 stack overflow. 489 490config FORCE_NR_CPUS 491 def_bool !SMP 492 493config CPU_RMAP 494 bool 495 depends on SMP 496 497config DQL 498 bool 499 500config GLOB 501 bool 502# This actually supports modular compilation, but the module overhead 503# is ridiculous for the amount of code involved. Until an out-of-tree 504# driver asks for it, we'll just link it directly it into the kernel 505# when required. Since we're ignoring out-of-tree users, there's also 506# no need bother prompting for a manual decision: 507# prompt "glob_match() function" 508 help 509 This option provides a glob_match function for performing 510 simple text pattern matching. It originated in the ATA code 511 to blacklist particular drive models, but other device drivers 512 may need similar functionality. 513 514 All drivers in the Linux kernel tree that require this function 515 should automatically select this option. Say N unless you 516 are compiling an out-of tree driver which tells you that it 517 depends on this. 518 519config GLOB_SELFTEST 520 tristate "glob self-test on init" 521 depends on GLOB 522 help 523 This option enables a simple self-test of the glob_match 524 function on startup. It is primarily useful for people 525 working on the code to ensure they haven't introduced any 526 regressions. 527 528 It only adds a little bit of code and slows kernel boot (or 529 module load) by a small amount, so you're welcome to play with 530 it, but you probably don't need it. 531 532# 533# Netlink attribute parsing support is select'ed if needed 534# 535config NLATTR 536 bool 537 538# 539# Generic 64-bit atomic support is selected if needed 540# 541config GENERIC_ATOMIC64 542 bool 543 544config LRU_CACHE 545 tristate 546 547config CLZ_TAB 548 bool 549 550config IRQ_POLL 551 bool "IRQ polling library" 552 help 553 Helper library to poll interrupt mitigation using polling. 554 555config MPILIB 556 tristate 557 select CLZ_TAB 558 help 559 Multiprecision maths library from GnuPG. 560 It is used to implement RSA digital signature verification, 561 which is used by IMA/EVM digital signature extension. 562 563config SIGNATURE 564 tristate 565 depends on KEYS 566 select CRYPTO 567 select CRYPTO_SHA1 568 select MPILIB 569 help 570 Digital signature verification. Currently only RSA is supported. 571 Implementation is done using GnuPG MPI library 572 573config DIMLIB 574 tristate 575 depends on NET 576 help 577 Dynamic Interrupt Moderation library. 578 Implements an algorithm for dynamically changing CQ moderation values 579 according to run time performance. 580 581# 582# libfdt files, only selected if needed. 583# 584config LIBFDT 585 bool 586 587config OID_REGISTRY 588 tristate 589 help 590 Enable fast lookup object identifier registry. 591 592config UCS2_STRING 593 tristate 594 595# 596# generic vdso 597# 598source "lib/vdso/Kconfig" 599 600source "lib/fonts/Kconfig" 601 602config SG_SPLIT 603 def_bool n 604 help 605 Provides a helper to split scatterlists into chunks, each chunk being 606 a scatterlist. This should be selected by a driver or an API which 607 whishes to split a scatterlist amongst multiple DMA channels. 608 609config SG_POOL 610 def_bool n 611 help 612 Provides a helper to allocate chained scatterlists. This should be 613 selected by a driver or an API which whishes to allocate chained 614 scatterlist. 615 616# 617# sg chaining option 618# 619 620config ARCH_NO_SG_CHAIN 621 def_bool n 622 623config ARCH_HAS_PMEM_API 624 bool 625 626config MEMREGION 627 bool 628 629config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION 630 bool 631 632config ARCH_HAS_MEMREMAP_COMPAT_ALIGN 633 bool 634 635# use memcpy to implement user copies for nommu architectures 636config UACCESS_MEMCPY 637 bool 638 639config ARCH_HAS_UACCESS_FLUSHCACHE 640 bool 641 642# arch has a concept of a recoverable synchronous exception due to a 643# memory-read error like x86 machine-check or ARM data-abort, and 644# implements copy_mc_to_{user,kernel} to abort and report 645# 'bytes-transferred' if that exception fires when accessing the source 646# buffer. 647config ARCH_HAS_COPY_MC 648 bool 649 650# Temporary. Goes away when all archs are cleaned up 651config ARCH_STACKWALK 652 bool 653 654config STACKDEPOT 655 bool 656 select STACKTRACE 657 help 658 Stack depot: stack trace storage that avoids duplication 659 660config STACKDEPOT_ALWAYS_INIT 661 bool 662 select STACKDEPOT 663 help 664 Always initialize stack depot during early boot 665 666config STACKDEPOT_MAX_FRAMES 667 int "Maximum number of frames in trace saved in stack depot" 668 range 1 256 669 default 64 670 depends on STACKDEPOT 671 672config REF_TRACKER 673 bool 674 depends on STACKTRACE_SUPPORT 675 select STACKDEPOT 676 677config SBITMAP 678 bool 679 680config PARMAN 681 tristate "parman" if COMPILE_TEST 682 683config OBJAGG 684 tristate "objagg" if COMPILE_TEST 685 686config LWQ_TEST 687 bool "Boot-time test for lwq queuing" 688 help 689 Run boot-time test of light-weight queuing. 690 691endmenu 692 693config GENERIC_IOREMAP 694 bool 695 696config GENERIC_LIB_ASHLDI3 697 bool 698 699config GENERIC_LIB_ASHRDI3 700 bool 701 702config GENERIC_LIB_LSHRDI3 703 bool 704 705config GENERIC_LIB_MULDI3 706 bool 707 708config GENERIC_LIB_CMPDI2 709 bool 710 711config GENERIC_LIB_UCMPDI2 712 bool 713 714config GENERIC_LIB_DEVMEM_IS_ALLOWED 715 bool 716 717config PLDMFW 718 bool 719 default n 720 721config ASN1_ENCODER 722 tristate 723 724config POLYNOMIAL 725 tristate 726 727config FIRMWARE_TABLE 728 bool 729 730config UNION_FIND 731 bool 732 733config MIN_HEAP 734 bool 735