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/crc/Kconfig" 140source "lib/crypto/Kconfig" 141source "lib/raid/Kconfig" 142 143config XXHASH 144 tristate 145 146config AUDIT_GENERIC 147 bool 148 depends on AUDIT && !AUDIT_ARCH 149 default y 150 151config AUDIT_ARCH_COMPAT_GENERIC 152 bool 153 default n 154 155config AUDIT_COMPAT_GENERIC 156 bool 157 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT 158 default y 159 160config RANDOM32_SELFTEST 161 bool "PRNG perform self test on init" 162 help 163 This option enables the 32 bit PRNG library functions to perform a 164 self test on initialization. 165 166# 167# compression support is select'ed if needed 168# 169config 842_COMPRESS 170 select CRC32 171 tristate 172 173config 842_DECOMPRESS 174 select CRC32 175 tristate 176 177config ZLIB_INFLATE 178 tristate 179 180config ZLIB_DEFLATE 181 tristate 182 select BITREVERSE 183 184config ZLIB_DFLTCC 185 def_bool y 186 depends on S390 187 prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" 188 help 189 Enable s390x hardware support for zlib in the kernel. 190 191config LZO_COMPRESS 192 tristate 193 194config LZO_DECOMPRESS 195 tristate 196 197config LZ4_COMPRESS 198 tristate 199 200config LZ4HC_COMPRESS 201 tristate 202 203config LZ4_DECOMPRESS 204 tristate 205 206config ZSTD_COMMON 207 select XXHASH 208 tristate 209 210config ZSTD_COMPRESS 211 select ZSTD_COMMON 212 tristate 213 214config ZSTD_DECOMPRESS 215 select ZSTD_COMMON 216 tristate 217 218source "lib/xz/Kconfig" 219 220# 221# These all provide a common interface (hence the apparent duplication with 222# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) 223# 224config DECOMPRESS_GZIP 225 select ZLIB_INFLATE 226 tristate 227 228config DECOMPRESS_BZIP2 229 tristate 230 231config DECOMPRESS_LZMA 232 tristate 233 234config DECOMPRESS_XZ 235 select XZ_DEC 236 tristate 237 238config DECOMPRESS_LZO 239 select LZO_DECOMPRESS 240 tristate 241 242config DECOMPRESS_LZ4 243 select LZ4_DECOMPRESS 244 tristate 245 246config DECOMPRESS_ZSTD 247 select ZSTD_DECOMPRESS 248 tristate 249 250# 251# Generic allocator support is selected if needed 252# 253config GENERIC_ALLOCATOR 254 bool 255 256# 257# reed solomon support is select'ed if needed 258# 259config REED_SOLOMON 260 tristate 261 262config REED_SOLOMON_ENC8 263 bool 264 265config REED_SOLOMON_DEC8 266 bool 267 268config REED_SOLOMON_ENC16 269 bool 270 271config REED_SOLOMON_DEC16 272 bool 273 274# 275# BCH support is selected if needed 276# 277config BCH 278 tristate 279 select BITREVERSE 280 281config BCH_CONST_PARAMS 282 bool 283 help 284 Drivers may select this option to force specific constant 285 values for parameters 'm' (Galois field order) and 't' 286 (error correction capability). Those specific values must 287 be set by declaring default values for symbols BCH_CONST_M 288 and BCH_CONST_T. 289 Doing so will enable extra compiler optimizations, 290 improving encoding and decoding performance up to 2x for 291 usual (m,t) values (typically such that m*t < 200). 292 When this option is selected, the BCH library supports 293 only a single (m,t) configuration. This is mainly useful 294 for NAND flash board drivers requiring known, fixed BCH 295 parameters. 296 297config BCH_CONST_M 298 int 299 range 5 15 300 help 301 Constant value for Galois field order 'm'. If 'k' is the 302 number of data bits to protect, 'm' should be chosen such 303 that (k + m*t) <= 2**m - 1. 304 Drivers should declare a default value for this symbol if 305 they select option BCH_CONST_PARAMS. 306 307config BCH_CONST_T 308 int 309 help 310 Constant value for error correction capability in bits 't'. 311 Drivers should declare a default value for this symbol if 312 they select option BCH_CONST_PARAMS. 313 314# 315# Textsearch support is select'ed if needed 316# 317config TEXTSEARCH 318 bool 319 320config TEXTSEARCH_KMP 321 tristate 322 323config TEXTSEARCH_BM 324 tristate 325 326config TEXTSEARCH_FSM 327 tristate 328 329config BTREE 330 bool 331 332config INTERVAL_TREE 333 bool 334 help 335 Simple, embeddable, interval-tree. Can find the start of an 336 overlapping range in log(n) time and then iterate over all 337 overlapping nodes. The algorithm is implemented as an 338 augmented rbtree. 339 340 See: 341 342 Documentation/core-api/rbtree.rst 343 344 for more information. 345 346config INTERVAL_TREE_SPAN_ITER 347 bool 348 depends on INTERVAL_TREE 349 350config XARRAY_MULTI 351 bool 352 help 353 Support entries which occupy multiple consecutive indices in the 354 XArray. 355 356config ASSOCIATIVE_ARRAY 357 bool 358 help 359 Generic associative array. Can be searched and iterated over whilst 360 it is being modified. It is also reasonably quick to search and 361 modify. The algorithms are non-recursive, and the trees are highly 362 capacious. 363 364 See: 365 366 Documentation/core-api/assoc_array.rst 367 368 for more information. 369 370config CLOSURES 371 bool 372 373config HAS_IOMEM 374 bool 375 depends on !NO_IOMEM 376 default y 377 378config HAS_IOPORT 379 bool 380 381config HAS_IOPORT_MAP 382 bool 383 depends on HAS_IOMEM && !NO_IOPORT_MAP 384 default y 385 386source "kernel/dma/Kconfig" 387 388config SGL_ALLOC 389 bool 390 default n 391 392config IOMMU_HELPER 393 bool 394 395config CHECK_SIGNATURE 396 bool 397 398config CPUMASK_OFFSTACK 399 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS 400 help 401 Use dynamic allocation for cpumask_var_t, instead of putting 402 them on the stack. This is a bit more expensive, but avoids 403 stack overflow. 404 405config FORCE_NR_CPUS 406 def_bool !SMP 407 408config CPU_RMAP 409 bool 410 depends on SMP 411 412config DQL 413 bool 414 415config GLOB 416 bool 417# This actually supports modular compilation, but the module overhead 418# is ridiculous for the amount of code involved. Until an out-of-tree 419# driver asks for it, we'll just link it directly it into the kernel 420# when required. Since we're ignoring out-of-tree users, there's also 421# no need bother prompting for a manual decision: 422# prompt "glob_match() function" 423 help 424 This option provides a glob_match function for performing 425 simple text pattern matching. It originated in the ATA code 426 to blacklist particular drive models, but other device drivers 427 may need similar functionality. 428 429 All drivers in the Linux kernel tree that require this function 430 should automatically select this option. Say N unless you 431 are compiling an out-of tree driver which tells you that it 432 depends on this. 433 434# 435# Netlink attribute parsing support is select'ed if needed 436# 437config NLATTR 438 bool 439 440# 441# Generic 64-bit atomic support is selected if needed 442# 443config GENERIC_ATOMIC64 444 bool 445 446config LRU_CACHE 447 tristate 448 449config CLZ_TAB 450 bool 451 452config IRQ_POLL 453 bool "IRQ polling library" 454 help 455 Helper library to poll interrupt mitigation using polling. 456 457config MPILIB 458 tristate 459 select CLZ_TAB 460 help 461 Multiprecision maths library from GnuPG. 462 It is used to implement RSA digital signature verification, 463 which is used by IMA/EVM digital signature extension. 464 465config SIGNATURE 466 tristate 467 depends on KEYS 468 select CRYPTO_LIB_SHA1 469 select MPILIB 470 help 471 Digital signature verification. Currently only RSA is supported. 472 Implementation is done using GnuPG MPI library 473 474config DIMLIB 475 tristate 476 depends on NET 477 help 478 Dynamic Interrupt Moderation library. 479 Implements an algorithm for dynamically changing CQ moderation values 480 according to run time performance. 481 482# 483# libfdt files, only selected if needed. 484# 485config LIBFDT 486 bool 487 488config OID_REGISTRY 489 tristate 490 help 491 Enable fast lookup object identifier registry. 492 493config UCS2_STRING 494 tristate 495 496# 497# generic vdso 498# 499source "lib/vdso/Kconfig" 500 501source "lib/fonts/Kconfig" 502 503config SG_SPLIT 504 def_bool n 505 help 506 Provides a helper to split scatterlists into chunks, each chunk being 507 a scatterlist. This should be selected by a driver or an API which 508 whishes to split a scatterlist amongst multiple DMA channels. 509 510config SG_POOL 511 def_bool n 512 help 513 Provides a helper to allocate chained scatterlists. This should be 514 selected by a driver or an API which whishes to allocate chained 515 scatterlist. 516 517# 518# sg chaining option 519# 520 521config ARCH_NO_SG_CHAIN 522 def_bool n 523 524config ARCH_HAS_PMEM_API 525 bool 526 527config MEMREGION 528 bool 529 530config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION 531 bool 532 533config GENERIC_CPU_CACHE_MAINTENANCE 534 bool 535 536config ARCH_HAS_MEMREMAP_COMPAT_ALIGN 537 bool 538 539# use memcpy to implement user copies for nommu architectures 540config UACCESS_MEMCPY 541 bool 542 543config ARCH_HAS_UACCESS_FLUSHCACHE 544 bool 545 546# arch has a concept of a recoverable synchronous exception due to a 547# memory-read error like x86 machine-check or ARM data-abort, and 548# implements copy_mc_to_{user,kernel} to abort and report 549# 'bytes-transferred' if that exception fires when accessing the source 550# buffer. 551config ARCH_HAS_COPY_MC 552 bool 553 554# Temporary. Goes away when all archs are cleaned up 555config ARCH_STACKWALK 556 bool 557 558config STACKDEPOT 559 bool 560 select STACKTRACE 561 help 562 Stack depot: stack trace storage that avoids duplication 563 564config STACKDEPOT_ALWAYS_INIT 565 bool 566 select STACKDEPOT 567 help 568 Always initialize stack depot during early boot 569 570config STACKDEPOT_MAX_FRAMES 571 int "Maximum number of frames in trace saved in stack depot" 572 range 1 256 573 default 64 574 depends on STACKDEPOT 575 576config REF_TRACKER 577 bool 578 depends on STACKTRACE_SUPPORT 579 select STACKDEPOT 580 581config SBITMAP 582 bool 583 584config PARMAN 585 tristate "parman" if COMPILE_TEST 586 587config OBJAGG 588 tristate "objagg" if COMPILE_TEST 589 590config LWQ_TEST 591 bool "Boot-time test for lwq queuing" 592 help 593 Run boot-time test of light-weight queuing. 594 595endmenu 596 597config GENERIC_IOREMAP 598 bool 599 600config GENERIC_LIB_ASHLDI3 601 bool 602 603config GENERIC_LIB_ASHRDI3 604 bool 605 606config GENERIC_LIB_LSHRDI3 607 bool 608 609config GENERIC_LIB_MULDI3 610 bool 611 612config GENERIC_LIB_CMPDI2 613 bool 614 615config GENERIC_LIB_UCMPDI2 616 bool 617 618config GENERIC_LIB_DEVMEM_IS_ALLOWED 619 bool 620 621config PLDMFW 622 bool 623 select CRC32 624 default n 625 626config ASN1_ENCODER 627 tristate 628 629config FIRMWARE_TABLE 630 bool 631 632config UNION_FIND 633 bool 634 635config MIN_HEAP 636 bool 637