xref: /linux-6.15/drivers/crypto/Kconfig (revision 12376084)
1# SPDX-License-Identifier: GPL-2.0-only
2
3menuconfig CRYPTO_HW
4	bool "Hardware crypto devices"
5	default y
6	help
7	  Say Y here to get to see options for hardware crypto devices and
8	  processors. This option alone does not add any kernel code.
9
10	  If you say N, all options in this submenu will be skipped and disabled.
11
12if CRYPTO_HW
13
14source "drivers/crypto/allwinner/Kconfig"
15
16config CRYPTO_DEV_PADLOCK
17	tristate "Support for VIA PadLock ACE"
18	depends on X86 && !UML
19	help
20	  Some VIA processors come with an integrated crypto engine
21	  (so called VIA PadLock ACE, Advanced Cryptography Engine)
22	  that provides instructions for very fast cryptographic
23	  operations with supported algorithms.
24
25	  The instructions are used only when the CPU supports them.
26	  Otherwise software encryption is used.
27
28config CRYPTO_DEV_PADLOCK_AES
29	tristate "PadLock driver for AES algorithm"
30	depends on CRYPTO_DEV_PADLOCK
31	select CRYPTO_SKCIPHER
32	select CRYPTO_LIB_AES
33	help
34	  Use VIA PadLock for AES algorithm.
35
36	  Available in VIA C3 and newer CPUs.
37
38	  If unsure say M. The compiled module will be
39	  called padlock-aes.
40
41config CRYPTO_DEV_PADLOCK_SHA
42	tristate "PadLock driver for SHA1 and SHA256 algorithms"
43	depends on CRYPTO_DEV_PADLOCK
44	select CRYPTO_HASH
45	select CRYPTO_SHA1
46	select CRYPTO_SHA256
47	help
48	  Use VIA PadLock for SHA1/SHA256 algorithms.
49
50	  Available in VIA C7 and newer processors.
51
52	  If unsure say M. The compiled module will be
53	  called padlock-sha.
54
55config CRYPTO_DEV_GEODE
56	tristate "Support for the Geode LX AES engine"
57	depends on X86_32 && PCI
58	select CRYPTO_ALGAPI
59	select CRYPTO_SKCIPHER
60	help
61	  Say 'Y' here to use the AMD Geode LX processor on-board AES
62	  engine for the CryptoAPI AES algorithm.
63
64	  To compile this driver as a module, choose M here: the module
65	  will be called geode-aes.
66
67config ZCRYPT
68	tristate "Support for s390 cryptographic adapters"
69	depends on S390
70	depends on AP
71	select HW_RANDOM
72	help
73	  Select this option if you want to enable support for
74	  s390 cryptographic adapters like Crypto Express 4 up
75	  to 8 in Coprocessor (CEXxC), EP11 Coprocessor (CEXxP)
76	  or Accelerator (CEXxA) mode.
77
78config ZCRYPT_DEBUG
79	bool "Enable debug features for s390 cryptographic adapters"
80	default n
81	depends on DEBUG_KERNEL
82	depends on ZCRYPT
83	help
84	  Say 'Y' here to enable some additional debug features on the
85	  s390 cryptographic adapters driver.
86
87	  There will be some more sysfs attributes displayed for ap cards
88	  and queues and some flags on crypto requests are interpreted as
89	  debugging messages to force error injection.
90
91	  Do not enable on production level kernel build.
92
93	  If unsure, say N.
94
95config PKEY
96	tristate "Kernel API for protected key handling"
97	depends on S390
98	depends on ZCRYPT
99	help
100	  With this option enabled the pkey kernel module provides an API
101	  for creation and handling of protected keys. Other parts of the
102	  kernel or userspace applications may use these functions.
103
104	  Select this option if you want to enable the kernel and userspace
105	  API for proteced key handling.
106
107	  Please note that creation of protected keys from secure keys
108	  requires to have at least one CEX card in coprocessor mode
109	  available at runtime.
110
111config CRYPTO_PAES_S390
112	tristate "PAES cipher algorithms"
113	depends on S390
114	depends on ZCRYPT
115	depends on PKEY
116	select CRYPTO_ALGAPI
117	select CRYPTO_SKCIPHER
118	help
119	  This is the s390 hardware accelerated implementation of the
120	  AES cipher algorithms for use with protected key.
121
122	  Select this option if you want to use the paes cipher
123	  for example to use protected key encrypted devices.
124
125config S390_PRNG
126	tristate "Pseudo random number generator device driver"
127	depends on S390
128	default "m"
129	help
130	  Select this option if you want to use the s390 pseudo random number
131	  generator. The PRNG is part of the cryptographic processor functions
132	  and uses triple-DES to generate secure random numbers like the
133	  ANSI X9.17 standard. User-space programs access the
134	  pseudo-random-number device through the char device /dev/prandom.
135
136	  It is available as of z9.
137
138config CRYPTO_DEV_NIAGARA2
139	tristate "Niagara2 Stream Processing Unit driver"
140	select CRYPTO_LIB_DES
141	select CRYPTO_SKCIPHER
142	select CRYPTO_HASH
143	select CRYPTO_MD5
144	select CRYPTO_SHA1
145	select CRYPTO_SHA256
146	depends on SPARC64
147	help
148	  Each core of a Niagara2 processor contains a Stream
149	  Processing Unit, which itself contains several cryptographic
150	  sub-units.  One set provides the Modular Arithmetic Unit,
151	  used for SSL offload.  The other set provides the Cipher
152	  Group, which can perform encryption, decryption, hashing,
153	  checksumming, and raw copies.
154
155config CRYPTO_DEV_SL3516
156	tristate "Storlink SL3516 crypto offloader"
157	depends on ARCH_GEMINI || COMPILE_TEST
158	depends on HAS_IOMEM && PM
159	select CRYPTO_SKCIPHER
160	select CRYPTO_ENGINE
161	select CRYPTO_ECB
162	select CRYPTO_AES
163	select HW_RANDOM
164	help
165	  This option allows you to have support for SL3516 crypto offloader.
166
167config CRYPTO_DEV_SL3516_DEBUG
168	bool "Enable SL3516 stats"
169	depends on CRYPTO_DEV_SL3516
170	depends on DEBUG_FS
171	help
172	  Say y to enable SL3516 debug stats.
173	  This will create /sys/kernel/debug/sl3516/stats for displaying
174	  the number of requests per algorithm and other internal stats.
175
176config CRYPTO_DEV_HIFN_795X
177	tristate "Driver HIFN 795x crypto accelerator chips"
178	select CRYPTO_LIB_DES
179	select CRYPTO_SKCIPHER
180	select HW_RANDOM if CRYPTO_DEV_HIFN_795X_RNG
181	depends on PCI
182	depends on !ARCH_DMA_ADDR_T_64BIT
183	help
184	  This option allows you to have support for HIFN 795x crypto adapters.
185
186config CRYPTO_DEV_HIFN_795X_RNG
187	bool "HIFN 795x random number generator"
188	depends on CRYPTO_DEV_HIFN_795X
189	help
190	  Select this option if you want to enable the random number generator
191	  on the HIFN 795x crypto adapters.
192
193source "drivers/crypto/caam/Kconfig"
194
195config CRYPTO_DEV_TALITOS
196	tristate "Talitos Freescale Security Engine (SEC)"
197	select CRYPTO_AEAD
198	select CRYPTO_AUTHENC
199	select CRYPTO_SKCIPHER
200	select CRYPTO_HASH
201	select CRYPTO_LIB_DES
202	select HW_RANDOM
203	depends on FSL_SOC
204	help
205	  Say 'Y' here to use the Freescale Security Engine (SEC)
206	  to offload cryptographic algorithm computation.
207
208	  The Freescale SEC is present on PowerQUICC 'E' processors, such
209	  as the MPC8349E and MPC8548E.
210
211	  To compile this driver as a module, choose M here: the module
212	  will be called talitos.
213
214config CRYPTO_DEV_TALITOS1
215	bool "SEC1 (SEC 1.0 and SEC Lite 1.2)"
216	depends on CRYPTO_DEV_TALITOS
217	depends on PPC_8xx || PPC_82xx
218	default y
219	help
220	  Say 'Y' here to use the Freescale Security Engine (SEC) version 1.0
221	  found on MPC82xx or the Freescale Security Engine (SEC Lite)
222	  version 1.2 found on MPC8xx
223
224config CRYPTO_DEV_TALITOS2
225	bool "SEC2+ (SEC version 2.0 or upper)"
226	depends on CRYPTO_DEV_TALITOS
227	default y if !PPC_8xx
228	help
229	  Say 'Y' here to use the Freescale Security Engine (SEC)
230	  version 2 and following as found on MPC83xx, MPC85xx, etc ...
231
232config CRYPTO_DEV_PPC4XX
233	tristate "Driver AMCC PPC4xx crypto accelerator"
234	depends on PPC && 4xx
235	select CRYPTO_HASH
236	select CRYPTO_AEAD
237	select CRYPTO_AES
238	select CRYPTO_LIB_AES
239	select CRYPTO_CCM
240	select CRYPTO_CTR
241	select CRYPTO_GCM
242	select CRYPTO_SKCIPHER
243	help
244	  This option allows you to have support for AMCC crypto acceleration.
245
246config HW_RANDOM_PPC4XX
247	bool "PowerPC 4xx generic true random number generator support"
248	depends on CRYPTO_DEV_PPC4XX && HW_RANDOM=y
249	default y
250	help
251	 This option provides the kernel-side support for the TRNG hardware
252	 found in the security function of some PowerPC 4xx SoCs.
253
254config CRYPTO_DEV_OMAP
255	tristate "Support for OMAP crypto HW accelerators"
256	depends on ARCH_OMAP2PLUS
257	help
258	  OMAP processors have various crypto HW accelerators. Select this if
259	  you want to use the OMAP modules for any of the crypto algorithms.
260
261if CRYPTO_DEV_OMAP
262
263config CRYPTO_DEV_OMAP_SHAM
264	tristate "Support for OMAP MD5/SHA1/SHA2 hw accelerator"
265	depends on ARCH_OMAP2PLUS
266	select CRYPTO_ENGINE
267	select CRYPTO_SHA1
268	select CRYPTO_MD5
269	select CRYPTO_SHA256
270	select CRYPTO_SHA512
271	select CRYPTO_HMAC
272	help
273	  OMAP processors have MD5/SHA1/SHA2 hw accelerator. Select this if you
274	  want to use the OMAP module for MD5/SHA1/SHA2 algorithms.
275
276config CRYPTO_DEV_OMAP_AES
277	tristate "Support for OMAP AES hw engine"
278	depends on ARCH_OMAP2 || ARCH_OMAP3 || ARCH_OMAP2PLUS
279	select CRYPTO_AES
280	select CRYPTO_SKCIPHER
281	select CRYPTO_ENGINE
282	select CRYPTO_CBC
283	select CRYPTO_ECB
284	select CRYPTO_CTR
285	select CRYPTO_AEAD
286	help
287	  OMAP processors have AES module accelerator. Select this if you
288	  want to use the OMAP module for AES algorithms.
289
290config CRYPTO_DEV_OMAP_DES
291	tristate "Support for OMAP DES/3DES hw engine"
292	depends on ARCH_OMAP2PLUS
293	select CRYPTO_LIB_DES
294	select CRYPTO_SKCIPHER
295	select CRYPTO_ENGINE
296	help
297	  OMAP processors have DES/3DES module accelerator. Select this if you
298	  want to use the OMAP module for DES and 3DES algorithms. Currently
299	  the ECB and CBC modes of operation are supported by the driver. Also
300	  accesses made on unaligned boundaries are supported.
301
302endif # CRYPTO_DEV_OMAP
303
304config CRYPTO_DEV_SAHARA
305	tristate "Support for SAHARA crypto accelerator"
306	depends on ARCH_MXC && OF
307	select CRYPTO_SKCIPHER
308	select CRYPTO_AES
309	select CRYPTO_ECB
310	select CRYPTO_ENGINE
311	help
312	  This option enables support for the SAHARA HW crypto accelerator
313	  found in some Freescale i.MX chips.
314
315config CRYPTO_DEV_EXYNOS_RNG
316	tristate "Exynos HW pseudo random number generator support"
317	depends on ARCH_EXYNOS || COMPILE_TEST
318	depends on HAS_IOMEM
319	select CRYPTO_RNG
320	help
321	  This driver provides kernel-side support through the
322	  cryptographic API for the pseudo random number generator hardware
323	  found on Exynos SoCs.
324
325	  To compile this driver as a module, choose M here: the
326	  module will be called exynos-rng.
327
328	  If unsure, say Y.
329
330config CRYPTO_DEV_S5P
331	tristate "Support for Samsung S5PV210/Exynos crypto accelerator"
332	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
333	depends on HAS_IOMEM
334	select CRYPTO_AES
335	select CRYPTO_SKCIPHER
336	help
337	  This option allows you to have support for S5P crypto acceleration.
338	  Select this to offload Samsung S5PV210 or S5PC110, Exynos from AES
339	  algorithms execution.
340
341config CRYPTO_DEV_EXYNOS_HASH
342	bool "Support for Samsung Exynos HASH accelerator"
343	depends on CRYPTO_DEV_S5P
344	depends on !CRYPTO_DEV_EXYNOS_RNG && CRYPTO_DEV_EXYNOS_RNG!=m
345	select CRYPTO_SHA1
346	select CRYPTO_MD5
347	select CRYPTO_SHA256
348	help
349	  Select this to offload Exynos from HASH MD5/SHA1/SHA256.
350	  This will select software SHA1, MD5 and SHA256 as they are
351	  needed for small and zero-size messages.
352	  HASH algorithms will be disabled if EXYNOS_RNG
353	  is enabled due to hw conflict.
354
355config CRYPTO_DEV_NX
356	bool "Support for IBM PowerPC Nest (NX) cryptographic acceleration"
357	depends on PPC64
358	help
359	  This enables support for the NX hardware cryptographic accelerator
360	  coprocessor that is in IBM PowerPC P7+ or later processors.  This
361	  does not actually enable any drivers, it only allows you to select
362	  which acceleration type (encryption and/or compression) to enable.
363
364if CRYPTO_DEV_NX
365	source "drivers/crypto/nx/Kconfig"
366endif
367
368config CRYPTO_DEV_ATMEL_AUTHENC
369	bool "Support for Atmel IPSEC/SSL hw accelerator"
370	depends on ARCH_AT91 || COMPILE_TEST
371	depends on CRYPTO_DEV_ATMEL_AES
372	help
373	  Some Atmel processors can combine the AES and SHA hw accelerators
374	  to enhance support of IPSEC/SSL.
375	  Select this if you want to use the Atmel modules for
376	  authenc(hmac(shaX),Y(cbc)) algorithms.
377
378config CRYPTO_DEV_ATMEL_AES
379	tristate "Support for Atmel AES hw accelerator"
380	depends on ARCH_AT91 || COMPILE_TEST
381	select CRYPTO_AES
382	select CRYPTO_AEAD
383	select CRYPTO_SKCIPHER
384	select CRYPTO_AUTHENC if CRYPTO_DEV_ATMEL_AUTHENC
385	select CRYPTO_DEV_ATMEL_SHA if CRYPTO_DEV_ATMEL_AUTHENC
386	help
387	  Some Atmel processors have AES hw accelerator.
388	  Select this if you want to use the Atmel module for
389	  AES algorithms.
390
391	  To compile this driver as a module, choose M here: the module
392	  will be called atmel-aes.
393
394config CRYPTO_DEV_ATMEL_TDES
395	tristate "Support for Atmel DES/TDES hw accelerator"
396	depends on ARCH_AT91 || COMPILE_TEST
397	select CRYPTO_LIB_DES
398	select CRYPTO_SKCIPHER
399	help
400	  Some Atmel processors have DES/TDES hw accelerator.
401	  Select this if you want to use the Atmel module for
402	  DES/TDES algorithms.
403
404	  To compile this driver as a module, choose M here: the module
405	  will be called atmel-tdes.
406
407config CRYPTO_DEV_ATMEL_SHA
408	tristate "Support for Atmel SHA hw accelerator"
409	depends on ARCH_AT91 || COMPILE_TEST
410	select CRYPTO_HASH
411	help
412	  Some Atmel processors have SHA1/SHA224/SHA256/SHA384/SHA512
413	  hw accelerator.
414	  Select this if you want to use the Atmel module for
415	  SHA1/SHA224/SHA256/SHA384/SHA512 algorithms.
416
417	  To compile this driver as a module, choose M here: the module
418	  will be called atmel-sha.
419
420config CRYPTO_DEV_ATMEL_I2C
421	tristate
422	select BITREVERSE
423
424config CRYPTO_DEV_ATMEL_ECC
425	tristate "Support for Microchip / Atmel ECC hw accelerator"
426	depends on I2C
427	select CRYPTO_DEV_ATMEL_I2C
428	select CRYPTO_ECDH
429	select CRC16
430	help
431	  Microhip / Atmel ECC hw accelerator.
432	  Select this if you want to use the Microchip / Atmel module for
433	  ECDH algorithm.
434
435	  To compile this driver as a module, choose M here: the module
436	  will be called atmel-ecc.
437
438config CRYPTO_DEV_ATMEL_SHA204A
439	tristate "Support for Microchip / Atmel SHA accelerator and RNG"
440	depends on I2C
441	select CRYPTO_DEV_ATMEL_I2C
442	select HW_RANDOM
443	select CRC16
444	help
445	  Microhip / Atmel SHA accelerator and RNG.
446	  Select this if you want to use the Microchip / Atmel SHA204A
447	  module as a random number generator. (Other functions of the
448	  chip are currently not exposed by this driver)
449
450	  To compile this driver as a module, choose M here: the module
451	  will be called atmel-sha204a.
452
453config CRYPTO_DEV_CCP
454	bool "Support for AMD Secure Processor"
455	depends on ((X86 && PCI) || (ARM64 && (OF_ADDRESS || ACPI))) && HAS_IOMEM
456	help
457	  The AMD Secure Processor provides support for the Cryptographic Coprocessor
458	  (CCP) and the Platform Security Processor (PSP) devices.
459
460if CRYPTO_DEV_CCP
461	source "drivers/crypto/ccp/Kconfig"
462endif
463
464config CRYPTO_DEV_MXS_DCP
465	tristate "Support for Freescale MXS DCP"
466	depends on (ARCH_MXS || ARCH_MXC)
467	select STMP_DEVICE
468	select CRYPTO_CBC
469	select CRYPTO_ECB
470	select CRYPTO_AES
471	select CRYPTO_SKCIPHER
472	select CRYPTO_HASH
473	help
474	  The Freescale i.MX23/i.MX28 has SHA1/SHA256 and AES128 CBC/ECB
475	  co-processor on the die.
476
477	  To compile this driver as a module, choose M here: the module
478	  will be called mxs-dcp.
479
480source "drivers/crypto/cavium/cpt/Kconfig"
481source "drivers/crypto/cavium/nitrox/Kconfig"
482source "drivers/crypto/marvell/Kconfig"
483source "drivers/crypto/intel/Kconfig"
484
485config CRYPTO_DEV_CAVIUM_ZIP
486	tristate "Cavium ZIP driver"
487	depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
488	help
489	  Select this option if you want to enable compression/decompression
490	  acceleration on Cavium's ARM based SoCs
491
492config CRYPTO_DEV_QCE
493	tristate "Qualcomm crypto engine accelerator"
494	depends on ARCH_QCOM || COMPILE_TEST
495	depends on HAS_IOMEM
496	help
497	  This driver supports Qualcomm crypto engine accelerator
498	  hardware. To compile this driver as a module, choose M here. The
499	  module will be called qcrypto.
500
501config CRYPTO_DEV_QCE_SKCIPHER
502	bool
503	depends on CRYPTO_DEV_QCE
504	select CRYPTO_AES
505	select CRYPTO_LIB_DES
506	select CRYPTO_ECB
507	select CRYPTO_CBC
508	select CRYPTO_XTS
509	select CRYPTO_CTR
510	select CRYPTO_SKCIPHER
511
512config CRYPTO_DEV_QCE_SHA
513	bool
514	depends on CRYPTO_DEV_QCE
515	select CRYPTO_SHA1
516	select CRYPTO_SHA256
517
518config CRYPTO_DEV_QCE_AEAD
519	bool
520	depends on CRYPTO_DEV_QCE
521	select CRYPTO_AUTHENC
522	select CRYPTO_LIB_DES
523
524choice
525	prompt "Algorithms enabled for QCE acceleration"
526	default CRYPTO_DEV_QCE_ENABLE_ALL
527	depends on CRYPTO_DEV_QCE
528	help
529	  This option allows to choose whether to build support for all algorithms
530	  (default), hashes-only, or skciphers-only.
531
532	  The QCE engine does not appear to scale as well as the CPU to handle
533	  multiple crypto requests.  While the ipq40xx chips have 4-core CPUs, the
534	  QCE handles only 2 requests in parallel.
535
536	  Ipsec throughput seems to improve when disabling either family of
537	  algorithms, sharing the load with the CPU.  Enabling skciphers-only
538	  appears to work best.
539
540	config CRYPTO_DEV_QCE_ENABLE_ALL
541		bool "All supported algorithms"
542		select CRYPTO_DEV_QCE_SKCIPHER
543		select CRYPTO_DEV_QCE_SHA
544		select CRYPTO_DEV_QCE_AEAD
545		help
546		  Enable all supported algorithms:
547			- AES (CBC, CTR, ECB, XTS)
548			- 3DES (CBC, ECB)
549			- DES (CBC, ECB)
550			- SHA1, HMAC-SHA1
551			- SHA256, HMAC-SHA256
552
553	config CRYPTO_DEV_QCE_ENABLE_SKCIPHER
554		bool "Symmetric-key ciphers only"
555		select CRYPTO_DEV_QCE_SKCIPHER
556		help
557		  Enable symmetric-key ciphers only:
558			- AES (CBC, CTR, ECB, XTS)
559			- 3DES (ECB, CBC)
560			- DES (ECB, CBC)
561
562	config CRYPTO_DEV_QCE_ENABLE_SHA
563		bool "Hash/HMAC only"
564		select CRYPTO_DEV_QCE_SHA
565		help
566		  Enable hashes/HMAC algorithms only:
567			- SHA1, HMAC-SHA1
568			- SHA256, HMAC-SHA256
569
570	config CRYPTO_DEV_QCE_ENABLE_AEAD
571		bool "AEAD algorithms only"
572		select CRYPTO_DEV_QCE_AEAD
573		help
574		  Enable AEAD algorithms only:
575			- authenc()
576			- ccm(aes)
577			- rfc4309(ccm(aes))
578endchoice
579
580config CRYPTO_DEV_QCE_SW_MAX_LEN
581	int "Default maximum request size to use software for AES"
582	depends on CRYPTO_DEV_QCE && CRYPTO_DEV_QCE_SKCIPHER
583	default 512
584	help
585	  This sets the default maximum request size to perform AES requests
586	  using software instead of the crypto engine.  It can be changed by
587	  setting the aes_sw_max_len parameter.
588
589	  Small blocks are processed faster in software than hardware.
590	  Considering the 256-bit ciphers, software is 2-3 times faster than
591	  qce at 256-bytes, 30% faster at 512, and about even at 768-bytes.
592	  With 128-bit keys, the break-even point would be around 1024-bytes.
593
594	  The default is set a little lower, to 512 bytes, to balance the
595	  cost in CPU usage.  The minimum recommended setting is 16-bytes
596	  (1 AES block), since AES-GCM will fail if you set it lower.
597	  Setting this to zero will send all requests to the hardware.
598
599	  Note that 192-bit keys are not supported by the hardware and are
600	  always processed by the software fallback, and all DES requests
601	  are done by the hardware.
602
603config CRYPTO_DEV_QCOM_RNG
604	tristate "Qualcomm Random Number Generator Driver"
605	depends on ARCH_QCOM || COMPILE_TEST
606	depends on HW_RANDOM
607	select CRYPTO_RNG
608	help
609	  This driver provides support for the Random Number
610	  Generator hardware found on Qualcomm SoCs.
611
612	  To compile this driver as a module, choose M here. The
613	  module will be called qcom-rng. If unsure, say N.
614
615#config CRYPTO_DEV_VMX
616#	bool "Support for VMX cryptographic acceleration instructions"
617#	depends on PPC64 && VSX
618#	help
619#	  Support for VMX cryptographic acceleration instructions.
620#
621#source "drivers/crypto/vmx/Kconfig"
622
623config CRYPTO_DEV_IMGTEC_HASH
624	tristate "Imagination Technologies hardware hash accelerator"
625	depends on MIPS || COMPILE_TEST
626	select CRYPTO_MD5
627	select CRYPTO_SHA1
628	select CRYPTO_SHA256
629	select CRYPTO_HASH
630	help
631	  This driver interfaces with the Imagination Technologies
632	  hardware hash accelerator. Supporting MD5/SHA1/SHA224/SHA256
633	  hashing algorithms.
634
635config CRYPTO_DEV_ROCKCHIP
636	tristate "Rockchip's Cryptographic Engine driver"
637	depends on OF && ARCH_ROCKCHIP
638	depends on PM
639	select CRYPTO_ECB
640	select CRYPTO_CBC
641	select CRYPTO_DES
642	select CRYPTO_AES
643	select CRYPTO_ENGINE
644	select CRYPTO_LIB_DES
645	select CRYPTO_MD5
646	select CRYPTO_SHA1
647	select CRYPTO_SHA256
648	select CRYPTO_HASH
649	select CRYPTO_SKCIPHER
650
651	help
652	  This driver interfaces with the hardware crypto accelerator.
653	  Supporting cbc/ecb chainmode, and aes/des/des3_ede cipher mode.
654
655config CRYPTO_DEV_ROCKCHIP_DEBUG
656	bool "Enable Rockchip crypto stats"
657	depends on CRYPTO_DEV_ROCKCHIP
658	depends on DEBUG_FS
659	help
660	  Say y to enable Rockchip crypto debug stats.
661	  This will create /sys/kernel/debug/rk3288_crypto/stats for displaying
662	  the number of requests per algorithm and other internal stats.
663
664
665config CRYPTO_DEV_ZYNQMP_AES
666	tristate "Support for Xilinx ZynqMP AES hw accelerator"
667	depends on ZYNQMP_FIRMWARE || COMPILE_TEST
668	select CRYPTO_AES
669	select CRYPTO_ENGINE
670	select CRYPTO_AEAD
671	help
672	  Xilinx ZynqMP has AES-GCM engine used for symmetric key
673	  encryption and decryption. This driver interfaces with AES hw
674	  accelerator. Select this if you want to use the ZynqMP module
675	  for AES algorithms.
676
677config CRYPTO_DEV_ZYNQMP_SHA3
678	tristate "Support for Xilinx ZynqMP SHA3 hardware accelerator"
679	depends on ZYNQMP_FIRMWARE || COMPILE_TEST
680	select CRYPTO_SHA3
681	help
682	  Xilinx ZynqMP has SHA3 engine used for secure hash calculation.
683	  This driver interfaces with SHA3 hardware engine.
684	  Select this if you want to use the ZynqMP module
685	  for SHA3 hash computation.
686
687source "drivers/crypto/chelsio/Kconfig"
688
689source "drivers/crypto/virtio/Kconfig"
690
691config CRYPTO_DEV_BCM_SPU
692	tristate "Broadcom symmetric crypto/hash acceleration support"
693	depends on ARCH_BCM_IPROC
694	depends on MAILBOX
695	default m
696	select CRYPTO_AUTHENC
697	select CRYPTO_LIB_DES
698	select CRYPTO_MD5
699	select CRYPTO_SHA1
700	select CRYPTO_SHA256
701	select CRYPTO_SHA512
702	help
703	  This driver provides support for Broadcom crypto acceleration using the
704	  Secure Processing Unit (SPU). The SPU driver registers skcipher,
705	  ahash, and aead algorithms with the kernel cryptographic API.
706
707source "drivers/crypto/stm32/Kconfig"
708
709config CRYPTO_DEV_SAFEXCEL
710	tristate "Inside Secure's SafeXcel cryptographic engine driver"
711	depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM
712	select CRYPTO_LIB_AES
713	select CRYPTO_AUTHENC
714	select CRYPTO_SKCIPHER
715	select CRYPTO_LIB_DES
716	select CRYPTO_HASH
717	select CRYPTO_HMAC
718	select CRYPTO_MD5
719	select CRYPTO_SHA1
720	select CRYPTO_SHA256
721	select CRYPTO_SHA512
722	select CRYPTO_CHACHA20POLY1305
723	select CRYPTO_SHA3
724	help
725	  This driver interfaces with the SafeXcel EIP-97 and EIP-197 cryptographic
726	  engines designed by Inside Secure. It currently accelerates DES, 3DES and
727	  AES block ciphers in ECB and CBC mode, as well as SHA1, SHA224, SHA256,
728	  SHA384 and SHA512 hash algorithms for both basic hash and HMAC.
729	  Additionally, it accelerates combined AES-CBC/HMAC-SHA AEAD operations.
730
731config CRYPTO_DEV_ARTPEC6
732	tristate "Support for Axis ARTPEC-6/7 hardware crypto acceleration."
733	depends on ARM && (ARCH_ARTPEC || COMPILE_TEST)
734	depends on OF
735	select CRYPTO_AEAD
736	select CRYPTO_AES
737	select CRYPTO_ALGAPI
738	select CRYPTO_SKCIPHER
739	select CRYPTO_CTR
740	select CRYPTO_HASH
741	select CRYPTO_SHA1
742	select CRYPTO_SHA256
743	select CRYPTO_SHA512
744	help
745	  Enables the driver for the on-chip crypto accelerator
746	  of Axis ARTPEC SoCs.
747
748	  To compile this driver as a module, choose M here.
749
750config CRYPTO_DEV_CCREE
751	tristate "Support for ARM TrustZone CryptoCell family of security processors"
752	depends on CRYPTO && CRYPTO_HW && OF && HAS_DMA
753	depends on HAS_IOMEM
754	select CRYPTO_HASH
755	select CRYPTO_SKCIPHER
756	select CRYPTO_LIB_DES
757	select CRYPTO_AEAD
758	select CRYPTO_AUTHENC
759	select CRYPTO_SHA1
760	select CRYPTO_MD5
761	select CRYPTO_SHA256
762	select CRYPTO_SHA512
763	select CRYPTO_HMAC
764	select CRYPTO_AES
765	select CRYPTO_CBC
766	select CRYPTO_ECB
767	select CRYPTO_CTR
768	select CRYPTO_XTS
769	select CRYPTO_SM4_GENERIC
770	select CRYPTO_SM3_GENERIC
771	help
772	  Say 'Y' to enable a driver for the REE interface of the Arm
773	  TrustZone CryptoCell family of processors. Currently the
774	  CryptoCell 713, 703, 712, 710 and 630 are supported.
775	  Choose this if you wish to use hardware acceleration of
776	  cryptographic operations on the system REE.
777	  If unsure say Y.
778
779source "drivers/crypto/hisilicon/Kconfig"
780
781source "drivers/crypto/amlogic/Kconfig"
782
783config CRYPTO_DEV_SA2UL
784	tristate "Support for TI security accelerator"
785	depends on ARCH_K3 || COMPILE_TEST
786	select CRYPTO_AES
787	select CRYPTO_ALGAPI
788	select CRYPTO_AUTHENC
789	select CRYPTO_DES
790	select CRYPTO_SHA1
791	select CRYPTO_SHA256
792	select CRYPTO_SHA512
793	select HW_RANDOM
794	select SG_SPLIT
795	help
796	  K3 devices include a security accelerator engine that may be
797	  used for crypto offload.  Select this if you want to use hardware
798	  acceleration for cryptographic algorithms on these devices.
799
800source "drivers/crypto/aspeed/Kconfig"
801source "drivers/crypto/starfive/Kconfig"
802
803endif # CRYPTO_HW
804