| # SPDX-License-Identifier: GPL-2.0-only | |
| # | |
| # Library configuration | |
| # | |
| config BINARY_PRINTF | |
| def_bool n | |
| menu "Library routines" | |
| config LINEAR_RANGES | |
| tristate | |
| config PACKING | |
| bool "Generic bitfield packing and unpacking" | |
| select BITREVERSE | |
| default n | |
| help | |
| This option provides the packing() helper function, which permits | |
| converting bitfields between a CPU-usable representation and a | |
| memory representation that can have any combination of these quirks: | |
| - Is little endian (bytes are reversed within a 32-bit group) | |
| - The least-significant 32-bit word comes first (within a 64-bit | |
| group) | |
| - The most significant bit of a byte is at its right (bit 0 of a | |
| register description is numerically 2^7). | |
| Drivers may use these helpers to match the bit indices as described | |
| in the data sheets of the peripherals they are in control of. | |
| When in doubt, say N. | |
| config PACKING_KUNIT_TEST | |
| tristate "KUnit tests for packing library" if !KUNIT_ALL_TESTS | |
| depends on PACKING && KUNIT | |
| default KUNIT_ALL_TESTS | |
| help | |
| This builds KUnit tests for the packing library. | |
| For more information on KUnit and unit tests in general, | |
| please refer to the KUnit documentation in Documentation/dev-tools/kunit/. | |
| When in doubt, say N. | |
| config BITREVERSE | |
| tristate | |
| select GENERIC_BITREVERSE if !HAVE_ARCH_BITREVERSE | |
| config HAVE_ARCH_BITREVERSE | |
| bool | |
| default n | |
| depends on BITREVERSE | |
| help | |
| This option enables the use of hardware bit-reversal instructions on | |
| architectures which support such operations. | |
| config GENERIC_BITREVERSE | |
| tristate | |
| depends on BITREVERSE | |
| help | |
| Generic bit reversal implementation. Drivers should never enable | |
| it explicitly. Instead, enable BITREVERSE. | |
| Architectures may want to select it as a fall-back option for | |
| HAVE_ARCH_BITREVERSE, when the hardware-accelerated bit reverse | |
| instruction set is optional, like RISC-V ZBKB extension. | |
| config ARCH_HAS_STRNCPY_FROM_USER | |
| bool | |
| config ARCH_HAS_STRNLEN_USER | |
| bool | |
| config GENERIC_STRNCPY_FROM_USER | |
| def_bool !ARCH_HAS_STRNCPY_FROM_USER | |
| config GENERIC_STRNLEN_USER | |
| def_bool !ARCH_HAS_STRNLEN_USER | |
| config GENERIC_NET_UTILS | |
| bool | |
| source "lib/math/Kconfig" | |
| config NO_GENERIC_PCI_IOPORT_MAP | |
| bool | |
| config GENERIC_IOMAP | |
| bool | |
| select GENERIC_PCI_IOMAP | |
| config STMP_DEVICE | |
| bool | |
| config ARCH_USE_CMPXCHG_LOCKREF | |
| bool | |
| config ARCH_HAS_FAST_MULTIPLIER | |
| bool | |
| config ARCH_USE_SYM_ANNOTATIONS | |
| bool | |
| config INDIRECT_PIO | |
| bool "Access I/O in non-MMIO mode" | |
| depends on ARM64 | |
| depends on HAS_IOPORT | |
| help | |
| On some platforms where no separate I/O space exists, there are I/O | |
| hosts which can not be accessed in MMIO mode. Using the logical PIO | |
| mechanism, the host-local I/O resource can be mapped into system | |
| logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the | |
| system can access the I/O devices with the mapped-logic PIO through | |
| I/O accessors. | |
| This way has relatively little I/O performance cost. Please make | |
| sure your devices really need this configure item enabled. | |
| When in doubt, say N. | |
| config INDIRECT_IOMEM | |
| bool | |
| help | |
| This is selected by other options/architectures to provide the | |
| emulated iomem accessors. | |
| config INDIRECT_IOMEM_FALLBACK | |
| bool | |
| depends on INDIRECT_IOMEM | |
| help | |
| If INDIRECT_IOMEM is selected, this enables falling back to plain | |
| mmio accesses when the IO memory address is not a registered | |
| emulated region. | |
| config TRACE_MMIO_ACCESS | |
| bool "Register read/write tracing" | |
| depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS | |
| help | |
| Create tracepoints for MMIO read/write operations. These trace events | |
| can be used for logging all MMIO read/write operations. | |
| source "lib/crc/Kconfig" | |
| source "lib/crypto/Kconfig" | |
| source "lib/raid/Kconfig" | |
| config XXHASH | |
| tristate | |
| config AUDIT_GENERIC | |
| bool | |
| depends on AUDIT && !AUDIT_ARCH | |
| default y | |
| config AUDIT_ARCH_COMPAT_GENERIC | |
| bool | |
| default n | |
| config AUDIT_COMPAT_GENERIC | |
| bool | |
| depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT | |
| default y | |
| # | |
| # compression support is select'ed if needed | |
| # | |
| config 842_COMPRESS | |
| select CRC32 | |
| tristate | |
| config 842_DECOMPRESS | |
| select CRC32 | |
| tristate | |
| config ZLIB_INFLATE | |
| tristate | |
| config ZLIB_DEFLATE | |
| tristate | |
| select BITREVERSE | |
| config ZLIB_DFLTCC | |
| def_bool y | |
| depends on S390 | |
| prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" | |
| help | |
| Enable s390x hardware support for zlib in the kernel. | |
| config LZO_COMPRESS | |
| tristate | |
| config LZO_DECOMPRESS | |
| tristate | |
| config LZ4_COMPRESS | |
| tristate | |
| config LZ4HC_COMPRESS | |
| tristate | |
| config LZ4_DECOMPRESS | |
| tristate | |
| config ZSTD_COMMON | |
| select XXHASH | |
| tristate | |
| config ZSTD_COMPRESS | |
| select ZSTD_COMMON | |
| tristate | |
| config ZSTD_DECOMPRESS | |
| select ZSTD_COMMON | |
| tristate | |
| source "lib/xz/Kconfig" | |
| # | |
| # These all provide a common interface (hence the apparent duplication with | |
| # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) | |
| # | |
| config DECOMPRESS_GZIP | |
| select ZLIB_INFLATE | |
| tristate | |
| config DECOMPRESS_BZIP2 | |
| tristate | |
| config DECOMPRESS_LZMA | |
| tristate | |
| config DECOMPRESS_XZ | |
| select XZ_DEC | |
| tristate | |
| config DECOMPRESS_LZO | |
| select LZO_DECOMPRESS | |
| tristate | |
| config DECOMPRESS_LZ4 | |
| select LZ4_DECOMPRESS | |
| tristate | |
| config DECOMPRESS_ZSTD | |
| select ZSTD_DECOMPRESS | |
| tristate | |
| # | |
| # Generic allocator support is selected if needed | |
| # | |
| config GENERIC_ALLOCATOR | |
| bool | |
| # | |
| # reed solomon support is select'ed if needed | |
| # | |
| config REED_SOLOMON | |
| tristate | |
| config REED_SOLOMON_ENC8 | |
| bool | |
| config REED_SOLOMON_DEC8 | |
| bool | |
| config REED_SOLOMON_ENC16 | |
| bool | |
| config REED_SOLOMON_DEC16 | |
| bool | |
| # | |
| # BCH support is selected if needed | |
| # | |
| config BCH | |
| tristate | |
| select BITREVERSE | |
| config BCH_CONST_PARAMS | |
| bool | |
| help | |
| Drivers may select this option to force specific constant | |
| values for parameters 'm' (Galois field order) and 't' | |
| (error correction capability). Those specific values must | |
| be set by declaring default values for symbols BCH_CONST_M | |
| and BCH_CONST_T. | |
| Doing so will enable extra compiler optimizations, | |
| improving encoding and decoding performance up to 2x for | |
| usual (m,t) values (typically such that m*t < 200). | |
| When this option is selected, the BCH library supports | |
| only a single (m,t) configuration. This is mainly useful | |
| for NAND flash board drivers requiring known, fixed BCH | |
| parameters. | |
| config BCH_CONST_M | |
| int | |
| range 5 15 | |
| help | |
| Constant value for Galois field order 'm'. If 'k' is the | |
| number of data bits to protect, 'm' should be chosen such | |
| that (k + m*t) <= 2**m - 1. | |
| Drivers should declare a default value for this symbol if | |
| they select option BCH_CONST_PARAMS. | |
| config BCH_CONST_T | |
| int | |
| help | |
| Constant value for error correction capability in bits 't'. | |
| Drivers should declare a default value for this symbol if | |
| they select option BCH_CONST_PARAMS. | |
| # | |
| # Textsearch support is select'ed if needed | |
| # | |
| config TEXTSEARCH | |
| bool | |
| config TEXTSEARCH_KMP | |
| tristate | |
| config TEXTSEARCH_BM | |
| tristate | |
| config TEXTSEARCH_FSM | |
| tristate | |
| config BTREE | |
| bool | |
| config INTERVAL_TREE | |
| bool | |
| help | |
| Simple, embeddable, interval-tree. Can find the start of an | |
| overlapping range in log(n) time and then iterate over all | |
| overlapping nodes. The algorithm is implemented as an | |
| augmented rbtree. | |
| See: | |
| Documentation/core-api/rbtree.rst | |
| for more information. | |
| config INTERVAL_TREE_SPAN_ITER | |
| bool | |
| depends on INTERVAL_TREE | |
| config XARRAY_MULTI | |
| bool | |
| help | |
| Support entries which occupy multiple consecutive indices in the | |
| XArray. | |
| config ASSOCIATIVE_ARRAY | |
| bool | |
| help | |
| Generic associative array. Can be searched and iterated over whilst | |
| it is being modified. It is also reasonably quick to search and | |
| modify. The algorithms are non-recursive, and the trees are highly | |
| capacious. | |
| See: | |
| Documentation/core-api/assoc_array.rst | |
| for more information. | |
| config CLOSURES | |
| bool | |
| config HAS_IOMEM | |
| bool | |
| depends on !NO_IOMEM | |
| default y | |
| config HAS_IOPORT | |
| bool | |
| config HAS_IOPORT_MAP | |
| bool | |
| depends on HAS_IOMEM && !NO_IOPORT_MAP | |
| default y | |
| source "kernel/dma/Kconfig" | |
| config SGL_ALLOC | |
| bool | |
| default n | |
| config IOMMU_HELPER | |
| bool | |
| config CHECK_SIGNATURE | |
| bool | |
| config CPUMASK_OFFSTACK | |
| bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS | |
| help | |
| Use dynamic allocation for cpumask_var_t, instead of putting | |
| them on the stack. This is a bit more expensive, but avoids | |
| stack overflow. | |
| config FORCE_NR_CPUS | |
| def_bool !SMP | |
| config CPU_RMAP | |
| bool | |
| depends on SMP | |
| config DQL | |
| bool | |
| config GLOB | |
| bool | |
| # This actually supports modular compilation, but the module overhead | |
| # is ridiculous for the amount of code involved. Until an out-of-tree | |
| # driver asks for it, we'll just link it directly it into the kernel | |
| # when required. Since we're ignoring out-of-tree users, there's also | |
| # no need bother prompting for a manual decision: | |
| # prompt "glob_match() function" | |
| help | |
| This option provides a glob_match function for performing | |
| simple text pattern matching. It originated in the ATA code | |
| to blacklist particular drive models, but other device drivers | |
| may need similar functionality. | |
| All drivers in the Linux kernel tree that require this function | |
| should automatically select this option. Say N unless you | |
| are compiling an out-of tree driver which tells you that it | |
| depends on this. | |
| # | |
| # Netlink attribute parsing support is select'ed if needed | |
| # | |
| config NLATTR | |
| bool | |
| # | |
| # Generic 64-bit atomic support is selected if needed | |
| # | |
| config GENERIC_ATOMIC64 | |
| bool | |
| config LRU_CACHE | |
| tristate | |
| config CLZ_TAB | |
| bool | |
| config IRQ_POLL | |
| bool "IRQ polling library" | |
| help | |
| Helper library to poll interrupt mitigation using polling. | |
| config MPILIB | |
| tristate | |
| select CLZ_TAB | |
| help | |
| Multiprecision maths library from GnuPG. | |
| It is used to implement RSA digital signature verification, | |
| which is used by IMA/EVM digital signature extension. | |
| config SIGNATURE | |
| tristate | |
| depends on KEYS | |
| select CRYPTO_LIB_SHA1 | |
| select MPILIB | |
| help | |
| Digital signature verification. Currently only RSA is supported. | |
| Implementation is done using GnuPG MPI library | |
| config DIMLIB | |
| tristate | |
| depends on NET | |
| help | |
| Dynamic Interrupt Moderation library. | |
| Implements an algorithm for dynamically changing CQ moderation values | |
| according to run time performance. | |
| # | |
| # libfdt files, only selected if needed. | |
| # | |
| config LIBFDT | |
| bool | |
| config OID_REGISTRY | |
| tristate | |
| help | |
| Enable fast lookup object identifier registry. | |
| config UCS2_STRING | |
| tristate | |
| # | |
| # generic vdso | |
| # | |
| source "lib/vdso/Kconfig" | |
| source "lib/fonts/Kconfig" | |
| config SG_SPLIT | |
| def_bool n | |
| help | |
| Provides a helper to split scatterlists into chunks, each chunk being | |
| a scatterlist. This should be selected by a driver or an API which | |
| whishes to split a scatterlist amongst multiple DMA channels. | |
| config SG_POOL | |
| def_bool n | |
| help | |
| Provides a helper to allocate chained scatterlists. This should be | |
| selected by a driver or an API which whishes to allocate chained | |
| scatterlist. | |
| # | |
| # sg chaining option | |
| # | |
| config ARCH_NO_SG_CHAIN | |
| def_bool n | |
| config ARCH_HAS_PMEM_API | |
| bool | |
| config MEMREGION | |
| bool | |
| config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION | |
| bool | |
| config GENERIC_CPU_CACHE_MAINTENANCE | |
| bool | |
| config ARCH_HAS_MEMREMAP_COMPAT_ALIGN | |
| bool | |
| # use memcpy to implement user copies for nommu architectures | |
| config UACCESS_MEMCPY | |
| bool | |
| config ARCH_HAS_UACCESS_FLUSHCACHE | |
| bool | |
| # arch has a concept of a recoverable synchronous exception due to a | |
| # memory-read error like x86 machine-check or ARM data-abort, and | |
| # implements copy_mc_to_{user,kernel} to abort and report | |
| # 'bytes-transferred' if that exception fires when accessing the source | |
| # buffer. | |
| config ARCH_HAS_COPY_MC | |
| bool | |
| # Temporary. Goes away when all archs are cleaned up | |
| config ARCH_STACKWALK | |
| bool | |
| config STACKDEPOT | |
| bool | |
| select STACKTRACE | |
| help | |
| Stack depot: stack trace storage that avoids duplication | |
| config STACKDEPOT_ALWAYS_INIT | |
| bool | |
| select STACKDEPOT | |
| help | |
| Always initialize stack depot during early boot | |
| config STACKDEPOT_MAX_FRAMES | |
| int "Maximum number of frames in trace saved in stack depot" | |
| range 1 256 | |
| default 64 | |
| depends on STACKDEPOT | |
| config REF_TRACKER | |
| bool | |
| depends on STACKTRACE_SUPPORT | |
| select STACKDEPOT | |
| config SBITMAP | |
| bool | |
| config PARMAN | |
| tristate "parman" if COMPILE_TEST | |
| config OBJAGG | |
| tristate "objagg" if COMPILE_TEST | |
| config LWQ_TEST | |
| bool "Boot-time test for lwq queuing" | |
| help | |
| Run boot-time test of light-weight queuing. | |
| endmenu | |
| config GENERIC_IOREMAP | |
| bool | |
| config GENERIC_LIB_ASHLDI3 | |
| bool | |
| config GENERIC_LIB_ASHRDI3 | |
| bool | |
| config GENERIC_LIB_LSHRDI3 | |
| bool | |
| config GENERIC_LIB_MULDI3 | |
| bool | |
| config GENERIC_LIB_CMPDI2 | |
| bool | |
| config GENERIC_LIB_UCMPDI2 | |
| bool | |
| config GENERIC_LIB_DEVMEM_IS_ALLOWED | |
| bool | |
| config PLDMFW | |
| bool | |
| select CRC32 | |
| default n | |
| config ASN1_ENCODER | |
| tristate | |
| config FIRMWARE_TABLE | |
| bool | |
| config UNION_FIND | |
| bool | |
| config MIN_HEAP | |
| bool |