780 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2#3# Library configuration4#5 6config BINARY_PRINTF7 def_bool n8 9menu "Library routines"10 11config RAID6_PQ12 tristate13 14config RAID6_PQ_BENCHMARK15 bool "Automatically choose fastest RAID6 PQ functions"16 depends on RAID6_PQ17 default y18 help19 Benchmark all available RAID6 PQ functions on init and choose the20 fastest one.21 22config LINEAR_RANGES23 tristate24 25config PACKING26 bool "Generic bitfield packing and unpacking"27 select BITREVERSE28 default n29 help30 This option provides the packing() helper function, which permits31 converting bitfields between a CPU-usable representation and a32 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-bit35 group)36 - The most significant bit of a byte is at its right (bit 0 of a37 register description is numerically 2^7).38 Drivers may use these helpers to match the bit indices as described39 in the data sheets of the peripherals they are in control of.40 41 When in doubt, say N.42 43config BITREVERSE44 tristate45 46config HAVE_ARCH_BITREVERSE47 bool48 default n49 help50 This option enables the use of hardware bit-reversal instructions on51 architectures which support such operations.52 53config ARCH_HAS_STRNCPY_FROM_USER54 bool55 56config ARCH_HAS_STRNLEN_USER57 bool58 59config GENERIC_STRNCPY_FROM_USER60 def_bool !ARCH_HAS_STRNCPY_FROM_USER61 62config GENERIC_STRNLEN_USER63 def_bool !ARCH_HAS_STRNLEN_USER64 65config GENERIC_NET_UTILS66 bool67 68source "lib/math/Kconfig"69 70config NO_GENERIC_PCI_IOPORT_MAP71 bool72 73config GENERIC_IOMAP74 bool75 select GENERIC_PCI_IOMAP76 77config STMP_DEVICE78 bool79 80config ARCH_USE_CMPXCHG_LOCKREF81 bool82 83config ARCH_HAS_FAST_MULTIPLIER84 bool85 86config ARCH_USE_SYM_ANNOTATIONS87 bool88 89config INDIRECT_PIO90 bool "Access I/O in non-MMIO mode"91 depends on ARM6492 depends on HAS_IOPORT93 help94 On some platforms where no separate I/O space exists, there are I/O95 hosts which can not be accessed in MMIO mode. Using the logical PIO96 mechanism, the host-local I/O resource can be mapped into system97 logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the98 system can access the I/O devices with the mapped-logic PIO through99 I/O accessors.100 101 This way has relatively little I/O performance cost. Please make102 sure your devices really need this configure item enabled.103 104 When in doubt, say N.105 106config INDIRECT_IOMEM107 bool108 help109 This is selected by other options/architectures to provide the110 emulated iomem accessors.111 112config INDIRECT_IOMEM_FALLBACK113 bool114 depends on INDIRECT_IOMEM115 help116 If INDIRECT_IOMEM is selected, this enables falling back to plain117 mmio accesses when the IO memory address is not a registered118 emulated region.119 120config TRACE_MMIO_ACCESS121 bool "Register read/write tracing"122 depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS123 help124 Create tracepoints for MMIO read/write operations. These trace events125 can be used for logging all MMIO read/write operations.126 127source "lib/crypto/Kconfig"128 129config CRC_CCITT130 tristate "CRC-CCITT functions"131 help132 This option is provided for the case where no in-kernel-tree133 modules require CRC-CCITT functions, but a module built outside134 the kernel tree does. Such modules that use library CRC-CCITT135 functions require M here.136 137config CRC16138 tristate "CRC16 functions"139 help140 This option is provided for the case where no in-kernel-tree141 modules require CRC16 functions, but a module built outside142 the kernel tree does. Such modules that use library CRC16143 functions require M here.144 145config CRC_T10DIF146 tristate "CRC calculation for the T10 Data Integrity Field"147 select CRYPTO148 select CRYPTO_CRCT10DIF149 help150 This option is only needed if a module that's not in the151 kernel tree needs to calculate CRC checks for use with the152 SCSI data integrity subsystem.153 154config CRC64_ROCKSOFT155 tristate "CRC calculation for the Rocksoft model CRC64"156 select CRC64157 select CRYPTO158 select CRYPTO_CRC64_ROCKSOFT159 help160 This option provides a CRC64 API to a registered crypto driver.161 This is used with the block layer's data integrity subsystem.162 163config CRC_ITU_T164 tristate "CRC ITU-T V.41 functions"165 help166 This option is provided for the case where no in-kernel-tree167 modules require CRC ITU-T V.41 functions, but a module built outside168 the kernel tree does. Such modules that use library CRC ITU-T V.41169 functions require M here.170 171config CRC32172 tristate "CRC32/CRC32c functions"173 default y174 select BITREVERSE175 help176 This option is provided for the case where no in-kernel-tree177 modules require CRC32/CRC32c functions, but a module built outside178 the kernel tree does. Such modules that use library CRC32/CRC32c179 functions require M here.180 181config CRC32_SELFTEST182 tristate "CRC32 perform self test on init"183 depends on CRC32184 help185 This option enables the CRC32 library functions to perform a186 self test on initialization. The self test computes crc32_le187 and crc32_be over byte strings with random alignment and length188 and computes the total elapsed time and number of bytes processed.189 190choice191 prompt "CRC32 implementation"192 depends on CRC32193 default CRC32_SLICEBY8194 help195 This option allows a kernel builder to override the default choice196 of CRC32 algorithm. Choose the default ("slice by 8") unless you197 know that you need one of the others.198 199config CRC32_SLICEBY8200 bool "Slice by 8 bytes"201 help202 Calculate checksum 8 bytes at a time with a clever slicing algorithm.203 This is the fastest algorithm, but comes with a 8KiB lookup table.204 Most modern processors have enough cache to hold this table without205 thrashing the cache.206 207 This is the default implementation choice. Choose this one unless208 you have a good reason not to.209 210config CRC32_SLICEBY4211 bool "Slice by 4 bytes"212 help213 Calculate checksum 4 bytes at a time with a clever slicing algorithm.214 This is a bit slower than slice by 8, but has a smaller 4KiB lookup215 table.216 217 Only choose this option if you know what you are doing.218 219config CRC32_SARWATE220 bool "Sarwate's Algorithm (one byte at a time)"221 help222 Calculate checksum a byte at a time using Sarwate's algorithm. This223 is not particularly fast, but has a small 256 byte lookup table.224 225 Only choose this option if you know what you are doing.226 227config CRC32_BIT228 bool "Classic Algorithm (one bit at a time)"229 help230 Calculate checksum one bit at a time. This is VERY slow, but has231 no lookup table. This is provided as a debugging option.232 233 Only choose this option if you are debugging crc32.234 235endchoice236 237config CRC64238 tristate "CRC64 functions"239 help240 This option is provided for the case where no in-kernel-tree241 modules require CRC64 functions, but a module built outside242 the kernel tree does. Such modules that use library CRC64243 functions require M here.244 245config CRC4246 tristate "CRC4 functions"247 help248 This option is provided for the case where no in-kernel-tree249 modules require CRC4 functions, but a module built outside250 the kernel tree does. Such modules that use library CRC4251 functions require M here.252 253config CRC7254 tristate "CRC7 functions"255 help256 This option is provided for the case where no in-kernel-tree257 modules require CRC7 functions, but a module built outside258 the kernel tree does. Such modules that use library CRC7259 functions require M here.260 261config LIBCRC32C262 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"263 select CRYPTO264 select CRYPTO_CRC32C265 help266 This option is provided for the case where no in-kernel-tree267 modules require CRC32c functions, but a module built outside the268 kernel tree does. Such modules that use library CRC32c functions269 require M here. See Castagnoli93.270 Module will be libcrc32c.271 272config CRC8273 tristate "CRC8 function"274 help275 This option provides CRC8 function. Drivers may select this276 when they need to do cyclic redundancy check according CRC8277 algorithm. Module will be called crc8.278 279config XXHASH280 tristate281 282config AUDIT_GENERIC283 bool284 depends on AUDIT && !AUDIT_ARCH285 default y286 287config AUDIT_ARCH_COMPAT_GENERIC288 bool289 default n290 291config AUDIT_COMPAT_GENERIC292 bool293 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT294 default y295 296config RANDOM32_SELFTEST297 bool "PRNG perform self test on init"298 help299 This option enables the 32 bit PRNG library functions to perform a300 self test on initialization.301 302#303# compression support is select'ed if needed304#305config 842_COMPRESS306 select CRC32307 tristate308 309config 842_DECOMPRESS310 select CRC32311 tristate312 313config ZLIB_INFLATE314 tristate315 316config ZLIB_DEFLATE317 tristate318 select BITREVERSE319 320config ZLIB_DFLTCC321 def_bool y322 depends on S390323 prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"324 help325 Enable s390x hardware support for zlib in the kernel.326 327config LZO_COMPRESS328 tristate329 330config LZO_DECOMPRESS331 tristate332 333config LZ4_COMPRESS334 tristate335 336config LZ4HC_COMPRESS337 tristate338 339config LZ4_DECOMPRESS340 tristate341 342config ZSTD_COMMON343 select XXHASH344 tristate345 346config ZSTD_COMPRESS347 select ZSTD_COMMON348 tristate349 350config ZSTD_DECOMPRESS351 select ZSTD_COMMON352 tristate353 354source "lib/xz/Kconfig"355 356#357# These all provide a common interface (hence the apparent duplication with358# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)359#360config DECOMPRESS_GZIP361 select ZLIB_INFLATE362 tristate363 364config DECOMPRESS_BZIP2365 tristate366 367config DECOMPRESS_LZMA368 tristate369 370config DECOMPRESS_XZ371 select XZ_DEC372 tristate373 374config DECOMPRESS_LZO375 select LZO_DECOMPRESS376 tristate377 378config DECOMPRESS_LZ4379 select LZ4_DECOMPRESS380 tristate381 382config DECOMPRESS_ZSTD383 select ZSTD_DECOMPRESS384 tristate385 386#387# Generic allocator support is selected if needed388#389config GENERIC_ALLOCATOR390 bool391 392#393# reed solomon support is select'ed if needed394#395config REED_SOLOMON396 tristate397 398config REED_SOLOMON_ENC8399 bool400 401config REED_SOLOMON_DEC8402 bool403 404config REED_SOLOMON_ENC16405 bool406 407config REED_SOLOMON_DEC16408 bool409 410#411# BCH support is selected if needed412#413config BCH414 tristate415 select BITREVERSE416 417config BCH_CONST_PARAMS418 bool419 help420 Drivers may select this option to force specific constant421 values for parameters 'm' (Galois field order) and 't'422 (error correction capability). Those specific values must423 be set by declaring default values for symbols BCH_CONST_M424 and BCH_CONST_T.425 Doing so will enable extra compiler optimizations,426 improving encoding and decoding performance up to 2x for427 usual (m,t) values (typically such that m*t < 200).428 When this option is selected, the BCH library supports429 only a single (m,t) configuration. This is mainly useful430 for NAND flash board drivers requiring known, fixed BCH431 parameters.432 433config BCH_CONST_M434 int435 range 5 15436 help437 Constant value for Galois field order 'm'. If 'k' is the438 number of data bits to protect, 'm' should be chosen such439 that (k + m*t) <= 2**m - 1.440 Drivers should declare a default value for this symbol if441 they select option BCH_CONST_PARAMS.442 443config BCH_CONST_T444 int445 help446 Constant value for error correction capability in bits 't'.447 Drivers should declare a default value for this symbol if448 they select option BCH_CONST_PARAMS.449 450#451# Textsearch support is select'ed if needed452#453config TEXTSEARCH454 bool455 456config TEXTSEARCH_KMP457 tristate458 459config TEXTSEARCH_BM460 tristate461 462config TEXTSEARCH_FSM463 tristate464 465config BTREE466 bool467 468config INTERVAL_TREE469 bool470 help471 Simple, embeddable, interval-tree. Can find the start of an472 overlapping range in log(n) time and then iterate over all473 overlapping nodes. The algorithm is implemented as an474 augmented rbtree.475 476 See:477 478 Documentation/core-api/rbtree.rst479 480 for more information.481 482config INTERVAL_TREE_SPAN_ITER483 bool484 depends on INTERVAL_TREE485 486config XARRAY_MULTI487 bool488 help489 Support entries which occupy multiple consecutive indices in the490 XArray.491 492config ASSOCIATIVE_ARRAY493 bool494 help495 Generic associative array. Can be searched and iterated over whilst496 it is being modified. It is also reasonably quick to search and497 modify. The algorithms are non-recursive, and the trees are highly498 capacious.499 500 See:501 502 Documentation/core-api/assoc_array.rst503 504 for more information.505 506config CLOSURES507 bool508 509config HAS_IOMEM510 bool511 depends on !NO_IOMEM512 default y513 514config HAS_IOPORT515 bool516 517config HAS_IOPORT_MAP518 bool519 depends on HAS_IOMEM && !NO_IOPORT_MAP520 default y521 522source "kernel/dma/Kconfig"523 524config SGL_ALLOC525 bool526 default n527 528config IOMMU_HELPER529 bool530 531config CHECK_SIGNATURE532 bool533 534config CPUMASK_OFFSTACK535 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS536 help537 Use dynamic allocation for cpumask_var_t, instead of putting538 them on the stack. This is a bit more expensive, but avoids539 stack overflow.540 541config FORCE_NR_CPUS542 def_bool !SMP543 544config CPU_RMAP545 bool546 depends on SMP547 548config DQL549 bool550 551config GLOB552 bool553# This actually supports modular compilation, but the module overhead554# is ridiculous for the amount of code involved. Until an out-of-tree555# driver asks for it, we'll just link it directly it into the kernel556# when required. Since we're ignoring out-of-tree users, there's also557# no need bother prompting for a manual decision:558# prompt "glob_match() function"559 help560 This option provides a glob_match function for performing561 simple text pattern matching. It originated in the ATA code562 to blacklist particular drive models, but other device drivers563 may need similar functionality.564 565 All drivers in the Linux kernel tree that require this function566 should automatically select this option. Say N unless you567 are compiling an out-of tree driver which tells you that it568 depends on this.569 570config GLOB_SELFTEST571 tristate "glob self-test on init"572 depends on GLOB573 help574 This option enables a simple self-test of the glob_match575 function on startup. It is primarily useful for people576 working on the code to ensure they haven't introduced any577 regressions.578 579 It only adds a little bit of code and slows kernel boot (or580 module load) by a small amount, so you're welcome to play with581 it, but you probably don't need it.582 583#584# Netlink attribute parsing support is select'ed if needed585#586config NLATTR587 bool588 589#590# Generic 64-bit atomic support is selected if needed591#592config GENERIC_ATOMIC64593 bool594 595config LRU_CACHE596 tristate597 598config CLZ_TAB599 bool600 601config IRQ_POLL602 bool "IRQ polling library"603 help604 Helper library to poll interrupt mitigation using polling.605 606config MPILIB607 tristate608 select CLZ_TAB609 help610 Multiprecision maths library from GnuPG.611 It is used to implement RSA digital signature verification,612 which is used by IMA/EVM digital signature extension.613 614config SIGNATURE615 tristate616 depends on KEYS617 select CRYPTO618 select CRYPTO_SHA1619 select MPILIB620 help621 Digital signature verification. Currently only RSA is supported.622 Implementation is done using GnuPG MPI library623 624config DIMLIB625 tristate626 depends on NET627 help628 Dynamic Interrupt Moderation library.629 Implements an algorithm for dynamically changing CQ moderation values630 according to run time performance.631 632#633# libfdt files, only selected if needed.634#635config LIBFDT636 bool637 638config OID_REGISTRY639 tristate640 help641 Enable fast lookup object identifier registry.642 643config UCS2_STRING644 tristate645 646#647# generic vdso648#649source "lib/vdso/Kconfig"650 651source "lib/fonts/Kconfig"652 653config SG_SPLIT654 def_bool n655 help656 Provides a helper to split scatterlists into chunks, each chunk being657 a scatterlist. This should be selected by a driver or an API which658 whishes to split a scatterlist amongst multiple DMA channels.659 660config SG_POOL661 def_bool n662 help663 Provides a helper to allocate chained scatterlists. This should be664 selected by a driver or an API which whishes to allocate chained665 scatterlist.666 667#668# sg chaining option669#670 671config ARCH_NO_SG_CHAIN672 def_bool n673 674config ARCH_HAS_PMEM_API675 bool676 677config MEMREGION678 bool679 680config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION681 bool682 683config ARCH_HAS_MEMREMAP_COMPAT_ALIGN684 bool685 686# use memcpy to implement user copies for nommu architectures687config UACCESS_MEMCPY688 bool689 690config ARCH_HAS_UACCESS_FLUSHCACHE691 bool692 693# arch has a concept of a recoverable synchronous exception due to a694# memory-read error like x86 machine-check or ARM data-abort, and695# implements copy_mc_to_{user,kernel} to abort and report696# 'bytes-transferred' if that exception fires when accessing the source697# buffer.698config ARCH_HAS_COPY_MC699 bool700 701# Temporary. Goes away when all archs are cleaned up702config ARCH_STACKWALK703 bool704 705config STACKDEPOT706 bool707 select STACKTRACE708 help709 Stack depot: stack trace storage that avoids duplication710 711config STACKDEPOT_ALWAYS_INIT712 bool713 select STACKDEPOT714 help715 Always initialize stack depot during early boot716 717config STACKDEPOT_MAX_FRAMES718 int "Maximum number of frames in trace saved in stack depot"719 range 1 256720 default 64721 depends on STACKDEPOT722 723config REF_TRACKER724 bool725 depends on STACKTRACE_SUPPORT726 select STACKDEPOT727 728config SBITMAP729 bool730 731config PARMAN732 tristate "parman" if COMPILE_TEST733 734config OBJAGG735 tristate "objagg" if COMPILE_TEST736 737config LWQ_TEST738 bool "Boot-time test for lwq queuing"739 help740 Run boot-time test of light-weight queuing.741 742endmenu743 744config GENERIC_IOREMAP745 bool746 747config GENERIC_LIB_ASHLDI3748 bool749 750config GENERIC_LIB_ASHRDI3751 bool752 753config GENERIC_LIB_LSHRDI3754 bool755 756config GENERIC_LIB_MULDI3757 bool758 759config GENERIC_LIB_CMPDI2760 bool761 762config GENERIC_LIB_UCMPDI2763 bool764 765config GENERIC_LIB_DEVMEM_IS_ALLOWED766 bool767 768config PLDMFW769 bool770 default n771 772config ASN1_ENCODER773 tristate774 775config POLYNOMIAL776 tristate777 778config FIRMWARE_TABLE779 bool780