GNU Linux-libre 5.10.153-gnu1
[releases.git] / drivers / char / hw_random / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Hardware Random Number Generator (RNG) configuration
4 #
5
6 menuconfig HW_RANDOM
7         tristate "Hardware Random Number Generator Core support"
8         default m
9         help
10           Hardware Random Number Generator Core infrastructure.
11
12           To compile this driver as a module, choose M here: the
13           module will be called rng-core.  This provides a device
14           that's usually called /dev/hwrng, and which exposes one
15           of possibly several hardware random number generators.
16
17           These hardware random number generators do feed into the
18           kernel's random number generator entropy pool.
19
20           If unsure, say Y.
21
22 if HW_RANDOM
23
24 config HW_RANDOM_TIMERIOMEM
25         tristate "Timer IOMEM HW Random Number Generator support"
26         depends on HAS_IOMEM
27         help
28           This driver provides kernel-side support for a generic Random
29           Number Generator used by reading a 'dumb' iomem address that
30           is to be read no faster than, for example, once a second;
31           the default FPGA bitstream on the TS-7800 has such functionality.
32
33           To compile this driver as a module, choose M here: the
34           module will be called timeriomem-rng.
35
36           If unsure, say Y.
37
38 config HW_RANDOM_INTEL
39         tristate "Intel HW Random Number Generator support"
40         depends on (X86 || IA64) && PCI
41         default HW_RANDOM
42         help
43           This driver provides kernel-side support for the Random Number
44           Generator hardware found on Intel i8xx-based motherboards.
45
46           To compile this driver as a module, choose M here: the
47           module will be called intel-rng.
48
49           If unsure, say Y.
50
51 config HW_RANDOM_AMD
52         tristate "AMD HW Random Number Generator support"
53         depends on (X86 || PPC_MAPLE) && PCI
54         default HW_RANDOM
55         help
56           This driver provides kernel-side support for the Random Number
57           Generator hardware found on AMD 76x-based motherboards.
58
59           To compile this driver as a module, choose M here: the
60           module will be called amd-rng.
61
62           If unsure, say Y.
63
64 config HW_RANDOM_ATMEL
65         tristate "Atmel Random Number Generator support"
66         depends on ARCH_AT91 && HAVE_CLK && OF
67         default HW_RANDOM
68         help
69           This driver provides kernel-side support for the Random Number
70           Generator hardware found on Atmel AT91 devices.
71
72           To compile this driver as a module, choose M here: the
73           module will be called atmel-rng.
74
75           If unsure, say Y.
76
77 config HW_RANDOM_BA431
78         tristate "Silex Insight BA431 Random Number Generator support"
79         depends on HAS_IOMEM
80         help
81           This driver provides kernel-side support for the Random Number
82           Generator hardware based on Silex Insight BA431 IP.
83
84           To compile this driver as a module, choose M here: the
85           module will be called ba431-rng.
86
87 config HW_RANDOM_BCM2835
88         tristate "Broadcom BCM2835/BCM63xx Random Number Generator support"
89         depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X || \
90                    ARCH_BCM_63XX || BCM63XX || BMIPS_GENERIC
91         default HW_RANDOM
92         help
93           This driver provides kernel-side support for the Random Number
94           Generator hardware found on the Broadcom BCM2835 and BCM63xx SoCs.
95
96           To compile this driver as a module, choose M here: the
97           module will be called bcm2835-rng
98
99           If unsure, say Y.
100
101 config HW_RANDOM_IPROC_RNG200
102         tristate "Broadcom iProc/STB RNG200 support"
103         depends on ARCH_BCM_IPROC || ARCH_BCM2835 || ARCH_BRCMSTB
104         default HW_RANDOM
105         help
106           This driver provides kernel-side support for the RNG200
107           hardware found on the Broadcom iProc and STB SoCs.
108
109           To compile this driver as a module, choose M here: the
110           module will be called iproc-rng200
111
112           If unsure, say Y.
113
114 config HW_RANDOM_GEODE
115         tristate "AMD Geode HW Random Number Generator support"
116         depends on X86_32 && PCI
117         default HW_RANDOM
118         help
119           This driver provides kernel-side support for the Random Number
120           Generator hardware found on the AMD Geode LX.
121
122           To compile this driver as a module, choose M here: the
123           module will be called geode-rng.
124
125           If unsure, say Y.
126
127 config HW_RANDOM_N2RNG
128         tristate "Niagara2 Random Number Generator support"
129         depends on SPARC64
130         default HW_RANDOM
131         help
132           This driver provides kernel-side support for the Random Number
133           Generator hardware found on Niagara2 cpus.
134
135           To compile this driver as a module, choose M here: the
136           module will be called n2-rng.
137
138           If unsure, say Y.
139
140 config HW_RANDOM_VIA
141         tristate "VIA HW Random Number Generator support"
142         depends on X86
143         default HW_RANDOM
144         help
145           This driver provides kernel-side support for the Random Number
146           Generator hardware found on VIA based motherboards.
147
148           To compile this driver as a module, choose M here: the
149           module will be called via-rng.
150
151           If unsure, say Y.
152
153 config HW_RANDOM_IXP4XX
154         tristate "Intel IXP4xx NPU HW Pseudo-Random Number Generator support"
155         depends on ARCH_IXP4XX
156         default HW_RANDOM
157         help
158           This driver provides kernel-side support for the Pseudo-Random
159           Number Generator hardware found on the Intel IXP45x/46x NPU.
160
161           To compile this driver as a module, choose M here: the
162           module will be called ixp4xx-rng.
163
164           If unsure, say Y.
165
166 config HW_RANDOM_OMAP
167         tristate "OMAP Random Number Generator support"
168         depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || ARCH_MVEBU
169         default HW_RANDOM
170         help
171           This driver provides kernel-side support for the Random Number
172           Generator hardware found on OMAP16xx, OMAP2/3/4/5, AM33xx/AM43xx
173           multimedia processors, and Marvell Armada 7k/8k SoCs.
174
175           To compile this driver as a module, choose M here: the
176           module will be called omap-rng.
177
178           If unsure, say Y.
179
180 config HW_RANDOM_OMAP3_ROM
181         tristate "OMAP3 ROM Random Number Generator support"
182         depends on ARCH_OMAP3
183         default HW_RANDOM
184         help
185           This driver provides kernel-side support for the Random Number
186           Generator hardware found on OMAP34xx processors.
187
188           To compile this driver as a module, choose M here: the
189           module will be called omap3-rom-rng.
190
191           If unsure, say Y.
192
193 config HW_RANDOM_OCTEON
194         tristate "Octeon Random Number Generator support"
195         depends on CAVIUM_OCTEON_SOC
196         default HW_RANDOM
197         help
198           This driver provides kernel-side support for the Random Number
199           Generator hardware found on Octeon processors.
200
201           To compile this driver as a module, choose M here: the
202           module will be called octeon-rng.
203
204           If unsure, say Y.
205
206 config HW_RANDOM_PASEMI
207         tristate "PA Semi HW Random Number Generator support"
208         depends on PPC_PASEMI
209         default HW_RANDOM
210         help
211           This driver provides kernel-side support for the Random Number
212           Generator hardware found on PA Semi PWRficient SoCs.
213
214           To compile this driver as a module, choose M here: the
215           module will be called pasemi-rng.
216
217           If unsure, say Y.
218
219 config HW_RANDOM_VIRTIO
220         tristate "VirtIO Random Number Generator support"
221         depends on VIRTIO
222         help
223           This driver provides kernel-side support for the virtual Random Number
224           Generator hardware.
225
226           To compile this driver as a module, choose M here: the
227           module will be called virtio-rng.  If unsure, say N.
228
229 config HW_RANDOM_TX4939
230         tristate "TX4939 Random Number Generator support"
231         depends on SOC_TX4939
232         default HW_RANDOM
233         help
234           This driver provides kernel-side support for the Random Number
235           Generator hardware found on TX4939 SoC.
236
237           To compile this driver as a module, choose M here: the
238           module will be called tx4939-rng.
239
240           If unsure, say Y.
241
242 config HW_RANDOM_MXC_RNGA
243         tristate "Freescale i.MX RNGA Random Number Generator"
244         depends on SOC_IMX31
245         default HW_RANDOM
246         help
247           This driver provides kernel-side support for the Random Number
248           Generator hardware found on Freescale i.MX processors.
249
250           To compile this driver as a module, choose M here: the
251           module will be called mxc-rnga.
252
253           If unsure, say Y.
254
255 config HW_RANDOM_IMX_RNGC
256         tristate "Freescale i.MX RNGC Random Number Generator"
257         depends on HAS_IOMEM && HAVE_CLK
258         depends on SOC_IMX25 || SOC_IMX6SL || SOC_IMX6SLL || SOC_IMX6UL || COMPILE_TEST
259         default HW_RANDOM
260         help
261           This driver provides kernel-side support for the Random Number
262           Generator Version C hardware found on some Freescale i.MX
263           processors. Version B is also supported by this driver.
264
265           To compile this driver as a module, choose M here: the
266           module will be called imx-rngc.
267
268           If unsure, say Y.
269
270 config HW_RANDOM_INGENIC_RNG
271         tristate "Ingenic Random Number Generator support"
272         depends on HW_RANDOM
273         depends on MACH_JZ4780 || MACH_X1000
274         default HW_RANDOM
275         help
276           This driver provides kernel-side support for the Random Number Generator
277           hardware found in ingenic JZ4780 and X1000 SoC. MIPS Creator CI20 uses
278           JZ4780 SoC, YSH & ATIL CU1000-Neo uses X1000 SoC.
279
280           To compile this driver as a module, choose M here: the
281           module will be called ingenic-rng.
282
283           If unsure, say Y.
284
285 config HW_RANDOM_INGENIC_TRNG
286         tristate "Ingenic True Random Number Generator support"
287         depends on HW_RANDOM
288         depends on MACH_X1830
289         default HW_RANDOM
290         help
291           This driver provides kernel-side support for the True Random Number Generator
292           hardware found in ingenic X1830 SoC. YSH & ATIL CU1830-Neo uses X1830 SoC.
293
294           To compile this driver as a module, choose M here: the
295           module will be called ingenic-trng.
296
297           If unsure, say Y.
298
299 config HW_RANDOM_NOMADIK
300         tristate "ST-Ericsson Nomadik Random Number Generator support"
301         depends on ARCH_NOMADIK
302         default HW_RANDOM
303         help
304           This driver provides kernel-side support for the Random Number
305           Generator hardware found on ST-Ericsson SoCs (8815 and 8500).
306
307           To compile this driver as a module, choose M here: the
308           module will be called nomadik-rng.
309
310           If unsure, say Y.
311
312 config HW_RANDOM_PSERIES
313         tristate "pSeries HW Random Number Generator support"
314         depends on PPC64 && IBMVIO
315         default HW_RANDOM
316         help
317           This driver provides kernel-side support for the Random Number
318           Generator hardware found on POWER7+ machines and above
319
320           To compile this driver as a module, choose M here: the
321           module will be called pseries-rng.
322
323           If unsure, say Y.
324
325 config HW_RANDOM_POWERNV
326         tristate "PowerNV Random Number Generator support"
327         depends on PPC_POWERNV
328         default HW_RANDOM
329         help
330           This is the driver for Random Number Generator hardware found
331           in POWER7+ and above machines for PowerNV platform.
332
333           To compile this driver as a module, choose M here: the
334           module will be called powernv-rng.
335
336           If unsure, say Y.
337
338 config HW_RANDOM_HISI
339         tristate "Hisilicon Random Number Generator support"
340         depends on HW_RANDOM && ARCH_HISI
341         default HW_RANDOM
342         help
343           This driver provides kernel-side support for the Random Number
344           Generator hardware found on Hisilicon Hip04 and Hip05 SoC.
345
346           To compile this driver as a module, choose M here: the
347           module will be called hisi-rng.
348
349           If unsure, say Y.
350
351 config HW_RANDOM_HISI_V2
352         tristate "HiSilicon True Random Number Generator V2 support"
353         depends on HW_RANDOM && ARM64 && ACPI
354         default HW_RANDOM
355         help
356           This driver provides kernel-side support for the True Random Number
357           Generator V2 hardware found on HiSilicon Hi1620 SoC.
358
359           To compile this driver as a module, choose M here: the
360           module will be called hisi-trng-v2.
361
362           If unsure, say Y.
363
364 config HW_RANDOM_ST
365         tristate "ST Microelectronics HW Random Number Generator support"
366         depends on HW_RANDOM && ARCH_STI
367         help
368           This driver provides kernel-side support for the Random Number
369           Generator hardware found on STi series of SoCs.
370
371           To compile this driver as a module, choose M here: the
372           module will be called st-rng.
373
374 config HW_RANDOM_XGENE
375         tristate "APM X-Gene True Random Number Generator (TRNG) support"
376         depends on HW_RANDOM && ARCH_XGENE
377         default HW_RANDOM
378         help
379           This driver provides kernel-side support for the Random Number
380           Generator hardware found on APM X-Gene SoC.
381
382           To compile this driver as a module, choose M here: the
383           module will be called xgene_rng.
384
385           If unsure, say Y.
386
387 config HW_RANDOM_STM32
388         tristate "STMicroelectronics STM32 random number generator"
389         depends on HW_RANDOM && (ARCH_STM32 || COMPILE_TEST)
390         depends on HAS_IOMEM
391         default HW_RANDOM
392         help
393           This driver provides kernel-side support for the Random Number
394           Generator hardware found on STM32 microcontrollers.
395
396           To compile this driver as a module, choose M here: the
397           module will be called stm32-rng.
398
399           If unsure, say N.
400
401 config HW_RANDOM_PIC32
402         tristate "Microchip PIC32 Random Number Generator support"
403         depends on HW_RANDOM && MACH_PIC32
404         default y
405         help
406           This driver provides kernel-side support for the Random Number
407           Generator hardware found on a PIC32.
408
409           To compile this driver as a module, choose M here. the
410           module will be called pic32-rng.
411
412           If unsure, say Y.
413
414 config HW_RANDOM_MESON
415         tristate "Amlogic Meson Random Number Generator support"
416         depends on HW_RANDOM
417         depends on ARCH_MESON || COMPILE_TEST
418         default y
419         help
420           This driver provides kernel-side support for the Random Number
421           Generator hardware found on Amlogic Meson SoCs.
422
423           To compile this driver as a module, choose M here. the
424           module will be called meson-rng.
425
426           If unsure, say Y.
427
428 config HW_RANDOM_CAVIUM
429         tristate "Cavium ThunderX Random Number Generator support"
430         depends on HW_RANDOM && PCI && ARCH_THUNDER
431         default HW_RANDOM
432         help
433           This driver provides kernel-side support for the Random Number
434           Generator hardware found on Cavium SoCs.
435
436           To compile this driver as a module, choose M here: the
437           module will be called cavium_rng.
438
439           If unsure, say Y.
440
441 config HW_RANDOM_MTK
442         tristate "Mediatek Random Number Generator support"
443         depends on HW_RANDOM
444         depends on ARCH_MEDIATEK || COMPILE_TEST
445         default y
446         help
447           This driver provides kernel-side support for the Random Number
448           Generator hardware found on Mediatek SoCs.
449
450           To compile this driver as a module, choose M here. the
451           module will be called mtk-rng.
452
453           If unsure, say Y.
454
455 config HW_RANDOM_S390
456         tristate "S390 True Random Number Generator support"
457         depends on S390
458         default HW_RANDOM
459         help
460           This driver provides kernel-side support for the True
461           Random Number Generator available as CPACF extension
462           on modern s390 hardware platforms.
463
464           To compile this driver as a module, choose M here: the
465           module will be called s390-trng.
466
467           If unsure, say Y.
468
469 config HW_RANDOM_EXYNOS
470         tristate "Samsung Exynos True Random Number Generator support"
471         depends on ARCH_EXYNOS || COMPILE_TEST
472         default HW_RANDOM
473         help
474           This driver provides support for the True Random Number
475           Generator available in Exynos SoCs.
476
477           To compile this driver as a module, choose M here: the module
478           will be called exynos-trng.
479
480           If unsure, say Y.
481
482 config HW_RANDOM_OPTEE
483         tristate "OP-TEE based Random Number Generator support"
484         depends on OPTEE
485         default HW_RANDOM
486         help
487           This  driver provides support for OP-TEE based Random Number
488           Generator on ARM SoCs where hardware entropy sources are not
489           accessible to normal world (Linux).
490
491           To compile this driver as a module, choose M here: the module
492           will be called optee-rng.
493
494           If unsure, say Y.
495
496 config HW_RANDOM_NPCM
497         tristate "NPCM Random Number Generator support"
498         depends on ARCH_NPCM || COMPILE_TEST
499         default HW_RANDOM
500         help
501           This driver provides support for the Random Number
502           Generator hardware available in Nuvoton NPCM SoCs.
503
504           To compile this driver as a module, choose M here: the
505           module will be called npcm-rng.
506
507           If unsure, say Y.
508
509 config HW_RANDOM_KEYSTONE
510         depends on ARCH_KEYSTONE || COMPILE_TEST
511         default HW_RANDOM
512         tristate "TI Keystone NETCP SA Hardware random number generator"
513         help
514           This option enables Keystone's hardware random generator.
515
516 config HW_RANDOM_CCTRNG
517         tristate "Arm CryptoCell True Random Number Generator support"
518         depends on HAS_IOMEM && OF
519         help
520           Say 'Y' to enable the True Random Number Generator driver for the
521           Arm TrustZone CryptoCell family of processors.
522           Currently the CryptoCell 713 and 703 are supported.
523           The driver is supported only in SoC where Trusted Execution
524           Environment is not used.
525           Choose 'M' to compile this driver as a module. The module
526           will be called cctrng.
527           If unsure, say 'N'.
528
529 config HW_RANDOM_XIPHERA
530         tristate "Xiphera FPGA based True Random Number Generator support"
531         depends on HAS_IOMEM
532         help
533           This driver provides kernel-side support for Xiphera True Random
534           Number Generator Intellectual Property Core.
535
536           To compile this driver as a module, choose M here: the
537           module will be called xiphera-trng.
538
539 endif # HW_RANDOM
540
541 config UML_RANDOM
542         depends on UML
543         select HW_RANDOM
544         tristate "UML Random Number Generator support"
545         help
546           This option enables UML's "hardware" random number generator.  It
547           attaches itself to the host's /dev/random, supplying as much entropy
548           as the host has, rather than the small amount the UML gets from its
549           own drivers. It registers itself as a rng-core driver thus providing
550           a device which is usually called /dev/hwrng. This hardware random
551           number generator does feed into the kernel's random number generator
552           entropy pool.
553
554           If unsure, say Y.