WIP FPC-III support
[linux/fpc-iii.git] / drivers / char / hw_random / Kconfig
blob1fe006f3f12fab71f8d59dd4f6e979d8fcd26844
1 # SPDX-License-Identifier: GPL-2.0-only
3 # Hardware Random Number Generator (RNG) configuration
6 menuconfig HW_RANDOM
7         tristate "Hardware Random Number Generator Core support"
8         default m
9         help
10           Hardware Random Number Generator Core infrastructure.
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.
17           These hardware random number generators do feed into the
18           kernel's random number generator entropy pool.
20           If unsure, say Y.
22 if HW_RANDOM
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.
33           To compile this driver as a module, choose M here: the
34           module will be called timeriomem-rng.
36           If unsure, say Y.
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.
46           To compile this driver as a module, choose M here: the
47           module will be called intel-rng.
49           If unsure, say Y.
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.
59           To compile this driver as a module, choose M here: the
60           module will be called amd-rng.
62           If unsure, say Y.
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.
72           To compile this driver as a module, choose M here: the
73           module will be called atmel-rng.
75           If unsure, say Y.
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.
84           To compile this driver as a module, choose M here: the
85           module will be called ba431-rng.
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.
96           To compile this driver as a module, choose M here: the
97           module will be called bcm2835-rng
99           If unsure, say Y.
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.
109           To compile this driver as a module, choose M here: the
110           module will be called iproc-rng200
112           If unsure, say Y.
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.
122           To compile this driver as a module, choose M here: the
123           module will be called geode-rng.
125           If unsure, say Y.
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.
135           To compile this driver as a module, choose M here: the
136           module will be called n2-rng.
138           If unsure, say Y.
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.
148           To compile this driver as a module, choose M here: the
149           module will be called via-rng.
151           If unsure, say Y.
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.
161           To compile this driver as a module, choose M here: the
162           module will be called ixp4xx-rng.
164           If unsure, say Y.
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.
175           To compile this driver as a module, choose M here: the
176           module will be called omap-rng.
178           If unsure, say Y.
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.
188           To compile this driver as a module, choose M here: the
189           module will be called omap3-rom-rng.
191           If unsure, say Y.
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.
201           To compile this driver as a module, choose M here: the
202           module will be called octeon-rng.
204           If unsure, say Y.
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.
214           To compile this driver as a module, choose M here: the
215           module will be called pasemi-rng.
217           If unsure, say Y.
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.
226           To compile this driver as a module, choose M here: the
227           module will be called virtio-rng.  If unsure, say N.
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.
237           To compile this driver as a module, choose M here: the
238           module will be called tx4939-rng.
240           If unsure, say Y.
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.
250           To compile this driver as a module, choose M here: the
251           module will be called mxc-rnga.
253           If unsure, say Y.
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.
265           To compile this driver as a module, choose M here: the
266           module will be called imx-rngc.
268           If unsure, say Y.
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.
280           To compile this driver as a module, choose M here: the
281           module will be called ingenic-rng.
283           If unsure, say Y.
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.
294           To compile this driver as a module, choose M here: the
295           module will be called ingenic-trng.
297           If unsure, say Y.
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).
307           To compile this driver as a module, choose M here: the
308           module will be called nomadik-rng.
310           If unsure, say Y.
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
320           To compile this driver as a module, choose M here: the
321           module will be called pseries-rng.
323           If unsure, say Y.
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.
333           To compile this driver as a module, choose M here: the
334           module will be called powernv-rng.
336           If unsure, say Y.
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.
346           To compile this driver as a module, choose M here: the
347           module will be called hisi-rng.
349           If unsure, say Y.
351 config HW_RANDOM_ST
352         tristate "ST Microelectronics HW Random Number Generator support"
353         depends on HW_RANDOM && ARCH_STI
354         help
355           This driver provides kernel-side support for the Random Number
356           Generator hardware found on STi series of SoCs.
358           To compile this driver as a module, choose M here: the
359           module will be called st-rng.
361 config HW_RANDOM_XGENE
362         tristate "APM X-Gene True Random Number Generator (TRNG) support"
363         depends on HW_RANDOM && ARCH_XGENE
364         default HW_RANDOM
365         help
366           This driver provides kernel-side support for the Random Number
367           Generator hardware found on APM X-Gene SoC.
369           To compile this driver as a module, choose M here: the
370           module will be called xgene_rng.
372           If unsure, say Y.
374 config HW_RANDOM_STM32
375         tristate "STMicroelectronics STM32 random number generator"
376         depends on HW_RANDOM && (ARCH_STM32 || COMPILE_TEST)
377         depends on HAS_IOMEM
378         default HW_RANDOM
379         help
380           This driver provides kernel-side support for the Random Number
381           Generator hardware found on STM32 microcontrollers.
383           To compile this driver as a module, choose M here: the
384           module will be called stm32-rng.
386           If unsure, say N.
388 config HW_RANDOM_PIC32
389         tristate "Microchip PIC32 Random Number Generator support"
390         depends on HW_RANDOM && MACH_PIC32
391         default y
392         help
393           This driver provides kernel-side support for the Random Number
394           Generator hardware found on a PIC32.
396           To compile this driver as a module, choose M here. the
397           module will be called pic32-rng.
399           If unsure, say Y.
401 config HW_RANDOM_MESON
402         tristate "Amlogic Meson Random Number Generator support"
403         depends on HW_RANDOM
404         depends on ARCH_MESON || COMPILE_TEST
405         default y
406         help
407           This driver provides kernel-side support for the Random Number
408           Generator hardware found on Amlogic Meson SoCs.
410           To compile this driver as a module, choose M here. the
411           module will be called meson-rng.
413           If unsure, say Y.
415 config HW_RANDOM_CAVIUM
416         tristate "Cavium ThunderX Random Number Generator support"
417         depends on HW_RANDOM && PCI && (ARM64 || (COMPILE_TEST && 64BIT))
418         default HW_RANDOM
419         help
420           This driver provides kernel-side support for the Random Number
421           Generator hardware found on Cavium SoCs.
423           To compile this driver as a module, choose M here: the
424           module will be called cavium_rng.
426           If unsure, say Y.
428 config HW_RANDOM_MTK
429         tristate "Mediatek Random Number Generator support"
430         depends on HW_RANDOM
431         depends on ARCH_MEDIATEK || COMPILE_TEST
432         default y
433         help
434           This driver provides kernel-side support for the Random Number
435           Generator hardware found on Mediatek SoCs.
437           To compile this driver as a module, choose M here. the
438           module will be called mtk-rng.
440           If unsure, say Y.
442 config HW_RANDOM_S390
443         tristate "S390 True Random Number Generator support"
444         depends on S390
445         default HW_RANDOM
446         help
447           This driver provides kernel-side support for the True
448           Random Number Generator available as CPACF extension
449           on modern s390 hardware platforms.
451           To compile this driver as a module, choose M here: the
452           module will be called s390-trng.
454           If unsure, say Y.
456 config HW_RANDOM_EXYNOS
457         tristate "Samsung Exynos True Random Number Generator support"
458         depends on ARCH_EXYNOS || COMPILE_TEST
459         default HW_RANDOM
460         help
461           This driver provides support for the True Random Number
462           Generator available in Exynos SoCs.
464           To compile this driver as a module, choose M here: the module
465           will be called exynos-trng.
467           If unsure, say Y.
469 config HW_RANDOM_OPTEE
470         tristate "OP-TEE based Random Number Generator support"
471         depends on OPTEE
472         default HW_RANDOM
473         help
474           This  driver provides support for OP-TEE based Random Number
475           Generator on ARM SoCs where hardware entropy sources are not
476           accessible to normal world (Linux).
478           To compile this driver as a module, choose M here: the module
479           will be called optee-rng.
481           If unsure, say Y.
483 config HW_RANDOM_NPCM
484         tristate "NPCM Random Number Generator support"
485         depends on ARCH_NPCM || COMPILE_TEST
486         default HW_RANDOM
487         help
488           This driver provides support for the Random Number
489           Generator hardware available in Nuvoton NPCM SoCs.
491           To compile this driver as a module, choose M here: the
492           module will be called npcm-rng.
494           If unsure, say Y.
496 config HW_RANDOM_KEYSTONE
497         depends on ARCH_KEYSTONE || COMPILE_TEST
498         depends on HAS_IOMEM && OF
499         default HW_RANDOM
500         tristate "TI Keystone NETCP SA Hardware random number generator"
501         help
502           This option enables Keystone's hardware random generator.
504 config HW_RANDOM_CCTRNG
505         tristate "Arm CryptoCell True Random Number Generator support"
506         depends on HAS_IOMEM && OF
507         help
508           Say 'Y' to enable the True Random Number Generator driver for the
509           Arm TrustZone CryptoCell family of processors.
510           Currently the CryptoCell 713 and 703 are supported.
511           The driver is supported only in SoC where Trusted Execution
512           Environment is not used.
513           Choose 'M' to compile this driver as a module. The module
514           will be called cctrng.
515           If unsure, say 'N'.
517 config HW_RANDOM_XIPHERA
518         tristate "Xiphera FPGA based True Random Number Generator support"
519         depends on HAS_IOMEM
520         help
521           This driver provides kernel-side support for Xiphera True Random
522           Number Generator Intellectual Property Core.
524           To compile this driver as a module, choose M here: the
525           module will be called xiphera-trng.
527 endif # HW_RANDOM
529 config UML_RANDOM
530         depends on UML
531         select HW_RANDOM
532         tristate "UML Random Number Generator support"
533         help
534           This option enables UML's "hardware" random number generator.  It
535           attaches itself to the host's /dev/random, supplying as much entropy
536           as the host has, rather than the small amount the UML gets from its
537           own drivers. It registers itself as a rng-core driver thus providing
538           a device which is usually called /dev/hwrng. This hardware random
539           number generator does feed into the kernel's random number generator
540           entropy pool.
542           If unsure, say Y.