blob: b38849af6f1302a0402d47051423603bc1ab46cb [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
3# Library configuration
4#
5
Lai Jiangshan4370aa42009-03-06 17:21:46 +01006config BINARY_PRINTF
7 def_bool n
8
Linus Torvalds1da177e2005-04-16 15:20:36 -07009menu "Library routines"
10
David Woodhousef5e70d02009-07-13 11:35:12 +010011config RAID6_PQ
12 tristate
13
Daniel Verkampbe85f932018-11-12 15:26:52 -080014config 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
Matti Vaittinend2218d42020-05-08 18:39:35 +030022config LINEAR_RANGES
23 tristate
24
Vladimir Oltean554aae32019-05-02 23:23:29 +030025config PACKING
26 bool "Generic bitfield packing and unpacking"
Uladzislau Koshchanka1280d4b2022-12-10 03:44:23 +030027 select BITREVERSE
Vladimir Oltean554aae32019-05-02 23:23:29 +030028 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
Akinobu Mitaa5cfc1ec582006-12-08 02:36:25 -080043config BITREVERSE
44 tristate
45
Yalin Wang556d2f02014-11-03 03:01:03 +010046config HAVE_ARCH_BITREVERSE
Christoph Jaeger841c0092015-02-16 16:00:20 -080047 bool
Yalin Wang556d2f02014-11-03 03:01:03 +010048 default n
Yalin Wang556d2f02014-11-03 03:01:03 +010049 help
Andrew Morton9e522c02015-04-16 12:49:07 -070050 This option enables the use of hardware bit-reversal instructions on
51 architectures which support such operations.
Yalin Wang556d2f02014-11-03 03:01:03 +010052
Arnd Bergmanne6226992021-05-17 09:22:34 +020053config ARCH_HAS_STRNCPY_FROM_USER
David S. Miller29225852012-05-24 13:12:28 -070054 bool
55
Arnd Bergmanne6226992021-05-17 09:22:34 +020056config ARCH_HAS_STRNLEN_USER
Linus Torvaldsa08c5352012-05-26 11:06:38 -070057 bool
58
Arnd Bergmanne6226992021-05-17 09:22:34 +020059config GENERIC_STRNCPY_FROM_USER
60 def_bool !ARCH_HAS_STRNCPY_FROM_USER
61
62config GENERIC_STRNLEN_USER
63 def_bool !ARCH_HAS_STRNLEN_USER
64
Andy Shevchenko4cd57732013-06-04 19:46:26 +030065config GENERIC_NET_UTILS
66 bool
67
Andy Shevchenko2c64e9c2019-05-14 15:43:05 -070068source "lib/math/Kconfig"
69
Michael S. Tsirkinb9236502012-01-30 00:20:48 +020070config NO_GENERIC_PCI_IOPORT_MAP
71 bool
72
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020073config GENERIC_IOMAP
74 bool
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020075 select GENERIC_PCI_IOMAP
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020076
Wolfram Sang4ccf4be2011-08-31 20:35:40 +020077config STMP_DEVICE
78 bool
79
Linus Torvaldsbc08b442013-09-02 12:12:15 -070080config ARCH_USE_CMPXCHG_LOCKREF
81 bool
82
Linus Torvalds72d93102014-09-13 11:14:53 -070083config ARCH_HAS_FAST_MULTIPLIER
84 bool
85
Mark Brown2ce0d7f2020-04-16 19:24:02 +010086config ARCH_USE_SYM_ANNOTATIONS
87 bool
88
Zhichang Yuan031e3602018-03-15 02:15:50 +080089config INDIRECT_PIO
90 bool "Access I/O in non-MMIO mode"
91 depends on ARM64
Niklas Schnellefcbfe812023-03-23 17:33:52 +010092 depends on HAS_IOPORT
Zhichang Yuan031e3602018-03-15 02:15:50 +080093 help
94 On some platforms where no separate I/O space exists, there are I/O
95 hosts which can not be accessed in MMIO mode. Using the logical PIO
96 mechanism, the host-local I/O resource can be mapped into system
97 logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
98 system can access the I/O devices with the mapped-logic PIO through
99 I/O accessors.
100
101 This way has relatively little I/O performance cost. Please make
102 sure your devices really need this configure item enabled.
103
104 When in doubt, say N.
105
Johannes Bergca2e3342021-03-05 13:19:52 +0100106config INDIRECT_IOMEM
107 bool
108 help
109 This is selected by other options/architectures to provide the
110 emulated iomem accessors.
111
112config INDIRECT_IOMEM_FALLBACK
113 bool
114 depends on INDIRECT_IOMEM
115 help
116 If INDIRECT_IOMEM is selected, this enables falling back to plain
117 mmio accesses when the IO memory address is not a registered
118 emulated region.
119
Prasad Sodagudid593d642022-05-18 22:14:14 +0530120config TRACE_MMIO_ACCESS
121 bool "Register read/write tracing"
122 depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS
123 help
124 Create tracepoints for MMIO read/write operations. These trace events
125 can be used for logging all MMIO read/write operations.
126
Justin M. Forbese56e1892022-01-12 08:01:38 -0600127source "lib/crypto/Kconfig"
128
Linus Torvalds1da177e2005-04-16 15:20:36 -0700129config CRC_CCITT
130 tristate "CRC-CCITT functions"
131 help
132 This option is provided for the case where no in-kernel-tree
133 modules require CRC-CCITT functions, but a module built outside
134 the kernel tree does. Such modules that use library CRC-CCITT
135 functions require M here.
136
Evgeniy Polyakov7657ec12005-08-17 15:17:26 +0400137config CRC16
138 tristate "CRC16 functions"
139 help
140 This option is provided for the case where no in-kernel-tree
141 modules require CRC16 functions, but a module built outside
142 the kernel tree does. Such modules that use library CRC16
143 functions require M here.
144
Martin K. Petersenf11f5942008-06-25 11:22:42 -0400145config CRC_T10DIF
146 tristate "CRC calculation for the T10 Data Integrity Field"
Herbert Xu684115212013-09-07 12:56:26 +1000147 select CRYPTO
148 select CRYPTO_CRCT10DIF
Martin K. Petersenf11f5942008-06-25 11:22:42 -0400149 help
150 This option is only needed if a module that's not in the
151 kernel tree needs to calculate CRC checks for use with the
152 SCSI data integrity subsystem.
153
Keith Buschf3813f4b2022-03-03 12:13:10 -0800154config CRC64_ROCKSOFT
155 tristate "CRC calculation for the Rocksoft model CRC64"
156 select CRC64
157 select CRYPTO
158 select CRYPTO_CRC64_ROCKSOFT
159 help
160 This option provides a CRC64 API to a registered crypto driver.
161 This is used with the block layer's data integrity subsystem.
162
Ivo van Doorn3e7cbae2006-06-12 16:17:04 +0200163config CRC_ITU_T
164 tristate "CRC ITU-T V.41 functions"
165 help
166 This option is provided for the case where no in-kernel-tree
167 modules require CRC ITU-T V.41 functions, but a module built outside
168 the kernel tree does. Such modules that use library CRC ITU-T V.41
169 functions require M here.
170
Linus Torvalds1da177e2005-04-16 15:20:36 -0700171config CRC32
Darrick J. Wong46c58012012-03-23 15:02:25 -0700172 tristate "CRC32/CRC32c functions"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700173 default y
Akinobu Mita906d66d2006-12-08 02:36:25 -0800174 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700175 help
176 This option is provided for the case where no in-kernel-tree
Darrick J. Wong46c58012012-03-23 15:02:25 -0700177 modules require CRC32/CRC32c functions, but a module built outside
178 the kernel tree does. Such modules that use library CRC32/CRC32c
179 functions require M here.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700180
Bob Pearson3863ef32012-03-23 15:02:22 -0700181config CRC32_SELFTEST
Geert Uytterhoeven5fb7f872017-02-24 15:00:49 -0800182 tristate "CRC32 perform self test on init"
Bob Pearson3863ef32012-03-23 15:02:22 -0700183 depends on CRC32
184 help
185 This option enables the CRC32 library functions to perform a
186 self test on initialization. The self test computes crc32_le
187 and crc32_be over byte strings with random alignment and length
188 and computes the total elapsed time and number of bytes processed.
189
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700190choice
191 prompt "CRC32 implementation"
192 depends on CRC32
193 default CRC32_SLICEBY8
Darrick J. Wong82edb4b2012-03-28 14:42:56 -0700194 help
195 This option allows a kernel builder to override the default choice
196 of CRC32 algorithm. Choose the default ("slice by 8") unless you
197 know that you need one of the others.
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700198
199config CRC32_SLICEBY8
200 bool "Slice by 8 bytes"
201 help
202 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 without
205 thrashing the cache.
206
207 This is the default implementation choice. Choose this one unless
208 you have a good reason not to.
209
210config CRC32_SLICEBY4
211 bool "Slice by 4 bytes"
212 help
213 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 lookup
215 table.
216
217 Only choose this option if you know what you are doing.
218
219config CRC32_SARWATE
220 bool "Sarwate's Algorithm (one byte at a time)"
221 help
222 Calculate checksum a byte at a time using Sarwate's algorithm. This
223 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_BIT
228 bool "Classic Algorithm (one bit at a time)"
229 help
230 Calculate checksum one bit at a time. This is VERY slow, but has
231 no lookup table. This is provided as a debugging option.
232
233 Only choose this option if you are debugging crc32.
234
235endchoice
236
Coly Lifeba04f2018-08-21 21:57:11 -0700237config CRC64
238 tristate "CRC64 functions"
239 help
240 This option is provided for the case where no in-kernel-tree
241 modules require CRC64 functions, but a module built outside
242 the kernel tree does. Such modules that use library CRC64
243 functions require M here.
244
Jeremy Kerr0cbaa442017-06-06 16:08:39 -0500245config CRC4
246 tristate "CRC4 functions"
247 help
248 This option is provided for the case where no in-kernel-tree
249 modules require CRC4 functions, but a module built outside
250 the kernel tree does. Such modules that use library CRC4
251 functions require M here.
252
Jan Nikitenkoad241522007-07-17 04:04:03 -0700253config CRC7
254 tristate "CRC7 functions"
255 help
256 This option is provided for the case where no in-kernel-tree
257 modules require CRC7 functions, but a module built outside
258 the kernel tree does. Such modules that use library CRC7
259 functions require M here.
260
Linus Torvalds1da177e2005-04-16 15:20:36 -0700261config LIBCRC32C
262 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
Herbert Xu93027352008-11-13 22:05:13 +0800263 select CRYPTO
Herbert Xu69c35ef2008-11-07 15:11:47 +0800264 select CRYPTO_CRC32C
Linus Torvalds1da177e2005-04-16 15:20:36 -0700265 help
266 This option is provided for the case where no in-kernel-tree
267 modules require CRC32c functions, but a module built outside the
268 kernel tree does. Such modules that use library CRC32c functions
269 require M here. See Castagnoli93.
270 Module will be libcrc32c.
271
Arend van Spriel71509622011-05-31 11:22:15 +0200272config CRC8
273 tristate "CRC8 function"
274 help
275 This option provides CRC8 function. Drivers may select this
276 when they need to do cyclic redundancy check according CRC8
277 algorithm. Module will be called crc8.
278
Nick Terrell5d240522017-08-04 13:19:17 -0700279config XXHASH
280 tristate
281
Al Viroe65e1fc2006-09-12 03:04:40 -0400282config AUDIT_GENERIC
283 bool
284 depends on AUDIT && !AUDIT_ARCH
285 default y
286
AKASHI Takahiro4b588412014-03-15 14:48:00 +0900287config AUDIT_ARCH_COMPAT_GENERIC
288 bool
289 default n
290
291config AUDIT_COMPAT_GENERIC
292 bool
293 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
294 default y
295
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100296config RANDOM32_SELFTEST
297 bool "PRNG perform self test on init"
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100298 help
299 This option enables the 32 bit PRNG library functions to perform a
300 self test on initialization.
301
Linus Torvalds1da177e2005-04-16 15:20:36 -0700302#
303# compression support is select'ed if needed
304#
Dan Streetman2da572c2015-05-07 13:49:14 -0400305config 842_COMPRESS
Arnd Bergmann5b571672016-01-13 23:24:02 +0100306 select CRC32
Dan Streetman2da572c2015-05-07 13:49:14 -0400307 tristate
308
309config 842_DECOMPRESS
Arnd Bergmann5b571672016-01-13 23:24:02 +0100310 select CRC32
Dan Streetman2da572c2015-05-07 13:49:14 -0400311 tristate
312
Linus Torvalds1da177e2005-04-16 15:20:36 -0700313config ZLIB_INFLATE
314 tristate
315
316config ZLIB_DEFLATE
317 tristate
Andrew Morton1fd4e5c2015-10-15 15:28:35 -0700318 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700319
Mikhail Zaslonkoaa5b3952020-01-30 22:16:17 -0800320config ZLIB_DFLTCC
321 def_bool y
322 depends on S390
323 prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
324 help
325 Enable s390x hardware support for zlib in the kernel.
326
Richard Purdie64c70b12007-07-10 17:22:24 -0700327config LZO_COMPRESS
328 tristate
329
330config LZO_DECOMPRESS
331 tristate
332
Chanho Minc72ac7a2013-07-08 16:01:49 -0700333config LZ4_COMPRESS
334 tristate
335
336config LZ4HC_COMPRESS
337 tristate
338
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700339config LZ4_DECOMPRESS
340 tristate
341
Alexey Kardashevskiy637a6422022-09-29 12:08:23 +1000342config ZSTD_COMMON
Nick Terrell73f3d1b2017-08-09 19:35:53 -0700343 select XXHASH
344 tristate
345
Alexey Kardashevskiy637a6422022-09-29 12:08:23 +1000346config ZSTD_COMPRESS
347 select ZSTD_COMMON
348 tristate
349
Nick Terrell73f3d1b2017-08-09 19:35:53 -0700350config ZSTD_DECOMPRESS
Alexey Kardashevskiy637a6422022-09-29 12:08:23 +1000351 select ZSTD_COMMON
Nick Terrell73f3d1b2017-08-09 19:35:53 -0700352 tristate
353
Lasse Collin24fa0402011-01-12 17:01:22 -0800354source "lib/xz/Kconfig"
355
Linus Torvalds1da177e2005-04-16 15:20:36 -0700356#
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800357# These all provide a common interface (hence the apparent duplication with
358# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
359#
360config DECOMPRESS_GZIP
H. Peter Anvin7856a16e2009-01-07 00:01:43 -0800361 select ZLIB_INFLATE
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800362 tristate
363
364config DECOMPRESS_BZIP2
365 tristate
366
367config DECOMPRESS_LZMA
368 tristate
369
Lasse Collin3ebe1242011-01-12 17:01:23 -0800370config DECOMPRESS_XZ
371 select XZ_DEC
372 tristate
373
Albin Tonnerrecacb2462010-01-08 14:42:46 -0800374config DECOMPRESS_LZO
375 select LZO_DECOMPRESS
376 tristate
377
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700378config DECOMPRESS_LZ4
379 select LZ4_DECOMPRESS
380 tristate
381
Nick Terrell4963bb22020-07-30 12:08:35 -0700382config DECOMPRESS_ZSTD
383 select ZSTD_DECOMPRESS
384 tristate
385
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800386#
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700387# Generic allocator support is selected if needed
388#
389config GENERIC_ALLOCATOR
Christoph Jaeger6341e622014-12-20 15:41:11 -0500390 bool
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700391
392#
Linus Torvalds1da177e2005-04-16 15:20:36 -0700393# reed solomon support is select'ed if needed
394#
395config REED_SOLOMON
396 tristate
397
398config REED_SOLOMON_ENC8
Christoph Jaeger6341e622014-12-20 15:41:11 -0500399 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700400
401config REED_SOLOMON_DEC8
Christoph Jaeger6341e622014-12-20 15:41:11 -0500402 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700403
404config REED_SOLOMON_ENC16
Christoph Jaeger6341e622014-12-20 15:41:11 -0500405 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700406
407config REED_SOLOMON_DEC16
Christoph Jaeger6341e622014-12-20 15:41:11 -0500408 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700409
David S. Millerf7704342005-06-24 17:39:03 -0700410#
Ivan Djelic437aa562011-03-11 11:05:32 +0100411# BCH support is selected if needed
412#
413config BCH
414 tristate
John Sanpe02d7f742023-07-30 16:17:17 +0800415 select BITREVERSE
Ivan Djelic437aa562011-03-11 11:05:32 +0100416
417config BCH_CONST_PARAMS
Christoph Jaeger6341e622014-12-20 15:41:11 -0500418 bool
Ivan Djelic437aa562011-03-11 11:05:32 +0100419 help
420 Drivers may select this option to force specific constant
421 values for parameters 'm' (Galois field order) and 't'
422 (error correction capability). Those specific values must
423 be set by declaring default values for symbols BCH_CONST_M
424 and BCH_CONST_T.
425 Doing so will enable extra compiler optimizations,
426 improving encoding and decoding performance up to 2x for
427 usual (m,t) values (typically such that m*t < 200).
428 When this option is selected, the BCH library supports
429 only a single (m,t) configuration. This is mainly useful
430 for NAND flash board drivers requiring known, fixed BCH
431 parameters.
432
433config BCH_CONST_M
434 int
435 range 5 15
436 help
437 Constant value for Galois field order 'm'. If 'k' is the
438 number of data bits to protect, 'm' should be chosen such
439 that (k + m*t) <= 2**m - 1.
440 Drivers should declare a default value for this symbol if
441 they select option BCH_CONST_PARAMS.
442
443config BCH_CONST_T
444 int
445 help
446 Constant value for error correction capability in bits 't'.
447 Drivers should declare a default value for this symbol if
448 they select option BCH_CONST_PARAMS.
449
450#
David S. Millerf7704342005-06-24 17:39:03 -0700451# Textsearch support is select'ed if needed
452#
Thomas Graf2de4ff72005-06-23 20:49:30 -0700453config TEXTSEARCH
Christoph Jaeger6341e622014-12-20 15:41:11 -0500454 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700455
Thomas Grafdf3fb932005-06-23 20:58:37 -0700456config TEXTSEARCH_KMP
David S. Millerf7704342005-06-24 17:39:03 -0700457 tristate
Thomas Grafdf3fb932005-06-23 20:58:37 -0700458
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700459config TEXTSEARCH_BM
David S. Miller29cb9f92005-08-25 16:23:11 -0700460 tristate
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700461
Thomas Graf6408f792005-06-23 20:59:16 -0700462config TEXTSEARCH_FSM
David S. Millerf7704342005-06-24 17:39:03 -0700463 tristate
Thomas Graf6408f792005-06-23 20:59:16 -0700464
Joern Engel5db53f32009-11-20 20:13:39 +0100465config BTREE
Christoph Jaeger6341e622014-12-20 15:41:11 -0500466 bool
Joern Engel5db53f32009-11-20 20:13:39 +0100467
Chris Wilsona88cc102014-03-17 12:21:54 +0000468config INTERVAL_TREE
Christoph Jaeger6341e622014-12-20 15:41:11 -0500469 bool
Chris Wilsona88cc102014-03-17 12:21:54 +0000470 help
471 Simple, embeddable, interval-tree. Can find the start of an
472 overlapping range in log(n) time and then iterate over all
473 overlapping nodes. The algorithm is implemented as an
474 augmented rbtree.
475
476 See:
477
Matthew Wilcox (Oracle)14bbe3e2020-04-01 10:33:43 -0700478 Documentation/core-api/rbtree.rst
Chris Wilsona88cc102014-03-17 12:21:54 +0000479
480 for more information.
481
Jason Gunthorpe5fe93782022-11-29 16:29:26 -0400482config INTERVAL_TREE_SPAN_ITER
483 bool
484 depends on INTERVAL_TREE
485
Matthew Wilcox02c02bf2017-11-03 23:09:45 -0400486config XARRAY_MULTI
Matthew Wilcox57578c22016-05-20 17:01:54 -0700487 bool
Matthew Wilcox02c02bf2017-11-03 23:09:45 -0400488 help
489 Support entries which occupy multiple consecutive indices in the
490 XArray.
Matthew Wilcox57578c22016-05-20 17:01:54 -0700491
David Howells3cb98952013-09-24 10:35:17 +0100492config ASSOCIATIVE_ARRAY
493 bool
494 help
495 Generic associative array. Can be searched and iterated over whilst
496 it is being modified. It is also reasonably quick to search and
497 modify. The algorithms are non-recursive, and the trees are highly
498 capacious.
499
500 See:
501
Mauro Carvalho Chehab5fb94e92018-05-08 15:14:57 -0300502 Documentation/core-api/assoc_array.rst
David Howells3cb98952013-09-24 10:35:17 +0100503
504 for more information.
505
Kent Overstreet8c8d2d92017-03-17 16:35:23 -0800506config CLOSURES
507 bool
508
Al Viro5ea81762007-02-11 15:41:31 +0000509config HAS_IOMEM
Christoph Jaeger6341e622014-12-20 15:41:11 -0500510 bool
Al Viro5ea81762007-02-11 15:41:31 +0000511 depends on !NO_IOMEM
512 default y
513
Niklas Schnellefcbfe812023-03-23 17:33:52 +0100514config HAS_IOPORT
515 bool
516
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700517config HAS_IOPORT_MAP
Christoph Jaeger6341e622014-12-20 15:41:11 -0500518 bool
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700519 depends on HAS_IOMEM && !NO_IOPORT_MAP
Al Viroee36c2b2006-12-13 00:35:00 -0800520 default y
521
Christoph Hellwigcf65a0f2018-06-12 19:01:45 +0200522source "kernel/dma/Kconfig"
Heiko Carstens411f0f32007-05-06 14:49:09 -0700523
Bart Van Asschee80a0af2018-01-05 08:26:46 -0800524config SGL_ALLOC
525 bool
526 default n
527
Christoph Hellwiga4ce5a42018-04-03 15:47:59 +0200528config IOMMU_HELPER
529 bool
530
Geert Uytterhoeven928923c2007-08-22 14:01:36 -0700531config CHECK_SIGNATURE
532 bool
533
Rusty Russellaab46da2008-12-13 21:20:27 +1030534config CPUMASK_OFFSTACK
535 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
536 help
537 Use dynamic allocation for cpumask_var_t, instead of putting
538 them on the stack. This is a bit more expensive, but avoids
539 stack overflow.
540
Yury Norov6f9c07b2022-09-05 16:08:20 -0700541config FORCE_NR_CPUS
Linus Torvalds5d272dd2024-06-18 09:00:04 -0700542 def_bool !SMP
Yury Norov6f9c07b2022-09-05 16:08:20 -0700543
Ben Hutchingsc39649c2011-01-19 11:03:25 +0000544config CPU_RMAP
545 bool
546 depends on SMP
547
Tom Herbert75957ba2011-11-28 16:32:35 +0000548config DQL
549 bool
550
George Spelvinb0125082014-08-06 16:09:23 -0700551config GLOB
552 bool
553# This actually supports modular compilation, but the module overhead
554# is ridiculous for the amount of code involved. Until an out-of-tree
555# driver asks for it, we'll just link it directly it into the kernel
556# when required. Since we're ignoring out-of-tree users, there's also
557# no need bother prompting for a manual decision:
558# prompt "glob_match() function"
559 help
560 This option provides a glob_match function for performing
561 simple text pattern matching. It originated in the ATA code
562 to blacklist particular drive models, but other device drivers
563 may need similar functionality.
564
565 All drivers in the Linux kernel tree that require this function
566 should automatically select this option. Say N unless you
567 are compiling an out-of tree driver which tells you that it
568 depends on this.
569
George Spelvin5f9be822014-08-06 16:09:25 -0700570config GLOB_SELFTEST
Geert Uytterhoevenba95b042017-02-24 15:00:52 -0800571 tristate "glob self-test on init"
George Spelvin5f9be822014-08-06 16:09:25 -0700572 depends on GLOB
573 help
574 This option enables a simple self-test of the glob_match
575 function on startup. It is primarily useful for people
576 working on the code to ensure they haven't introduced any
577 regressions.
578
579 It only adds a little bit of code and slows kernel boot (or
580 module load) by a small amount, so you're welcome to play with
581 it, but you probably don't need it.
582
Geert Uytterhoevene9cc8bd2009-03-04 14:53:30 +0800583#
584# Netlink attribute parsing support is select'ed if needed
585#
586config NLATTR
587 bool
588
Paul Mackerras09d4e0e2009-06-12 21:10:05 +0000589#
590# Generic 64-bit atomic support is selected if needed
591#
592config GENERIC_ATOMIC64
593 bool
594
Philipp Reisnerb411b362009-09-25 16:07:19 -0700595config LRU_CACHE
596 tristate
597
David Millerc6df4b12012-02-02 00:17:54 +0200598config CLZ_TAB
599 bool
600
Christoph Hellwig511cbce2015-11-10 14:56:14 +0100601config IRQ_POLL
602 bool "IRQ polling library"
603 help
604 Helper library to poll interrupt mitigation using polling.
605
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300606config MPILIB
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200607 tristate
David Millerc6df4b12012-02-02 00:17:54 +0200608 select CLZ_TAB
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300609 help
610 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
Dmitry Kasatkin5e8898e2012-01-17 17:12:03 +0200614config SIGNATURE
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200615 tristate
Dmitry Kasatkin0d1f64f2014-07-11 18:59:45 +0300616 depends on KEYS
617 select CRYPTO
Dmitry Kasatkinbe440ec2012-01-17 17:12:04 +0200618 select CRYPTO_SHA1
Dmitry Kasatkin051dbb92011-10-14 15:25:16 +0300619 select MPILIB
620 help
621 Digital signature verification. Currently only RSA is supported.
622 Implementation is done using GnuPG MPI library
623
Tal Gilboa4f75da32019-01-10 17:33:17 +0200624config DIMLIB
Florian Fainelli0d5044b2024-05-06 10:50:40 -0700625 tristate
Heng Qib65e6972024-06-21 18:13:50 +0800626 depends on NET
Tal Gilboa4f75da32019-01-10 17:33:17 +0200627 help
628 Dynamic Interrupt Moderation library.
Randy Dunlap991ad2b2019-09-25 17:20:42 -0700629 Implements an algorithm for dynamically changing CQ moderation values
Tal Gilboa4f75da32019-01-10 17:33:17 +0200630 according to run time performance.
631
David Daneyab253832012-07-05 18:12:38 +0200632#
633# libfdt files, only selected if needed.
634#
635config LIBFDT
636 bool
637
David Howellsa77ad6e2012-09-21 23:30:46 +0100638config OID_REGISTRY
639 tristate
640 help
641 Enable fast lookup object identifier registry.
642
Matthew Garrett0635eb82013-04-15 13:09:45 -0700643config UCS2_STRING
Krzysztof Kozlowski68d4b3d2019-12-06 17:04:08 -0800644 tristate
Matthew Garrett0635eb82013-04-15 13:09:45 -0700645
Vincenzo Frascino00b26472019-06-21 10:52:29 +0100646#
647# generic vdso
648#
649source "lib/vdso/Kconfig"
650
Geert Uytterhoevenee89bd62013-06-09 11:46:43 +0200651source "lib/fonts/Kconfig"
652
Robert Jarzmikf8bcbe62015-08-08 10:44:10 +0200653config SG_SPLIT
654 def_bool n
655 help
Geert Uytterhoeven7f7e92f2015-09-04 12:45:05 +0200656 Provides a helper to split scatterlists into chunks, each chunk being
657 a scatterlist. This should be selected by a driver or an API which
658 whishes to split a scatterlist amongst multiple DMA channels.
Robert Jarzmikf8bcbe62015-08-08 10:44:10 +0200659
Ming Lin9b1d6c82016-04-04 14:48:11 -0700660config SG_POOL
661 def_bool n
662 help
663 Provides a helper to allocate chained scatterlists. This should be
664 selected by a driver or an API which whishes to allocate chained
665 scatterlist.
666
Laura Abbott308c09f2014-08-08 14:23:25 -0700667#
668# sg chaining option
669#
670
Christoph Hellwig7c703e52018-11-09 09:51:00 +0100671config ARCH_NO_SG_CHAIN
Laura Abbott308c09f2014-08-08 14:23:25 -0700672 def_bool n
673
Ross Zwisler61031952015-06-25 03:08:39 -0400674config ARCH_HAS_PMEM_API
675 bool
676
Dan Williams33dd7072019-11-06 17:43:31 -0800677config MEMREGION
678 bool
679
Davidlohr Bueso1156b442022-10-28 11:34:04 -0700680config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION
681 bool
682
Dan Williams9ffc1d12020-01-30 12:06:07 -0800683config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
684 bool
685
Christoph Hellwigbd79f942019-04-23 18:38:08 +0200686# use memcpy to implement user copies for nommu architectures
687config UACCESS_MEMCPY
688 bool
689
Dan Williams0aed55a2017-05-29 12:22:50 -0700690config ARCH_HAS_UACCESS_FLUSHCACHE
691 bool
692
Dan Williamsec6347b2020-10-05 20:40:16 -0700693# arch has a concept of a recoverable synchronous exception due to a
694# memory-read error like x86 machine-check or ARM data-abort, and
695# implements copy_mc_to_{user,kernel} to abort and report
696# 'bytes-transferred' if that exception fires when accessing the source
697# buffer.
698config ARCH_HAS_COPY_MC
Dan Williams522239b2018-05-22 23:17:03 -0700699 bool
700
Thomas Gleixner214d8ca2019-04-25 11:45:21 +0200701# Temporary. Goes away when all archs are cleaned up
702config ARCH_STACKWALK
703 bool
704
Alexander Potapenkocd110162016-03-25 14:22:08 -0700705config STACKDEPOT
706 bool
707 select STACKTRACE
Andrey Konovalovfc60e0c2023-11-20 18:47:04 +0100708 help
709 Stack depot: stack trace storage that avoids duplication
Alexander Potapenkocd110162016-03-25 14:22:08 -0700710
Vlastimil Babka2dba5eb2022-01-21 22:14:27 -0800711config STACKDEPOT_ALWAYS_INIT
712 bool
713 select STACKDEPOT
Andrey Konovalovfc60e0c2023-11-20 18:47:04 +0100714 help
715 Always initialize stack depot during early boot
716
717config STACKDEPOT_MAX_FRAMES
718 int "Maximum number of frames in trace saved in stack depot"
719 range 1 256
720 default 64
721 depends on STACKDEPOT
Vlastimil Babka2dba5eb2022-01-21 22:14:27 -0800722
Eric Dumazet4e669342021-12-04 20:21:55 -0800723config REF_TRACKER
724 bool
725 depends on STACKTRACE_SUPPORT
726 select STACKDEPOT
727
Omar Sandoval88459642016-09-17 08:38:44 -0600728config SBITMAP
729 bool
730
Jiri Pirko44091d22017-02-03 10:29:06 +0100731config PARMAN
Geert Uytterhoeven9d25af62017-02-24 11:25:55 +0100732 tristate "parman" if COMPILE_TEST
Jiri Pirko44091d22017-02-03 10:29:06 +0100733
Randy Dunlap3dfdecc2019-09-09 14:54:21 -0700734config OBJAGG
735 tristate "objagg" if COMPILE_TEST
736
NeilBrownde9e82c2023-09-11 10:39:43 -0400737config LWQ_TEST
738 bool "Boot-time test for lwq queuing"
739 help
740 Run boot-time test of light-weight queuing.
741
Thomas Graf2de4ff72005-06-23 20:49:30 -0700742endmenu
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700743
Christoph Hellwig80b0ca92019-08-13 11:24:04 +0200744config GENERIC_IOREMAP
745 bool
746
Matt Redfearne3d59802018-04-11 08:50:17 +0100747config GENERIC_LIB_ASHLDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700748 bool
749
Matt Redfearne3d59802018-04-11 08:50:17 +0100750config GENERIC_LIB_ASHRDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700751 bool
752
Matt Redfearne3d59802018-04-11 08:50:17 +0100753config GENERIC_LIB_LSHRDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700754 bool
755
Matt Redfearne3d59802018-04-11 08:50:17 +0100756config GENERIC_LIB_MULDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700757 bool
758
Matt Redfearne3d59802018-04-11 08:50:17 +0100759config GENERIC_LIB_CMPDI2
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700760 bool
761
Matt Redfearne3d59802018-04-11 08:50:17 +0100762config GENERIC_LIB_UCMPDI2
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700763 bool
Jacob Kellerb8265622020-07-23 17:21:59 -0700764
Palmer Dabbelt527701e2020-07-09 11:43:21 -0700765config GENERIC_LIB_DEVMEM_IS_ALLOWED
766 bool
767
Jacob Kellerb8265622020-07-23 17:21:59 -0700768config PLDMFW
769 bool
770 default n
James Bottomleyb0706762021-01-27 11:06:13 -0800771
772config ASN1_ENCODER
773 tristate
Michael Wallecd705ea2022-04-01 23:40:29 +0200774
775config POLYNOMIAL
776 tristate
Dave Jianga103f462023-10-12 11:53:54 -0700777
778config FIRMWARE_TABLE
779 bool