cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (16947B)


      1# SPDX-License-Identifier: GPL-2.0-only
      2#
      3# Library configuration
      4#
      5
      6config BINARY_PRINTF
      7	def_bool n
      8
      9menu "Library routines"
     10
     11config RAID6_PQ
     12	tristate
     13
     14config RAID6_PQ_BENCHMARK
     15	bool "Automatically choose fastest RAID6 PQ functions"
     16	depends on RAID6_PQ
     17	default y
     18	help
     19	  Benchmark all available RAID6 PQ functions on init and choose the
     20	  fastest one.
     21
     22config LINEAR_RANGES
     23	tristate
     24
     25config PACKING
     26	bool "Generic bitfield packing and unpacking"
     27	default n
     28	help
     29	  This option provides the packing() helper function, which permits
     30	  converting bitfields between a CPU-usable representation and a
     31	  memory representation that can have any combination of these quirks:
     32	    - Is little endian (bytes are reversed within a 32-bit group)
     33	    - The least-significant 32-bit word comes first (within a 64-bit
     34	      group)
     35	    - The most significant bit of a byte is at its right (bit 0 of a
     36	      register description is numerically 2^7).
     37	  Drivers may use these helpers to match the bit indices as described
     38	  in the data sheets of the peripherals they are in control of.
     39
     40	  When in doubt, say N.
     41
     42config BITREVERSE
     43	tristate
     44
     45config HAVE_ARCH_BITREVERSE
     46	bool
     47	default n
     48	help
     49	  This option enables the use of hardware bit-reversal instructions on
     50	  architectures which support such operations.
     51
     52config ARCH_HAS_STRNCPY_FROM_USER
     53	bool
     54
     55config ARCH_HAS_STRNLEN_USER
     56	bool
     57
     58config GENERIC_STRNCPY_FROM_USER
     59	def_bool !ARCH_HAS_STRNCPY_FROM_USER
     60
     61config GENERIC_STRNLEN_USER
     62	def_bool !ARCH_HAS_STRNLEN_USER
     63
     64config GENERIC_NET_UTILS
     65	bool
     66
     67source "lib/math/Kconfig"
     68
     69config NO_GENERIC_PCI_IOPORT_MAP
     70	bool
     71
     72config GENERIC_PCI_IOMAP
     73	bool
     74
     75config GENERIC_IOMAP
     76	bool
     77	select GENERIC_PCI_IOMAP
     78
     79config STMP_DEVICE
     80	bool
     81
     82config ARCH_USE_CMPXCHG_LOCKREF
     83	bool
     84
     85config ARCH_HAS_FAST_MULTIPLIER
     86	bool
     87
     88config ARCH_USE_SYM_ANNOTATIONS
     89	bool
     90
     91config INDIRECT_PIO
     92	bool "Access I/O in non-MMIO mode"
     93	depends on ARM64
     94	help
     95	  On some platforms where no separate I/O space exists, there are I/O
     96	  hosts which can not be accessed in MMIO mode. Using the logical PIO
     97	  mechanism, the host-local I/O resource can be mapped into system
     98	  logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
     99	  system can access the I/O devices with the mapped-logic PIO through
    100	  I/O accessors.
    101
    102	  This way has relatively little I/O performance cost. Please make
    103	  sure your devices really need this configure item enabled.
    104
    105	  When in doubt, say N.
    106
    107config INDIRECT_IOMEM
    108	bool
    109	help
    110	  This is selected by other options/architectures to provide the
    111	  emulated iomem accessors.
    112
    113config INDIRECT_IOMEM_FALLBACK
    114	bool
    115	depends on INDIRECT_IOMEM
    116	help
    117	  If INDIRECT_IOMEM is selected, this enables falling back to plain
    118	  mmio accesses when the IO memory address is not a registered
    119	  emulated region.
    120
    121source "lib/crypto/Kconfig"
    122
    123config LIB_MEMNEQ
    124	bool
    125
    126config CRC_CCITT
    127	tristate "CRC-CCITT functions"
    128	help
    129	  This option is provided for the case where no in-kernel-tree
    130	  modules require CRC-CCITT functions, but a module built outside
    131	  the kernel tree does. Such modules that use library CRC-CCITT
    132	  functions require M here.
    133
    134config CRC16
    135	tristate "CRC16 functions"
    136	help
    137	  This option is provided for the case where no in-kernel-tree
    138	  modules require CRC16 functions, but a module built outside
    139	  the kernel tree does. Such modules that use library CRC16
    140	  functions require M here.
    141
    142config CRC_T10DIF
    143	tristate "CRC calculation for the T10 Data Integrity Field"
    144	select CRYPTO
    145	select CRYPTO_CRCT10DIF
    146	help
    147	  This option is only needed if a module that's not in the
    148	  kernel tree needs to calculate CRC checks for use with the
    149	  SCSI data integrity subsystem.
    150
    151config CRC64_ROCKSOFT
    152	tristate "CRC calculation for the Rocksoft model CRC64"
    153	select CRC64
    154	select CRYPTO
    155	select CRYPTO_CRC64_ROCKSOFT
    156	help
    157	  This option provides a CRC64 API to a registered crypto driver.
    158	  This is used with the block layer's data integrity subsystem.
    159
    160config CRC_ITU_T
    161	tristate "CRC ITU-T V.41 functions"
    162	help
    163	  This option is provided for the case where no in-kernel-tree
    164	  modules require CRC ITU-T V.41 functions, but a module built outside
    165	  the kernel tree does. Such modules that use library CRC ITU-T V.41
    166	  functions require M here.
    167
    168config CRC32
    169	tristate "CRC32/CRC32c functions"
    170	default y
    171	select BITREVERSE
    172	help
    173	  This option is provided for the case where no in-kernel-tree
    174	  modules require CRC32/CRC32c functions, but a module built outside
    175	  the kernel tree does. Such modules that use library CRC32/CRC32c
    176	  functions require M here.
    177
    178config CRC32_SELFTEST
    179	tristate "CRC32 perform self test on init"
    180	depends on CRC32
    181	help
    182	  This option enables the CRC32 library functions to perform a
    183	  self test on initialization. The self test computes crc32_le
    184	  and crc32_be over byte strings with random alignment and length
    185	  and computes the total elapsed time and number of bytes processed.
    186
    187choice
    188	prompt "CRC32 implementation"
    189	depends on CRC32
    190	default CRC32_SLICEBY8
    191	help
    192	  This option allows a kernel builder to override the default choice
    193	  of CRC32 algorithm.  Choose the default ("slice by 8") unless you
    194	  know that you need one of the others.
    195
    196config CRC32_SLICEBY8
    197	bool "Slice by 8 bytes"
    198	help
    199	  Calculate checksum 8 bytes at a time with a clever slicing algorithm.
    200	  This is the fastest algorithm, but comes with a 8KiB lookup table.
    201	  Most modern processors have enough cache to hold this table without
    202	  thrashing the cache.
    203
    204	  This is the default implementation choice.  Choose this one unless
    205	  you have a good reason not to.
    206
    207config CRC32_SLICEBY4
    208	bool "Slice by 4 bytes"
    209	help
    210	  Calculate checksum 4 bytes at a time with a clever slicing algorithm.
    211	  This is a bit slower than slice by 8, but has a smaller 4KiB lookup
    212	  table.
    213
    214	  Only choose this option if you know what you are doing.
    215
    216config CRC32_SARWATE
    217	bool "Sarwate's Algorithm (one byte at a time)"
    218	help
    219	  Calculate checksum a byte at a time using Sarwate's algorithm.  This
    220	  is not particularly fast, but has a small 256 byte lookup table.
    221
    222	  Only choose this option if you know what you are doing.
    223
    224config CRC32_BIT
    225	bool "Classic Algorithm (one bit at a time)"
    226	help
    227	  Calculate checksum one bit at a time.  This is VERY slow, but has
    228	  no lookup table.  This is provided as a debugging option.
    229
    230	  Only choose this option if you are debugging crc32.
    231
    232endchoice
    233
    234config CRC64
    235	tristate "CRC64 functions"
    236	help
    237	  This option is provided for the case where no in-kernel-tree
    238	  modules require CRC64 functions, but a module built outside
    239	  the kernel tree does. Such modules that use library CRC64
    240	  functions require M here.
    241
    242config CRC4
    243	tristate "CRC4 functions"
    244	help
    245	  This option is provided for the case where no in-kernel-tree
    246	  modules require CRC4 functions, but a module built outside
    247	  the kernel tree does. Such modules that use library CRC4
    248	  functions require M here.
    249
    250config CRC7
    251	tristate "CRC7 functions"
    252	help
    253	  This option is provided for the case where no in-kernel-tree
    254	  modules require CRC7 functions, but a module built outside
    255	  the kernel tree does. Such modules that use library CRC7
    256	  functions require M here.
    257
    258config LIBCRC32C
    259	tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
    260	select CRYPTO
    261	select CRYPTO_CRC32C
    262	help
    263	  This option is provided for the case where no in-kernel-tree
    264	  modules require CRC32c functions, but a module built outside the
    265	  kernel tree does. Such modules that use library CRC32c functions
    266	  require M here.  See Castagnoli93.
    267	  Module will be libcrc32c.
    268
    269config CRC8
    270	tristate "CRC8 function"
    271	help
    272	  This option provides CRC8 function. Drivers may select this
    273	  when they need to do cyclic redundancy check according CRC8
    274	  algorithm. Module will be called crc8.
    275
    276config XXHASH
    277	tristate
    278
    279config AUDIT_GENERIC
    280	bool
    281	depends on AUDIT && !AUDIT_ARCH
    282	default y
    283
    284config AUDIT_ARCH_COMPAT_GENERIC
    285	bool
    286	default n
    287
    288config AUDIT_COMPAT_GENERIC
    289	bool
    290	depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
    291	default y
    292
    293config RANDOM32_SELFTEST
    294	bool "PRNG perform self test on init"
    295	help
    296	  This option enables the 32 bit PRNG library functions to perform a
    297	  self test on initialization.
    298
    299#
    300# compression support is select'ed if needed
    301#
    302config 842_COMPRESS
    303	select CRC32
    304	tristate
    305
    306config 842_DECOMPRESS
    307	select CRC32
    308	tristate
    309
    310config ZLIB_INFLATE
    311	tristate
    312
    313config ZLIB_DEFLATE
    314	tristate
    315	select BITREVERSE
    316
    317config ZLIB_DFLTCC
    318	def_bool y
    319	depends on S390
    320	prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
    321	help
    322	 Enable s390x hardware support for zlib in the kernel.
    323
    324config LZO_COMPRESS
    325	tristate
    326
    327config LZO_DECOMPRESS
    328	tristate
    329
    330config LZ4_COMPRESS
    331	tristate
    332
    333config LZ4HC_COMPRESS
    334	tristate
    335
    336config LZ4_DECOMPRESS
    337	tristate
    338
    339config ZSTD_COMPRESS
    340	select XXHASH
    341	tristate
    342
    343config ZSTD_DECOMPRESS
    344	select XXHASH
    345	tristate
    346
    347source "lib/xz/Kconfig"
    348
    349#
    350# These all provide a common interface (hence the apparent duplication with
    351# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
    352#
    353config DECOMPRESS_GZIP
    354	select ZLIB_INFLATE
    355	tristate
    356
    357config DECOMPRESS_BZIP2
    358	tristate
    359
    360config DECOMPRESS_LZMA
    361	tristate
    362
    363config DECOMPRESS_XZ
    364	select XZ_DEC
    365	tristate
    366
    367config DECOMPRESS_LZO
    368	select LZO_DECOMPRESS
    369	tristate
    370
    371config DECOMPRESS_LZ4
    372	select LZ4_DECOMPRESS
    373	tristate
    374
    375config DECOMPRESS_ZSTD
    376	select ZSTD_DECOMPRESS
    377	tristate
    378
    379#
    380# Generic allocator support is selected if needed
    381#
    382config GENERIC_ALLOCATOR
    383	bool
    384
    385#
    386# reed solomon support is select'ed if needed
    387#
    388config REED_SOLOMON
    389	tristate
    390	
    391config REED_SOLOMON_ENC8
    392	bool
    393
    394config REED_SOLOMON_DEC8
    395	bool
    396
    397config REED_SOLOMON_ENC16
    398	bool
    399
    400config REED_SOLOMON_DEC16
    401	bool
    402
    403#
    404# BCH support is selected if needed
    405#
    406config BCH
    407	tristate
    408
    409config BCH_CONST_PARAMS
    410	bool
    411	help
    412	  Drivers may select this option to force specific constant
    413	  values for parameters 'm' (Galois field order) and 't'
    414	  (error correction capability). Those specific values must
    415	  be set by declaring default values for symbols BCH_CONST_M
    416	  and BCH_CONST_T.
    417	  Doing so will enable extra compiler optimizations,
    418	  improving encoding and decoding performance up to 2x for
    419	  usual (m,t) values (typically such that m*t < 200).
    420	  When this option is selected, the BCH library supports
    421	  only a single (m,t) configuration. This is mainly useful
    422	  for NAND flash board drivers requiring known, fixed BCH
    423	  parameters.
    424
    425config BCH_CONST_M
    426	int
    427	range 5 15
    428	help
    429	  Constant value for Galois field order 'm'. If 'k' is the
    430	  number of data bits to protect, 'm' should be chosen such
    431	  that (k + m*t) <= 2**m - 1.
    432	  Drivers should declare a default value for this symbol if
    433	  they select option BCH_CONST_PARAMS.
    434
    435config BCH_CONST_T
    436	int
    437	help
    438	  Constant value for error correction capability in bits 't'.
    439	  Drivers should declare a default value for this symbol if
    440	  they select option BCH_CONST_PARAMS.
    441
    442#
    443# Textsearch support is select'ed if needed
    444#
    445config TEXTSEARCH
    446	bool
    447
    448config TEXTSEARCH_KMP
    449	tristate
    450
    451config TEXTSEARCH_BM
    452	tristate
    453
    454config TEXTSEARCH_FSM
    455	tristate
    456
    457config BTREE
    458	bool
    459
    460config INTERVAL_TREE
    461	bool
    462	help
    463	  Simple, embeddable, interval-tree. Can find the start of an
    464	  overlapping range in log(n) time and then iterate over all
    465	  overlapping nodes. The algorithm is implemented as an
    466	  augmented rbtree.
    467
    468	  See:
    469
    470		Documentation/core-api/rbtree.rst
    471
    472	  for more information.
    473
    474config XARRAY_MULTI
    475	bool
    476	help
    477	  Support entries which occupy multiple consecutive indices in the
    478	  XArray.
    479
    480config ASSOCIATIVE_ARRAY
    481	bool
    482	help
    483	  Generic associative array.  Can be searched and iterated over whilst
    484	  it is being modified.  It is also reasonably quick to search and
    485	  modify.  The algorithms are non-recursive, and the trees are highly
    486	  capacious.
    487
    488	  See:
    489
    490		Documentation/core-api/assoc_array.rst
    491
    492	  for more information.
    493
    494config HAS_IOMEM
    495	bool
    496	depends on !NO_IOMEM
    497	default y
    498
    499config HAS_IOPORT_MAP
    500	bool
    501	depends on HAS_IOMEM && !NO_IOPORT_MAP
    502	default y
    503
    504source "kernel/dma/Kconfig"
    505
    506config SGL_ALLOC
    507	bool
    508	default n
    509
    510config IOMMU_HELPER
    511	bool
    512
    513config CHECK_SIGNATURE
    514	bool
    515
    516config CPUMASK_OFFSTACK
    517	bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
    518	help
    519	  Use dynamic allocation for cpumask_var_t, instead of putting
    520	  them on the stack.  This is a bit more expensive, but avoids
    521	  stack overflow.
    522
    523config CPU_RMAP
    524	bool
    525	depends on SMP
    526
    527config DQL
    528	bool
    529
    530config GLOB
    531	bool
    532#	This actually supports modular compilation, but the module overhead
    533#	is ridiculous for the amount of code involved.	Until an out-of-tree
    534#	driver asks for it, we'll just link it directly it into the kernel
    535#	when required.  Since we're ignoring out-of-tree users,	there's also
    536#	no need bother prompting for a manual decision:
    537#	prompt "glob_match() function"
    538	help
    539	  This option provides a glob_match function for performing
    540	  simple text pattern matching.  It originated in the ATA code
    541	  to blacklist particular drive models, but other device drivers
    542	  may need similar functionality.
    543
    544	  All drivers in the Linux kernel tree that require this function
    545	  should automatically select this option.  Say N unless you
    546	  are compiling an out-of tree driver which tells you that it
    547	  depends on this.
    548
    549config GLOB_SELFTEST
    550	tristate "glob self-test on init"
    551	depends on GLOB
    552	help
    553	  This option enables a simple self-test of the glob_match
    554	  function on startup.	It is primarily useful for people
    555	  working on the code to ensure they haven't introduced any
    556	  regressions.
    557
    558	  It only adds a little bit of code and slows kernel boot (or
    559	  module load) by a small amount, so you're welcome to play with
    560	  it, but you probably don't need it.
    561
    562#
    563# Netlink attribute parsing support is select'ed if needed
    564#
    565config NLATTR
    566	bool
    567
    568#
    569# Generic 64-bit atomic support is selected if needed
    570#
    571config GENERIC_ATOMIC64
    572       bool
    573
    574config LRU_CACHE
    575	tristate
    576
    577config CLZ_TAB
    578	bool
    579
    580config IRQ_POLL
    581	bool "IRQ polling library"
    582	help
    583	  Helper library to poll interrupt mitigation using polling.
    584
    585config MPILIB
    586	tristate
    587	select CLZ_TAB
    588	help
    589	  Multiprecision maths library from GnuPG.
    590	  It is used to implement RSA digital signature verification,
    591	  which is used by IMA/EVM digital signature extension.
    592
    593config SIGNATURE
    594	tristate
    595	depends on KEYS
    596	select CRYPTO
    597	select CRYPTO_SHA1
    598	select MPILIB
    599	help
    600	  Digital signature verification. Currently only RSA is supported.
    601	  Implementation is done using GnuPG MPI library
    602
    603config DIMLIB
    604	bool
    605	help
    606	  Dynamic Interrupt Moderation library.
    607	  Implements an algorithm for dynamically changing CQ moderation values
    608	  according to run time performance.
    609
    610#
    611# libfdt files, only selected if needed.
    612#
    613config LIBFDT
    614	bool
    615
    616config OID_REGISTRY
    617	tristate
    618	help
    619	  Enable fast lookup object identifier registry.
    620
    621config UCS2_STRING
    622	tristate
    623
    624#
    625# generic vdso
    626#
    627source "lib/vdso/Kconfig"
    628
    629source "lib/fonts/Kconfig"
    630
    631config SG_SPLIT
    632	def_bool n
    633	help
    634	 Provides a helper to split scatterlists into chunks, each chunk being
    635	 a scatterlist. This should be selected by a driver or an API which
    636	 whishes to split a scatterlist amongst multiple DMA channels.
    637
    638config SG_POOL
    639	def_bool n
    640	help
    641	 Provides a helper to allocate chained scatterlists. This should be
    642	 selected by a driver or an API which whishes to allocate chained
    643	 scatterlist.
    644
    645#
    646# sg chaining option
    647#
    648
    649config ARCH_NO_SG_CHAIN
    650	def_bool n
    651
    652config ARCH_HAS_PMEM_API
    653	bool
    654
    655config MEMREGION
    656	bool
    657
    658config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
    659	bool
    660
    661# use memcpy to implement user copies for nommu architectures
    662config UACCESS_MEMCPY
    663	bool
    664
    665config ARCH_HAS_UACCESS_FLUSHCACHE
    666	bool
    667
    668# arch has a concept of a recoverable synchronous exception due to a
    669# memory-read error like x86 machine-check or ARM data-abort, and
    670# implements copy_mc_to_{user,kernel} to abort and report
    671# 'bytes-transferred' if that exception fires when accessing the source
    672# buffer.
    673config ARCH_HAS_COPY_MC
    674	bool
    675
    676# Temporary. Goes away when all archs are cleaned up
    677config ARCH_STACKWALK
    678       bool
    679
    680config STACKDEPOT
    681	bool
    682	select STACKTRACE
    683
    684config STACKDEPOT_ALWAYS_INIT
    685	bool
    686	select STACKDEPOT
    687
    688config STACK_HASH_ORDER
    689	int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
    690	range 12 20
    691	default 20
    692	depends on STACKDEPOT
    693	help
    694	 Select the hash size as a power of 2 for the stackdepot hash table.
    695	 Choose a lower value to reduce the memory impact.
    696
    697config REF_TRACKER
    698	bool
    699	depends on STACKTRACE_SUPPORT
    700	select STACKDEPOT
    701
    702config SBITMAP
    703	bool
    704
    705config PARMAN
    706	tristate "parman" if COMPILE_TEST
    707
    708config OBJAGG
    709	tristate "objagg" if COMPILE_TEST
    710
    711endmenu
    712
    713config GENERIC_IOREMAP
    714	bool
    715
    716config GENERIC_LIB_ASHLDI3
    717	bool
    718
    719config GENERIC_LIB_ASHRDI3
    720	bool
    721
    722config GENERIC_LIB_LSHRDI3
    723	bool
    724
    725config GENERIC_LIB_MULDI3
    726	bool
    727
    728config GENERIC_LIB_CMPDI2
    729	bool
    730
    731config GENERIC_LIB_UCMPDI2
    732	bool
    733
    734config GENERIC_LIB_DEVMEM_IS_ALLOWED
    735	bool
    736
    737config PLDMFW
    738	bool
    739	default n
    740
    741config ASN1_ENCODER
    742       tristate
    743
    744config POLYNOMIAL
    745       tristate