1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Library configuration 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 64370aa4aSLai Jiangshanconfig BINARY_PRINTF 74370aa4aSLai Jiangshan def_bool n 84370aa4aSLai Jiangshan 91da177e4SLinus Torvaldsmenu "Library routines" 101da177e4SLinus Torvalds 11f5e70d0fSDavid Woodhouseconfig RAID6_PQ 12f5e70d0fSDavid Woodhouse tristate 13f5e70d0fSDavid Woodhouse 14be85f93aSDaniel Verkampconfig RAID6_PQ_BENCHMARK 15be85f93aSDaniel Verkamp bool "Automatically choose fastest RAID6 PQ functions" 16be85f93aSDaniel Verkamp depends on RAID6_PQ 17be85f93aSDaniel Verkamp default y 18be85f93aSDaniel Verkamp help 19be85f93aSDaniel Verkamp Benchmark all available RAID6 PQ functions on init and choose the 20be85f93aSDaniel Verkamp fastest one. 21be85f93aSDaniel Verkamp 22d2218d4eSMatti Vaittinenconfig LINEAR_RANGES 23d2218d4eSMatti Vaittinen tristate 24d2218d4eSMatti Vaittinen 25554aae35SVladimir Olteanconfig PACKING 26554aae35SVladimir Oltean bool "Generic bitfield packing and unpacking" 271280d4b7SUladzislau Koshchanka select BITREVERSE 28554aae35SVladimir Oltean default n 29554aae35SVladimir Oltean help 30554aae35SVladimir Oltean This option provides the packing() helper function, which permits 31554aae35SVladimir Oltean converting bitfields between a CPU-usable representation and a 32554aae35SVladimir Oltean memory representation that can have any combination of these quirks: 33554aae35SVladimir Oltean - Is little endian (bytes are reversed within a 32-bit group) 34554aae35SVladimir Oltean - The least-significant 32-bit word comes first (within a 64-bit 35554aae35SVladimir Oltean group) 36554aae35SVladimir Oltean - The most significant bit of a byte is at its right (bit 0 of a 37554aae35SVladimir Oltean register description is numerically 2^7). 38554aae35SVladimir Oltean Drivers may use these helpers to match the bit indices as described 39554aae35SVladimir Oltean in the data sheets of the peripherals they are in control of. 40554aae35SVladimir Oltean 41554aae35SVladimir Oltean When in doubt, say N. 42554aae35SVladimir Oltean 43e9502ea6SJacob Kellerconfig PACKING_KUNIT_TEST 44e9502ea6SJacob Keller tristate "KUnit tests for packing library" if !KUNIT_ALL_TESTS 45e9502ea6SJacob Keller depends on PACKING && KUNIT 46e9502ea6SJacob Keller default KUNIT_ALL_TESTS 47e9502ea6SJacob Keller help 48e9502ea6SJacob Keller This builds KUnit tests for the packing library. 49e9502ea6SJacob Keller 50e9502ea6SJacob Keller For more information on KUnit and unit tests in general, 51e9502ea6SJacob Keller please refer to the KUnit documentation in Documentation/dev-tools/kunit/. 52e9502ea6SJacob Keller 53e9502ea6SJacob Keller When in doubt, say N. 54e9502ea6SJacob Keller 55a5cfc1ecSAkinobu Mitaconfig BITREVERSE 56a5cfc1ecSAkinobu Mita tristate 57a5cfc1ecSAkinobu Mita 58556d2f05SYalin Wangconfig HAVE_ARCH_BITREVERSE 59841c0090SChristoph Jaeger bool 60556d2f05SYalin Wang default n 61556d2f05SYalin Wang help 629e522c0dSAndrew Morton This option enables the use of hardware bit-reversal instructions on 639e522c0dSAndrew Morton architectures which support such operations. 64556d2f05SYalin Wang 65e6226997SArnd Bergmannconfig ARCH_HAS_STRNCPY_FROM_USER 662922585bSDavid S. Miller bool 672922585bSDavid S. Miller 68e6226997SArnd Bergmannconfig ARCH_HAS_STRNLEN_USER 69a08c5356SLinus Torvalds bool 70a08c5356SLinus Torvalds 71e6226997SArnd Bergmannconfig GENERIC_STRNCPY_FROM_USER 72e6226997SArnd Bergmann def_bool !ARCH_HAS_STRNCPY_FROM_USER 73e6226997SArnd Bergmann 74e6226997SArnd Bergmannconfig GENERIC_STRNLEN_USER 75e6226997SArnd Bergmann def_bool !ARCH_HAS_STRNLEN_USER 76e6226997SArnd Bergmann 774cd5773aSAndy Shevchenkoconfig GENERIC_NET_UTILS 784cd5773aSAndy Shevchenko bool 794cd5773aSAndy Shevchenko 802c64e9cbSAndy Shevchenkosource "lib/math/Kconfig" 812c64e9cbSAndy Shevchenko 82b923650bSMichael S. Tsirkinconfig NO_GENERIC_PCI_IOPORT_MAP 83b923650bSMichael S. Tsirkin bool 84b923650bSMichael S. Tsirkin 854673ca8eSMichael S. Tsirkinconfig GENERIC_IOMAP 864673ca8eSMichael S. Tsirkin bool 8766eab4dfSMichael S. Tsirkin select GENERIC_PCI_IOMAP 884673ca8eSMichael S. Tsirkin 894ccf4beaSWolfram Sangconfig STMP_DEVICE 904ccf4beaSWolfram Sang bool 914ccf4beaSWolfram Sang 92bc08b449SLinus Torvaldsconfig ARCH_USE_CMPXCHG_LOCKREF 93bc08b449SLinus Torvalds bool 94bc08b449SLinus Torvalds 9572d93104SLinus Torvaldsconfig ARCH_HAS_FAST_MULTIPLIER 9672d93104SLinus Torvalds bool 9772d93104SLinus Torvalds 982ce0d7f9SMark Brownconfig ARCH_USE_SYM_ANNOTATIONS 992ce0d7f9SMark Brown bool 1002ce0d7f9SMark Brown 101031e3601SZhichang Yuanconfig INDIRECT_PIO 102031e3601SZhichang Yuan bool "Access I/O in non-MMIO mode" 103031e3601SZhichang Yuan depends on ARM64 104fcbfe812SNiklas Schnelle depends on HAS_IOPORT 105031e3601SZhichang Yuan help 106031e3601SZhichang Yuan On some platforms where no separate I/O space exists, there are I/O 107031e3601SZhichang Yuan hosts which can not be accessed in MMIO mode. Using the logical PIO 108031e3601SZhichang Yuan mechanism, the host-local I/O resource can be mapped into system 109031e3601SZhichang Yuan logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the 110031e3601SZhichang Yuan system can access the I/O devices with the mapped-logic PIO through 111031e3601SZhichang Yuan I/O accessors. 112031e3601SZhichang Yuan 113031e3601SZhichang Yuan This way has relatively little I/O performance cost. Please make 114031e3601SZhichang Yuan sure your devices really need this configure item enabled. 115031e3601SZhichang Yuan 116031e3601SZhichang Yuan When in doubt, say N. 117031e3601SZhichang Yuan 118ca2e3342SJohannes Bergconfig INDIRECT_IOMEM 119ca2e3342SJohannes Berg bool 120ca2e3342SJohannes Berg help 121ca2e3342SJohannes Berg This is selected by other options/architectures to provide the 122ca2e3342SJohannes Berg emulated iomem accessors. 123ca2e3342SJohannes Berg 124ca2e3342SJohannes Bergconfig INDIRECT_IOMEM_FALLBACK 125ca2e3342SJohannes Berg bool 126ca2e3342SJohannes Berg depends on INDIRECT_IOMEM 127ca2e3342SJohannes Berg help 128ca2e3342SJohannes Berg If INDIRECT_IOMEM is selected, this enables falling back to plain 129ca2e3342SJohannes Berg mmio accesses when the IO memory address is not a registered 130ca2e3342SJohannes Berg emulated region. 131ca2e3342SJohannes Berg 132d593d64fSPrasad Sodagudiconfig TRACE_MMIO_ACCESS 133d593d64fSPrasad Sodagudi bool "Register read/write tracing" 134d593d64fSPrasad Sodagudi depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS 135d593d64fSPrasad Sodagudi help 136d593d64fSPrasad Sodagudi Create tracepoints for MMIO read/write operations. These trace events 137d593d64fSPrasad Sodagudi can be used for logging all MMIO read/write operations. 138d593d64fSPrasad Sodagudi 139e56e1898SJustin M. Forbessource "lib/crypto/Kconfig" 140e56e1898SJustin M. Forbes 1411da177e4SLinus Torvaldsconfig CRC_CCITT 1421da177e4SLinus Torvalds tristate "CRC-CCITT functions" 1431da177e4SLinus Torvalds help 1441da177e4SLinus Torvalds This option is provided for the case where no in-kernel-tree 1451da177e4SLinus Torvalds modules require CRC-CCITT functions, but a module built outside 1461da177e4SLinus Torvalds the kernel tree does. Such modules that use library CRC-CCITT 1471da177e4SLinus Torvalds functions require M here. 1481da177e4SLinus Torvalds 1497657ec1fSEvgeniy Polyakovconfig CRC16 1507657ec1fSEvgeniy Polyakov tristate "CRC16 functions" 1517657ec1fSEvgeniy Polyakov help 1527657ec1fSEvgeniy Polyakov This option is provided for the case where no in-kernel-tree 1537657ec1fSEvgeniy Polyakov modules require CRC16 functions, but a module built outside 1547657ec1fSEvgeniy Polyakov the kernel tree does. Such modules that use library CRC16 1557657ec1fSEvgeniy Polyakov functions require M here. 1567657ec1fSEvgeniy Polyakov 157f11f594eSMartin K. Petersenconfig CRC_T10DIF 158f11f594eSMartin K. Petersen tristate "CRC calculation for the T10 Data Integrity Field" 159f11f594eSMartin K. Petersen help 160f11f594eSMartin K. Petersen This option is only needed if a module that's not in the 161f11f594eSMartin K. Petersen kernel tree needs to calculate CRC checks for use with the 162f11f594eSMartin K. Petersen SCSI data integrity subsystem. 163f11f594eSMartin K. Petersen 1640961c3bcSEric Biggersconfig ARCH_HAS_CRC_T10DIF 1650961c3bcSEric Biggers bool 1660961c3bcSEric Biggers 1670961c3bcSEric Biggersconfig CRC_T10DIF_ARCH 1680961c3bcSEric Biggers tristate 169b0430f39SEric Biggers default CRC_T10DIF if ARCH_HAS_CRC_T10DIF && CRC_OPTIMIZATIONS 1700961c3bcSEric Biggers 1713e7cbae7SIvo van Doornconfig CRC_ITU_T 1723e7cbae7SIvo van Doorn tristate "CRC ITU-T V.41 functions" 1733e7cbae7SIvo van Doorn help 1743e7cbae7SIvo van Doorn This option is provided for the case where no in-kernel-tree 1753e7cbae7SIvo van Doorn modules require CRC ITU-T V.41 functions, but a module built outside 1763e7cbae7SIvo van Doorn the kernel tree does. Such modules that use library CRC ITU-T V.41 1773e7cbae7SIvo van Doorn functions require M here. 1783e7cbae7SIvo van Doorn 1791da177e4SLinus Torvaldsconfig CRC32 18046c5801eSDarrick J. Wong tristate "CRC32/CRC32c functions" 1811da177e4SLinus Torvalds default y 182906d66dfSAkinobu Mita select BITREVERSE 1831da177e4SLinus Torvalds help 1841da177e4SLinus Torvalds This option is provided for the case where no in-kernel-tree 18546c5801eSDarrick J. Wong modules require CRC32/CRC32c functions, but a module built outside 18646c5801eSDarrick J. Wong the kernel tree does. Such modules that use library CRC32/CRC32c 18746c5801eSDarrick J. Wong functions require M here. 1881da177e4SLinus Torvalds 189d36cebe0SEric Biggersconfig ARCH_HAS_CRC32 190d36cebe0SEric Biggers bool 191d36cebe0SEric Biggers 192d36cebe0SEric Biggersconfig CRC32_ARCH 193d36cebe0SEric Biggers tristate 194b0430f39SEric Biggers default CRC32 if ARCH_HAS_CRC32 && CRC_OPTIMIZATIONS 195d36cebe0SEric Biggers 196feba04fdSColy Liconfig CRC64 197feba04fdSColy Li tristate "CRC64 functions" 198feba04fdSColy Li help 199feba04fdSColy Li This option is provided for the case where no in-kernel-tree 200feba04fdSColy Li modules require CRC64 functions, but a module built outside 201feba04fdSColy Li the kernel tree does. Such modules that use library CRC64 202feba04fdSColy Li functions require M here. 203feba04fdSColy Li 204*067bc871SEric Biggersconfig ARCH_HAS_CRC64 205*067bc871SEric Biggers bool 206*067bc871SEric Biggers 207*067bc871SEric Biggersconfig CRC64_ARCH 208*067bc871SEric Biggers tristate 209*067bc871SEric Biggers default CRC64 if ARCH_HAS_CRC64 && CRC_OPTIMIZATIONS 210*067bc871SEric Biggers 2110cbaa448SJeremy Kerrconfig CRC4 2120cbaa448SJeremy Kerr tristate "CRC4 functions" 2130cbaa448SJeremy Kerr help 2140cbaa448SJeremy Kerr This option is provided for the case where no in-kernel-tree 2150cbaa448SJeremy Kerr modules require CRC4 functions, but a module built outside 2160cbaa448SJeremy Kerr the kernel tree does. Such modules that use library CRC4 2170cbaa448SJeremy Kerr functions require M here. 2180cbaa448SJeremy Kerr 219ad241528SJan Nikitenkoconfig CRC7 220ad241528SJan Nikitenko tristate "CRC7 functions" 221ad241528SJan Nikitenko help 222ad241528SJan Nikitenko This option is provided for the case where no in-kernel-tree 223ad241528SJan Nikitenko modules require CRC7 functions, but a module built outside 224ad241528SJan Nikitenko the kernel tree does. Such modules that use library CRC7 225ad241528SJan Nikitenko functions require M here. 226ad241528SJan Nikitenko 2271da177e4SLinus Torvaldsconfig LIBCRC32C 2281da177e4SLinus Torvalds tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" 22938a9a512SEric Biggers select CRC32 2301da177e4SLinus Torvalds help 23138a9a512SEric Biggers This option just selects CRC32 and is provided for compatibility 23238a9a512SEric Biggers purposes until the users are updated to select CRC32 directly. 2331da177e4SLinus Torvalds 2347150962dSArend van Sprielconfig CRC8 2357150962dSArend van Spriel tristate "CRC8 function" 2367150962dSArend van Spriel help 2377150962dSArend van Spriel This option provides CRC8 function. Drivers may select this 2387150962dSArend van Spriel when they need to do cyclic redundancy check according CRC8 2397150962dSArend van Spriel algorithm. Module will be called crc8. 2407150962dSArend van Spriel 241b0430f39SEric Biggersconfig CRC_OPTIMIZATIONS 242b0430f39SEric Biggers bool "Enable optimized CRC implementations" if EXPERT 243b0430f39SEric Biggers default y 244b0430f39SEric Biggers help 245b0430f39SEric Biggers Disabling this option reduces code size slightly by disabling the 246b0430f39SEric Biggers architecture-optimized implementations of any CRC variants that are 247b0430f39SEric Biggers enabled. CRC checksumming performance may get much slower. 248b0430f39SEric Biggers 249b0430f39SEric Biggers Keep this enabled unless you're really trying to minimize the size of 250b0430f39SEric Biggers the kernel. 251b0430f39SEric Biggers 2525d240522SNick Terrellconfig XXHASH 2535d240522SNick Terrell tristate 2545d240522SNick Terrell 255e65e1fc2SAl Viroconfig AUDIT_GENERIC 256e65e1fc2SAl Viro bool 257e65e1fc2SAl Viro depends on AUDIT && !AUDIT_ARCH 258e65e1fc2SAl Viro default y 259e65e1fc2SAl Viro 2604b588411SAKASHI Takahiroconfig AUDIT_ARCH_COMPAT_GENERIC 2614b588411SAKASHI Takahiro bool 2624b588411SAKASHI Takahiro default n 2634b588411SAKASHI Takahiro 2644b588411SAKASHI Takahiroconfig AUDIT_COMPAT_GENERIC 2654b588411SAKASHI Takahiro bool 2664b588411SAKASHI Takahiro depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT 2674b588411SAKASHI Takahiro default y 2684b588411SAKASHI Takahiro 269a6a9c0f1SDaniel Borkmannconfig RANDOM32_SELFTEST 270a6a9c0f1SDaniel Borkmann bool "PRNG perform self test on init" 271a6a9c0f1SDaniel Borkmann help 272a6a9c0f1SDaniel Borkmann This option enables the 32 bit PRNG library functions to perform a 273a6a9c0f1SDaniel Borkmann self test on initialization. 274a6a9c0f1SDaniel Borkmann 2751da177e4SLinus Torvalds# 2761da177e4SLinus Torvalds# compression support is select'ed if needed 2771da177e4SLinus Torvalds# 2782da572c9SDan Streetmanconfig 842_COMPRESS 2795b571677SArnd Bergmann select CRC32 2802da572c9SDan Streetman tristate 2812da572c9SDan Streetman 2822da572c9SDan Streetmanconfig 842_DECOMPRESS 2835b571677SArnd Bergmann select CRC32 2842da572c9SDan Streetman tristate 2852da572c9SDan Streetman 2861da177e4SLinus Torvaldsconfig ZLIB_INFLATE 2871da177e4SLinus Torvalds tristate 2881da177e4SLinus Torvalds 2891da177e4SLinus Torvaldsconfig ZLIB_DEFLATE 2901da177e4SLinus Torvalds tristate 2911fd4e5c3SAndrew Morton select BITREVERSE 2921da177e4SLinus Torvalds 293aa5b395bSMikhail Zaslonkoconfig ZLIB_DFLTCC 294aa5b395bSMikhail Zaslonko def_bool y 295aa5b395bSMikhail Zaslonko depends on S390 296aa5b395bSMikhail Zaslonko prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" 297aa5b395bSMikhail Zaslonko help 298aa5b395bSMikhail Zaslonko Enable s390x hardware support for zlib in the kernel. 299aa5b395bSMikhail Zaslonko 30064c70b1cSRichard Purdieconfig LZO_COMPRESS 30164c70b1cSRichard Purdie tristate 30264c70b1cSRichard Purdie 30364c70b1cSRichard Purdieconfig LZO_DECOMPRESS 30464c70b1cSRichard Purdie tristate 30564c70b1cSRichard Purdie 306c72ac7a1SChanho Minconfig LZ4_COMPRESS 307c72ac7a1SChanho Min tristate 308c72ac7a1SChanho Min 309c72ac7a1SChanho Minconfig LZ4HC_COMPRESS 310c72ac7a1SChanho Min tristate 311c72ac7a1SChanho Min 312e76e1fdfSKyungsik Leeconfig LZ4_DECOMPRESS 313e76e1fdfSKyungsik Lee tristate 314e76e1fdfSKyungsik Lee 315637a642fSAlexey Kardashevskiyconfig ZSTD_COMMON 31673f3d1b4SNick Terrell select XXHASH 31773f3d1b4SNick Terrell tristate 31873f3d1b4SNick Terrell 319637a642fSAlexey Kardashevskiyconfig ZSTD_COMPRESS 320637a642fSAlexey Kardashevskiy select ZSTD_COMMON 321637a642fSAlexey Kardashevskiy tristate 322637a642fSAlexey Kardashevskiy 32373f3d1b4SNick Terrellconfig ZSTD_DECOMPRESS 324637a642fSAlexey Kardashevskiy select ZSTD_COMMON 32573f3d1b4SNick Terrell tristate 32673f3d1b4SNick Terrell 32724fa0402SLasse Collinsource "lib/xz/Kconfig" 32824fa0402SLasse Collin 3291da177e4SLinus Torvalds# 330c8531ab3SH. Peter Anvin# These all provide a common interface (hence the apparent duplication with 331c8531ab3SH. Peter Anvin# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) 332c8531ab3SH. Peter Anvin# 333c8531ab3SH. Peter Anvinconfig DECOMPRESS_GZIP 3347856a16eSH. Peter Anvin select ZLIB_INFLATE 335c8531ab3SH. Peter Anvin tristate 336c8531ab3SH. Peter Anvin 337c8531ab3SH. Peter Anvinconfig DECOMPRESS_BZIP2 338c8531ab3SH. Peter Anvin tristate 339c8531ab3SH. Peter Anvin 340c8531ab3SH. Peter Anvinconfig DECOMPRESS_LZMA 341c8531ab3SH. Peter Anvin tristate 342c8531ab3SH. Peter Anvin 3433ebe1243SLasse Collinconfig DECOMPRESS_XZ 3443ebe1243SLasse Collin select XZ_DEC 3453ebe1243SLasse Collin tristate 3463ebe1243SLasse Collin 347cacb246fSAlbin Tonnerreconfig DECOMPRESS_LZO 348cacb246fSAlbin Tonnerre select LZO_DECOMPRESS 349cacb246fSAlbin Tonnerre tristate 350cacb246fSAlbin Tonnerre 351e76e1fdfSKyungsik Leeconfig DECOMPRESS_LZ4 352e76e1fdfSKyungsik Lee select LZ4_DECOMPRESS 353e76e1fdfSKyungsik Lee tristate 354e76e1fdfSKyungsik Lee 3554963bb2bSNick Terrellconfig DECOMPRESS_ZSTD 3564963bb2bSNick Terrell select ZSTD_DECOMPRESS 3574963bb2bSNick Terrell tristate 3584963bb2bSNick Terrell 359c8531ab3SH. Peter Anvin# 360f14f75b8SJes Sorensen# Generic allocator support is selected if needed 361f14f75b8SJes Sorensen# 362f14f75b8SJes Sorensenconfig GENERIC_ALLOCATOR 3636341e62bSChristoph Jaeger bool 364f14f75b8SJes Sorensen 365f14f75b8SJes Sorensen# 3661da177e4SLinus Torvalds# reed solomon support is select'ed if needed 3671da177e4SLinus Torvalds# 3681da177e4SLinus Torvaldsconfig REED_SOLOMON 3691da177e4SLinus Torvalds tristate 3701da177e4SLinus Torvalds 3711da177e4SLinus Torvaldsconfig REED_SOLOMON_ENC8 3726341e62bSChristoph Jaeger bool 3731da177e4SLinus Torvalds 3741da177e4SLinus Torvaldsconfig REED_SOLOMON_DEC8 3756341e62bSChristoph Jaeger bool 3761da177e4SLinus Torvalds 3771da177e4SLinus Torvaldsconfig REED_SOLOMON_ENC16 3786341e62bSChristoph Jaeger bool 3791da177e4SLinus Torvalds 3801da177e4SLinus Torvaldsconfig REED_SOLOMON_DEC16 3816341e62bSChristoph Jaeger bool 3821da177e4SLinus Torvalds 383f7704347SDavid S. Miller# 384437aa565SIvan Djelic# BCH support is selected if needed 385437aa565SIvan Djelic# 386437aa565SIvan Djelicconfig BCH 387437aa565SIvan Djelic tristate 38802d7f74aSJohn Sanpe select BITREVERSE 389437aa565SIvan Djelic 390437aa565SIvan Djelicconfig BCH_CONST_PARAMS 3916341e62bSChristoph Jaeger bool 392437aa565SIvan Djelic help 393437aa565SIvan Djelic Drivers may select this option to force specific constant 394437aa565SIvan Djelic values for parameters 'm' (Galois field order) and 't' 395437aa565SIvan Djelic (error correction capability). Those specific values must 396437aa565SIvan Djelic be set by declaring default values for symbols BCH_CONST_M 397437aa565SIvan Djelic and BCH_CONST_T. 398437aa565SIvan Djelic Doing so will enable extra compiler optimizations, 399437aa565SIvan Djelic improving encoding and decoding performance up to 2x for 400437aa565SIvan Djelic usual (m,t) values (typically such that m*t < 200). 401437aa565SIvan Djelic When this option is selected, the BCH library supports 402437aa565SIvan Djelic only a single (m,t) configuration. This is mainly useful 403437aa565SIvan Djelic for NAND flash board drivers requiring known, fixed BCH 404437aa565SIvan Djelic parameters. 405437aa565SIvan Djelic 406437aa565SIvan Djelicconfig BCH_CONST_M 407437aa565SIvan Djelic int 408437aa565SIvan Djelic range 5 15 409437aa565SIvan Djelic help 410437aa565SIvan Djelic Constant value for Galois field order 'm'. If 'k' is the 411437aa565SIvan Djelic number of data bits to protect, 'm' should be chosen such 412437aa565SIvan Djelic that (k + m*t) <= 2**m - 1. 413437aa565SIvan Djelic Drivers should declare a default value for this symbol if 414437aa565SIvan Djelic they select option BCH_CONST_PARAMS. 415437aa565SIvan Djelic 416437aa565SIvan Djelicconfig BCH_CONST_T 417437aa565SIvan Djelic int 418437aa565SIvan Djelic help 419437aa565SIvan Djelic Constant value for error correction capability in bits 't'. 420437aa565SIvan Djelic Drivers should declare a default value for this symbol if 421437aa565SIvan Djelic they select option BCH_CONST_PARAMS. 422437aa565SIvan Djelic 423437aa565SIvan Djelic# 424f7704347SDavid S. Miller# Textsearch support is select'ed if needed 425f7704347SDavid S. Miller# 4262de4ff7bSThomas Grafconfig TEXTSEARCH 4276341e62bSChristoph Jaeger bool 4281da177e4SLinus Torvalds 429df3fb93aSThomas Grafconfig TEXTSEARCH_KMP 430f7704347SDavid S. Miller tristate 431df3fb93aSThomas Graf 4328082e4edSPablo Neira Ayusoconfig TEXTSEARCH_BM 43329cb9f9cSDavid S. Miller tristate 4348082e4edSPablo Neira Ayuso 4356408f79cSThomas Grafconfig TEXTSEARCH_FSM 436f7704347SDavid S. Miller tristate 4376408f79cSThomas Graf 4385db53f3eSJoern Engelconfig BTREE 4396341e62bSChristoph Jaeger bool 4405db53f3eSJoern Engel 441a88cc108SChris Wilsonconfig INTERVAL_TREE 4426341e62bSChristoph Jaeger bool 443a88cc108SChris Wilson help 444a88cc108SChris Wilson Simple, embeddable, interval-tree. Can find the start of an 445a88cc108SChris Wilson overlapping range in log(n) time and then iterate over all 446a88cc108SChris Wilson overlapping nodes. The algorithm is implemented as an 447a88cc108SChris Wilson augmented rbtree. 448a88cc108SChris Wilson 449a88cc108SChris Wilson See: 450a88cc108SChris Wilson 45114bbe3e3SMatthew Wilcox (Oracle) Documentation/core-api/rbtree.rst 452a88cc108SChris Wilson 453a88cc108SChris Wilson for more information. 454a88cc108SChris Wilson 4555fe93786SJason Gunthorpeconfig INTERVAL_TREE_SPAN_ITER 4565fe93786SJason Gunthorpe bool 4575fe93786SJason Gunthorpe depends on INTERVAL_TREE 4585fe93786SJason Gunthorpe 45902c02bf1SMatthew Wilcoxconfig XARRAY_MULTI 46057578c2eSMatthew Wilcox bool 46102c02bf1SMatthew Wilcox help 46202c02bf1SMatthew Wilcox Support entries which occupy multiple consecutive indices in the 46302c02bf1SMatthew Wilcox XArray. 46457578c2eSMatthew Wilcox 4653cb98950SDavid Howellsconfig ASSOCIATIVE_ARRAY 4663cb98950SDavid Howells bool 4673cb98950SDavid Howells help 4683cb98950SDavid Howells Generic associative array. Can be searched and iterated over whilst 4693cb98950SDavid Howells it is being modified. It is also reasonably quick to search and 4703cb98950SDavid Howells modify. The algorithms are non-recursive, and the trees are highly 4713cb98950SDavid Howells capacious. 4723cb98950SDavid Howells 4733cb98950SDavid Howells See: 4743cb98950SDavid Howells 4755fb94e9cSMauro Carvalho Chehab Documentation/core-api/assoc_array.rst 4763cb98950SDavid Howells 4773cb98950SDavid Howells for more information. 4783cb98950SDavid Howells 4798c8d2d96SKent Overstreetconfig CLOSURES 4808c8d2d96SKent Overstreet bool 4818c8d2d96SKent Overstreet 4825ea81769SAl Viroconfig HAS_IOMEM 4836341e62bSChristoph Jaeger bool 4845ea81769SAl Viro depends on !NO_IOMEM 4855ea81769SAl Viro default y 4865ea81769SAl Viro 487fcbfe812SNiklas Schnelleconfig HAS_IOPORT 488fcbfe812SNiklas Schnelle bool 489fcbfe812SNiklas Schnelle 490ce816fa8SUwe Kleine-Königconfig HAS_IOPORT_MAP 4916341e62bSChristoph Jaeger bool 492ce816fa8SUwe Kleine-König depends on HAS_IOMEM && !NO_IOPORT_MAP 493ee36c2bfSAl Viro default y 494ee36c2bfSAl Viro 495cf65a0f6SChristoph Hellwigsource "kernel/dma/Kconfig" 496411f0f3eSHeiko Carstens 497e80a0af4SBart Van Asscheconfig SGL_ALLOC 498e80a0af4SBart Van Assche bool 499e80a0af4SBart Van Assche default n 500e80a0af4SBart Van Assche 501a4ce5a48SChristoph Hellwigconfig IOMMU_HELPER 502a4ce5a48SChristoph Hellwig bool 503a4ce5a48SChristoph Hellwig 504928923c7SGeert Uytterhoevenconfig CHECK_SIGNATURE 505928923c7SGeert Uytterhoeven bool 506928923c7SGeert Uytterhoeven 507aab46da0SRusty Russellconfig CPUMASK_OFFSTACK 508aab46da0SRusty Russell bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS 509aab46da0SRusty Russell help 510aab46da0SRusty Russell Use dynamic allocation for cpumask_var_t, instead of putting 511aab46da0SRusty Russell them on the stack. This is a bit more expensive, but avoids 512aab46da0SRusty Russell stack overflow. 513aab46da0SRusty Russell 5146f9c07beSYury Norovconfig FORCE_NR_CPUS 5155d272dd1SLinus Torvalds def_bool !SMP 5166f9c07beSYury Norov 517c39649c3SBen Hutchingsconfig CPU_RMAP 518c39649c3SBen Hutchings bool 519c39649c3SBen Hutchings depends on SMP 520c39649c3SBen Hutchings 52175957ba3STom Herbertconfig DQL 52275957ba3STom Herbert bool 52375957ba3STom Herbert 524b0125085SGeorge Spelvinconfig GLOB 525b0125085SGeorge Spelvin bool 526b0125085SGeorge Spelvin# This actually supports modular compilation, but the module overhead 527b0125085SGeorge Spelvin# is ridiculous for the amount of code involved. Until an out-of-tree 528b0125085SGeorge Spelvin# driver asks for it, we'll just link it directly it into the kernel 529b0125085SGeorge Spelvin# when required. Since we're ignoring out-of-tree users, there's also 530b0125085SGeorge Spelvin# no need bother prompting for a manual decision: 531b0125085SGeorge Spelvin# prompt "glob_match() function" 532b0125085SGeorge Spelvin help 533b0125085SGeorge Spelvin This option provides a glob_match function for performing 534b0125085SGeorge Spelvin simple text pattern matching. It originated in the ATA code 535b0125085SGeorge Spelvin to blacklist particular drive models, but other device drivers 536b0125085SGeorge Spelvin may need similar functionality. 537b0125085SGeorge Spelvin 538b0125085SGeorge Spelvin All drivers in the Linux kernel tree that require this function 539b0125085SGeorge Spelvin should automatically select this option. Say N unless you 540b0125085SGeorge Spelvin are compiling an out-of tree driver which tells you that it 541b0125085SGeorge Spelvin depends on this. 542b0125085SGeorge Spelvin 5435f9be824SGeorge Spelvinconfig GLOB_SELFTEST 544ba95b045SGeert Uytterhoeven tristate "glob self-test on init" 5455f9be824SGeorge Spelvin depends on GLOB 5465f9be824SGeorge Spelvin help 5475f9be824SGeorge Spelvin This option enables a simple self-test of the glob_match 5485f9be824SGeorge Spelvin function on startup. It is primarily useful for people 5495f9be824SGeorge Spelvin working on the code to ensure they haven't introduced any 5505f9be824SGeorge Spelvin regressions. 5515f9be824SGeorge Spelvin 5525f9be824SGeorge Spelvin It only adds a little bit of code and slows kernel boot (or 5535f9be824SGeorge Spelvin module load) by a small amount, so you're welcome to play with 5545f9be824SGeorge Spelvin it, but you probably don't need it. 5555f9be824SGeorge Spelvin 556e9cc8bddSGeert Uytterhoeven# 557e9cc8bddSGeert Uytterhoeven# Netlink attribute parsing support is select'ed if needed 558e9cc8bddSGeert Uytterhoeven# 559e9cc8bddSGeert Uytterhoevenconfig NLATTR 560e9cc8bddSGeert Uytterhoeven bool 561e9cc8bddSGeert Uytterhoeven 56209d4e0edSPaul Mackerras# 56309d4e0edSPaul Mackerras# Generic 64-bit atomic support is selected if needed 56409d4e0edSPaul Mackerras# 56509d4e0edSPaul Mackerrasconfig GENERIC_ATOMIC64 56609d4e0edSPaul Mackerras bool 56709d4e0edSPaul Mackerras 568b411b363SPhilipp Reisnerconfig LRU_CACHE 569b411b363SPhilipp Reisner tristate 570b411b363SPhilipp Reisner 571c6df4b17SDavid Millerconfig CLZ_TAB 572c6df4b17SDavid Miller bool 573c6df4b17SDavid Miller 574511cbce2SChristoph Hellwigconfig IRQ_POLL 575511cbce2SChristoph Hellwig bool "IRQ polling library" 576511cbce2SChristoph Hellwig help 577511cbce2SChristoph Hellwig Helper library to poll interrupt mitigation using polling. 578511cbce2SChristoph Hellwig 579d9c46b18SDmitry Kasatkinconfig MPILIB 5802e5f094bSDmitry Kasatkin tristate 581c6df4b17SDavid Miller select CLZ_TAB 582d9c46b18SDmitry Kasatkin help 583d9c46b18SDmitry Kasatkin Multiprecision maths library from GnuPG. 584d9c46b18SDmitry Kasatkin It is used to implement RSA digital signature verification, 585d9c46b18SDmitry Kasatkin which is used by IMA/EVM digital signature extension. 586d9c46b18SDmitry Kasatkin 5875e8898e9SDmitry Kasatkinconfig SIGNATURE 5882e5f094bSDmitry Kasatkin tristate 5890d1f64f6SDmitry Kasatkin depends on KEYS 5900d1f64f6SDmitry Kasatkin select CRYPTO 591be440ec7SDmitry Kasatkin select CRYPTO_SHA1 592051dbb91SDmitry Kasatkin select MPILIB 593051dbb91SDmitry Kasatkin help 594051dbb91SDmitry Kasatkin Digital signature verification. Currently only RSA is supported. 595051dbb91SDmitry Kasatkin Implementation is done using GnuPG MPI library 596051dbb91SDmitry Kasatkin 5974f75da36STal Gilboaconfig DIMLIB 5980d5044b4SFlorian Fainelli tristate 599b65e697aSHeng Qi depends on NET 6004f75da36STal Gilboa help 6014f75da36STal Gilboa Dynamic Interrupt Moderation library. 602991ad2b2SRandy Dunlap Implements an algorithm for dynamically changing CQ moderation values 6034f75da36STal Gilboa according to run time performance. 6044f75da36STal Gilboa 605ab253839SDavid Daney# 606ab253839SDavid Daney# libfdt files, only selected if needed. 607ab253839SDavid Daney# 608ab253839SDavid Daneyconfig LIBFDT 609ab253839SDavid Daney bool 610ab253839SDavid Daney 611a77ad6eaSDavid Howellsconfig OID_REGISTRY 612a77ad6eaSDavid Howells tristate 613a77ad6eaSDavid Howells help 614a77ad6eaSDavid Howells Enable fast lookup object identifier registry. 615a77ad6eaSDavid Howells 6160635eb8aSMatthew Garrettconfig UCS2_STRING 6170635eb8aSMatthew Garrett tristate 6180635eb8aSMatthew Garrett 61900b26474SVincenzo Frascino# 62000b26474SVincenzo Frascino# generic vdso 62100b26474SVincenzo Frascino# 62200b26474SVincenzo Frascinosource "lib/vdso/Kconfig" 62300b26474SVincenzo Frascino 624ee89bd6bSGeert Uytterhoevensource "lib/fonts/Kconfig" 625ee89bd6bSGeert Uytterhoeven 626f8bcbe62SRobert Jarzmikconfig SG_SPLIT 627f8bcbe62SRobert Jarzmik def_bool n 628f8bcbe62SRobert Jarzmik help 6297f7e92f7SGeert Uytterhoeven Provides a helper to split scatterlists into chunks, each chunk being 6307f7e92f7SGeert Uytterhoeven a scatterlist. This should be selected by a driver or an API which 6317f7e92f7SGeert Uytterhoeven whishes to split a scatterlist amongst multiple DMA channels. 632f8bcbe62SRobert Jarzmik 6339b1d6c89SMing Linconfig SG_POOL 6349b1d6c89SMing Lin def_bool n 6359b1d6c89SMing Lin help 6369b1d6c89SMing Lin Provides a helper to allocate chained scatterlists. This should be 6379b1d6c89SMing Lin selected by a driver or an API which whishes to allocate chained 6389b1d6c89SMing Lin scatterlist. 6399b1d6c89SMing Lin 640308c09f1SLaura Abbott# 641308c09f1SLaura Abbott# sg chaining option 642308c09f1SLaura Abbott# 643308c09f1SLaura Abbott 6447c703e54SChristoph Hellwigconfig ARCH_NO_SG_CHAIN 645308c09f1SLaura Abbott def_bool n 646308c09f1SLaura Abbott 64761031952SRoss Zwislerconfig ARCH_HAS_PMEM_API 64861031952SRoss Zwisler bool 64961031952SRoss Zwisler 65033dd7075SDan Williamsconfig MEMREGION 65133dd7075SDan Williams bool 65233dd7075SDan Williams 6531156b441SDavidlohr Buesoconfig ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION 6541156b441SDavidlohr Bueso bool 6551156b441SDavidlohr Bueso 6569ffc1d19SDan Williamsconfig ARCH_HAS_MEMREMAP_COMPAT_ALIGN 6579ffc1d19SDan Williams bool 6589ffc1d19SDan Williams 659bd79f947SChristoph Hellwig# use memcpy to implement user copies for nommu architectures 660bd79f947SChristoph Hellwigconfig UACCESS_MEMCPY 661bd79f947SChristoph Hellwig bool 662bd79f947SChristoph Hellwig 6630aed55afSDan Williamsconfig ARCH_HAS_UACCESS_FLUSHCACHE 6640aed55afSDan Williams bool 6650aed55afSDan Williams 666ec6347bbSDan Williams# arch has a concept of a recoverable synchronous exception due to a 667ec6347bbSDan Williams# memory-read error like x86 machine-check or ARM data-abort, and 668ec6347bbSDan Williams# implements copy_mc_to_{user,kernel} to abort and report 669ec6347bbSDan Williams# 'bytes-transferred' if that exception fires when accessing the source 670ec6347bbSDan Williams# buffer. 671ec6347bbSDan Williamsconfig ARCH_HAS_COPY_MC 672522239b4SDan Williams bool 673522239b4SDan Williams 674214d8ca6SThomas Gleixner# Temporary. Goes away when all archs are cleaned up 675214d8ca6SThomas Gleixnerconfig ARCH_STACKWALK 676214d8ca6SThomas Gleixner bool 677214d8ca6SThomas Gleixner 678cd11016eSAlexander Potapenkoconfig STACKDEPOT 679cd11016eSAlexander Potapenko bool 680cd11016eSAlexander Potapenko select STACKTRACE 681fc60e0caSAndrey Konovalov help 682fc60e0caSAndrey Konovalov Stack depot: stack trace storage that avoids duplication 683cd11016eSAlexander Potapenko 6842dba5eb1SVlastimil Babkaconfig STACKDEPOT_ALWAYS_INIT 6852dba5eb1SVlastimil Babka bool 6862dba5eb1SVlastimil Babka select STACKDEPOT 687fc60e0caSAndrey Konovalov help 688fc60e0caSAndrey Konovalov Always initialize stack depot during early boot 689fc60e0caSAndrey Konovalov 690fc60e0caSAndrey Konovalovconfig STACKDEPOT_MAX_FRAMES 691fc60e0caSAndrey Konovalov int "Maximum number of frames in trace saved in stack depot" 692fc60e0caSAndrey Konovalov range 1 256 693fc60e0caSAndrey Konovalov default 64 694fc60e0caSAndrey Konovalov depends on STACKDEPOT 6952dba5eb1SVlastimil Babka 6964e66934eSEric Dumazetconfig REF_TRACKER 6974e66934eSEric Dumazet bool 6984e66934eSEric Dumazet depends on STACKTRACE_SUPPORT 6994e66934eSEric Dumazet select STACKDEPOT 7004e66934eSEric Dumazet 70188459642SOmar Sandovalconfig SBITMAP 70288459642SOmar Sandoval bool 70388459642SOmar Sandoval 70444091d29SJiri Pirkoconfig PARMAN 7059d25af69SGeert Uytterhoeven tristate "parman" if COMPILE_TEST 70644091d29SJiri Pirko 7073dfdecc6SRandy Dunlapconfig OBJAGG 7083dfdecc6SRandy Dunlap tristate "objagg" if COMPILE_TEST 7093dfdecc6SRandy Dunlap 710de9e82c3SNeilBrownconfig LWQ_TEST 711de9e82c3SNeilBrown bool "Boot-time test for lwq queuing" 712de9e82c3SNeilBrown help 713de9e82c3SNeilBrown Run boot-time test of light-weight queuing. 714de9e82c3SNeilBrown 7152de4ff7bSThomas Grafendmenu 716b35cd988SPalmer Dabbelt 71780b0ca98SChristoph Hellwigconfig GENERIC_IOREMAP 71880b0ca98SChristoph Hellwig bool 71980b0ca98SChristoph Hellwig 720e3d59805SMatt Redfearnconfig GENERIC_LIB_ASHLDI3 721b35cd988SPalmer Dabbelt bool 722b35cd988SPalmer Dabbelt 723e3d59805SMatt Redfearnconfig GENERIC_LIB_ASHRDI3 724b35cd988SPalmer Dabbelt bool 725b35cd988SPalmer Dabbelt 726e3d59805SMatt Redfearnconfig GENERIC_LIB_LSHRDI3 727b35cd988SPalmer Dabbelt bool 728b35cd988SPalmer Dabbelt 729e3d59805SMatt Redfearnconfig GENERIC_LIB_MULDI3 730b35cd988SPalmer Dabbelt bool 731b35cd988SPalmer Dabbelt 732e3d59805SMatt Redfearnconfig GENERIC_LIB_CMPDI2 733b35cd988SPalmer Dabbelt bool 734b35cd988SPalmer Dabbelt 735e3d59805SMatt Redfearnconfig GENERIC_LIB_UCMPDI2 736b35cd988SPalmer Dabbelt bool 737b8265621SJacob Keller 738527701edSPalmer Dabbeltconfig GENERIC_LIB_DEVMEM_IS_ALLOWED 739527701edSPalmer Dabbelt bool 740527701edSPalmer Dabbelt 741b8265621SJacob Kellerconfig PLDMFW 742b8265621SJacob Keller bool 743b8265621SJacob Keller default n 744b0706762SJames Bottomley 745b0706762SJames Bottomleyconfig ASN1_ENCODER 746b0706762SJames Bottomley tristate 747cd705ea8SMichael Walle 748cd705ea8SMichael Walleconfig POLYNOMIAL 749cd705ea8SMichael Walle tristate 750a103f466SDave Jiang 751a103f466SDave Jiangconfig FIRMWARE_TABLE 752a103f466SDave Jiang bool 753bf9850f6SKuan-Wei Chiu 754bf9850f6SKuan-Wei Chiuconfig UNION_FIND 755bf9850f6SKuan-Wei Chiu bool 75692a8b224SKuan-Wei Chiu 75792a8b224SKuan-Wei Chiuconfig MIN_HEAP 75892a8b224SKuan-Wei Chiu bool 759