]> Git Repo - linux.git/blob - drivers/char/hw_random/Kconfig
Linux 6.14-rc3
[linux.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 || COMPILE_TEST) && 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 || COMPILE_TEST)
54         depends on PCI && HAS_IOPORT_MAP
55         default HW_RANDOM
56         help
57           This driver provides kernel-side support for the Random Number
58           Generator hardware found on AMD 76x-based motherboards.
59
60           To compile this driver as a module, choose M here: the
61           module will be called amd-rng.
62
63           If unsure, say Y.
64
65 config HW_RANDOM_AIROHA
66         tristate "Airoha True HW Random Number Generator support"
67         depends on ARCH_AIROHA || COMPILE_TEST
68         default HW_RANDOM
69         help
70           This driver provides kernel-side support for the True Random Number
71           Generator hardware found on Airoha SoC.
72
73           To compile this driver as a module, choose M here: the
74           module will be called airoha-rng.
75
76           If unsure, say Y.
77
78 config HW_RANDOM_ATMEL
79         tristate "Atmel Random Number Generator support"
80         depends on (ARCH_AT91 || COMPILE_TEST)
81         default HW_RANDOM
82         help
83           This driver provides kernel-side support for the Random Number
84           Generator hardware found on Atmel AT91 devices.
85
86           To compile this driver as a module, choose M here: the
87           module will be called atmel-rng.
88
89           If unsure, say Y.
90
91 config HW_RANDOM_BA431
92         tristate "Silex Insight BA431 Random Number Generator support"
93         depends on HAS_IOMEM
94         help
95           This driver provides kernel-side support for the Random Number
96           Generator hardware based on Silex Insight BA431 IP.
97
98           To compile this driver as a module, choose M here: the
99           module will be called ba431-rng.
100
101 config HW_RANDOM_BCM2835
102         tristate "Broadcom BCM2835/BCM63xx Random Number Generator support"
103         depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X || \
104                    ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
105         default HW_RANDOM
106         help
107           This driver provides kernel-side support for the Random Number
108           Generator hardware found on the Broadcom BCM2835 and BCM63xx SoCs.
109
110           To compile this driver as a module, choose M here: the
111           module will be called bcm2835-rng
112
113           If unsure, say Y.
114
115 config HW_RANDOM_BCM74110
116         tristate "Broadcom BCM74110 Random Number Generator support"
117         depends on ARCH_BRCMSTB || COMPILE_TEST
118         default HW_RANDOM
119         help
120           This driver provides kernel-side support for the Random Number
121           Generator hardware found on the Broadcom BCM74110 SoCs.
122
123           To compile this driver as a module, choose M here: the
124           module will be called bcm74110-rng
125
126           If unsure, say Y.
127
128 config HW_RANDOM_IPROC_RNG200
129         tristate "Broadcom iProc/STB RNG200 support"
130         depends on ARCH_BCM_IPROC || ARCH_BCM2835 || ARCH_BCMBCA || ARCH_BRCMSTB || COMPILE_TEST
131         default HW_RANDOM
132         help
133           This driver provides kernel-side support for the RNG200
134           hardware found on the Broadcom iProc and STB SoCs.
135
136           To compile this driver as a module, choose M here: the
137           module will be called iproc-rng200
138
139           If unsure, say Y.
140
141 config HW_RANDOM_GEODE
142         tristate "AMD Geode HW Random Number Generator support"
143         depends on (X86_32 || COMPILE_TEST)
144         depends on PCI
145         default HW_RANDOM
146         help
147           This driver provides kernel-side support for the Random Number
148           Generator hardware found on the AMD Geode LX.
149
150           To compile this driver as a module, choose M here: the
151           module will be called geode-rng.
152
153           If unsure, say Y.
154
155 config HW_RANDOM_N2RNG
156         tristate "Niagara2 Random Number Generator support"
157         depends on SPARC64
158         default HW_RANDOM
159         help
160           This driver provides kernel-side support for the Random Number
161           Generator hardware found on Niagara2 cpus.
162
163           To compile this driver as a module, choose M here: the
164           module will be called n2-rng.
165
166           If unsure, say Y.
167
168 config HW_RANDOM_VIA
169         tristate "VIA HW Random Number Generator support"
170         depends on X86
171         default HW_RANDOM
172         help
173           This driver provides kernel-side support for the Random Number
174           Generator hardware found on VIA based motherboards.
175
176           To compile this driver as a module, choose M here: the
177           module will be called via-rng.
178
179           If unsure, say Y.
180
181 config HW_RANDOM_IXP4XX
182         tristate "Intel IXP4xx NPU HW Pseudo-Random Number Generator support"
183         depends on ARCH_IXP4XX || COMPILE_TEST
184         default HW_RANDOM
185         help
186           This driver provides kernel-side support for the Pseudo-Random
187           Number Generator hardware found on the Intel IXP45x/46x NPU.
188
189           To compile this driver as a module, choose M here: the
190           module will be called ixp4xx-rng.
191
192           If unsure, say Y.
193
194 config HW_RANDOM_OMAP
195         tristate "OMAP Random Number Generator support"
196         depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || ARCH_MVEBU || ARCH_K3 || COMPILE_TEST
197         default HW_RANDOM
198         help
199           This driver provides kernel-side support for the Random Number
200           Generator hardware found on OMAP16xx, OMAP2/3/4/5, AM33xx/AM43xx
201           multimedia processors, and Marvell Armada 7k/8k SoCs.
202
203           To compile this driver as a module, choose M here: the
204           module will be called omap-rng.
205
206           If unsure, say Y.
207
208 config HW_RANDOM_OMAP3_ROM
209         tristate "OMAP3 ROM Random Number Generator support"
210         depends on ARCH_OMAP3 || COMPILE_TEST
211         default HW_RANDOM
212         help
213           This driver provides kernel-side support for the Random Number
214           Generator hardware found on OMAP34xx processors.
215
216           To compile this driver as a module, choose M here: the
217           module will be called omap3-rom-rng.
218
219           If unsure, say Y.
220
221 config HW_RANDOM_OCTEON
222         tristate "Octeon Random Number Generator support"
223         depends on CAVIUM_OCTEON_SOC
224         default HW_RANDOM
225         help
226           This driver provides kernel-side support for the Random Number
227           Generator hardware found on Octeon processors.
228
229           To compile this driver as a module, choose M here: the
230           module will be called octeon-rng.
231
232           If unsure, say Y.
233
234 config HW_RANDOM_PASEMI
235         tristate "PA Semi HW Random Number Generator support"
236         depends on PPC_PASEMI || (PPC && COMPILE_TEST)
237         default HW_RANDOM
238         help
239           This driver provides kernel-side support for the Random Number
240           Generator hardware found on PA Semi PWRficient SoCs.
241
242           To compile this driver as a module, choose M here: the
243           module will be called pasemi-rng.
244
245           If unsure, say Y.
246
247 config HW_RANDOM_VIRTIO
248         tristate "VirtIO Random Number Generator support"
249         depends on VIRTIO
250         help
251           This driver provides kernel-side support for the virtual Random Number
252           Generator hardware.
253
254           To compile this driver as a module, choose M here: the
255           module will be called virtio-rng.  If unsure, say N.
256
257 config HW_RANDOM_MXC_RNGA
258         tristate "Freescale i.MX RNGA Random Number Generator"
259         depends on SOC_IMX31 || COMPILE_TEST
260         default HW_RANDOM
261         help
262           This driver provides kernel-side support for the Random Number
263           Generator hardware found on Freescale i.MX processors.
264
265           To compile this driver as a module, choose M here: the
266           module will be called mxc-rnga.
267
268           If unsure, say Y.
269
270 config HW_RANDOM_IMX_RNGC
271         tristate "Freescale i.MX RNGC Random Number Generator"
272         depends on HAS_IOMEM
273         depends on SOC_IMX25 || SOC_IMX6SL || SOC_IMX6SLL || SOC_IMX6UL || COMPILE_TEST
274         default HW_RANDOM
275         help
276           This driver provides kernel-side support for the Random Number
277           Generator Version C hardware found on some Freescale i.MX
278           processors. Version B is also supported by this driver.
279
280           To compile this driver as a module, choose M here: the
281           module will be called imx-rngc.
282
283           If unsure, say Y.
284
285 config HW_RANDOM_INGENIC_RNG
286         tristate "Ingenic Random Number Generator support"
287         depends on MACH_JZ4780 || MACH_X1000 || COMPILE_TEST
288         default HW_RANDOM
289         help
290           This driver provides kernel-side support for the Random Number Generator
291           hardware found in ingenic JZ4780 and X1000 SoC. MIPS Creator CI20 uses
292           JZ4780 SoC, YSH & ATIL CU1000-Neo uses X1000 SoC.
293
294           To compile this driver as a module, choose M here: the
295           module will be called ingenic-rng.
296
297           If unsure, say Y.
298
299 config HW_RANDOM_INGENIC_TRNG
300         tristate "Ingenic True Random Number Generator support"
301         depends on MACH_X1830 || COMPILE_TEST
302         default HW_RANDOM
303         help
304           This driver provides kernel-side support for the True Random Number Generator
305           hardware found in ingenic X1830 SoC. YSH & ATIL CU1830-Neo uses X1830 SoC.
306
307           To compile this driver as a module, choose M here: the
308           module will be called ingenic-trng.
309
310           If unsure, say Y.
311
312 config HW_RANDOM_NOMADIK
313         tristate "ST-Ericsson Nomadik Random Number Generator support"
314         depends on ARCH_NOMADIK || COMPILE_TEST
315         default HW_RANDOM
316         help
317           This driver provides kernel-side support for the Random Number
318           Generator hardware found on ST-Ericsson SoCs (8815 and 8500).
319
320           To compile this driver as a module, choose M here: the
321           module will be called nomadik-rng.
322
323           If unsure, say Y.
324
325 config HW_RANDOM_PSERIES
326         tristate "pSeries HW Random Number Generator support"
327         depends on PPC64 && IBMVIO
328         default HW_RANDOM
329         help
330           This driver provides kernel-side support for the Random Number
331           Generator hardware found on POWER7+ machines and above
332
333           To compile this driver as a module, choose M here: the
334           module will be called pseries-rng.
335
336           If unsure, say Y.
337
338 config HW_RANDOM_POWERNV
339         tristate "PowerNV Random Number Generator support"
340         depends on PPC_POWERNV
341         default HW_RANDOM
342         help
343           This is the driver for Random Number Generator hardware found
344           in POWER7+ and above machines for PowerNV platform.
345
346           To compile this driver as a module, choose M here: the
347           module will be called powernv-rng.
348
349           If unsure, say Y.
350
351 config HW_RANDOM_HISI
352         tristate "Hisilicon Random Number Generator support"
353         depends on ARCH_HISI || COMPILE_TEST
354         default HW_RANDOM
355         help
356           This driver provides kernel-side support for the Random Number
357           Generator hardware found on Hisilicon Hip04 and Hip05 SoC.
358
359           To compile this driver as a module, choose M here: the
360           module will be called hisi-rng.
361
362           If unsure, say Y.
363
364 config HW_RANDOM_HISTB
365         tristate "Hisilicon STB Random Number Generator support"
366         depends on ARCH_HISI || COMPILE_TEST
367         default ARCH_HISI
368         help
369           This driver provides kernel-side support for the Random Number
370           Generator hardware found on Hisilicon Hi37xx SoC.
371
372           To compile this driver as a module, choose M here: the
373           module will be called histb-rng.
374
375 config HW_RANDOM_ST
376         tristate "ST Microelectronics HW Random Number Generator support"
377         depends on ARCH_STI || COMPILE_TEST
378         help
379           This driver provides kernel-side support for the Random Number
380           Generator hardware found on STi series of SoCs.
381
382           To compile this driver as a module, choose M here: the
383           module will be called st-rng.
384
385 config HW_RANDOM_XGENE
386         tristate "APM X-Gene True Random Number Generator (TRNG) support"
387         depends on ARCH_XGENE || COMPILE_TEST
388         default HW_RANDOM
389         help
390           This driver provides kernel-side support for the Random Number
391           Generator hardware found on APM X-Gene SoC.
392
393           To compile this driver as a module, choose M here: the
394           module will be called xgene_rng.
395
396           If unsure, say Y.
397
398 config HW_RANDOM_STM32
399         tristate "STMicroelectronics STM32 random number generator"
400         depends on ARCH_STM32 || COMPILE_TEST
401         depends on HAS_IOMEM
402         default HW_RANDOM
403         help
404           This driver provides kernel-side support for the Random Number
405           Generator hardware found on STM32 microcontrollers.
406
407           To compile this driver as a module, choose M here: the
408           module will be called stm32-rng.
409
410           If unsure, say N.
411
412 config HW_RANDOM_PIC32
413         tristate "Microchip PIC32 Random Number Generator support"
414         depends on MACH_PIC32 || COMPILE_TEST
415         default HW_RANDOM if MACH_PIC32
416         help
417           This driver provides kernel-side support for the Random Number
418           Generator hardware found on a PIC32.
419
420           To compile this driver as a module, choose M here. the
421           module will be called pic32-rng.
422
423           If unsure, say Y.
424
425 config HW_RANDOM_POLARFIRE_SOC
426         tristate "Microchip PolarFire SoC Random Number Generator support"
427         depends on HW_RANDOM && POLARFIRE_SOC_SYS_CTRL
428         help
429           This driver provides kernel-side support for the Random Number
430           Generator hardware found on PolarFire SoC (MPFS).
431
432           To compile this driver as a module, choose M here. The
433           module will be called mfps_rng.
434
435           If unsure, say N.
436
437
438 config HW_RANDOM_MESON
439         tristate "Amlogic Meson Random Number Generator support"
440         depends on ARCH_MESON || COMPILE_TEST
441         depends on HAS_IOMEM && OF
442         default HW_RANDOM if ARCH_MESON
443         help
444           This driver provides kernel-side support for the Random Number
445           Generator hardware found on Amlogic Meson SoCs.
446
447           To compile this driver as a module, choose M here. the
448           module will be called meson-rng.
449
450           If unsure, say Y.
451
452 config HW_RANDOM_CAVIUM
453         tristate "Cavium ThunderX Random Number Generator support"
454         depends on PCI
455         depends on ARCH_THUNDER || (ARM64 && COMPILE_TEST)
456         default HW_RANDOM
457         help
458           This driver provides kernel-side support for the Random Number
459           Generator hardware found on Cavium SoCs.
460
461           To compile this driver as a module, choose M here: the
462           module will be called cavium_rng.
463
464           If unsure, say Y.
465
466 config HW_RANDOM_MTK
467         tristate "Mediatek Random Number Generator support"
468         depends on ARCH_MEDIATEK || COMPILE_TEST
469         depends on HAS_IOMEM && OF
470         default HW_RANDOM if ARCH_MEDIATEK
471         help
472           This driver provides kernel-side support for the Random Number
473           Generator hardware found on Mediatek SoCs.
474
475           To compile this driver as a module, choose M here. the
476           module will be called mtk-rng.
477
478           If unsure, say Y.
479
480 config HW_RANDOM_S390
481         tristate "S390 True Random Number Generator support"
482         depends on S390
483         default HW_RANDOM
484         help
485           This driver provides kernel-side support for the True
486           Random Number Generator available as CPACF extension
487           on modern s390 hardware platforms.
488
489           To compile this driver as a module, choose M here: the
490           module will be called s390-trng.
491
492           If unsure, say Y.
493
494 config HW_RANDOM_EXYNOS
495         tristate "Samsung Exynos True Random Number Generator support"
496         depends on ARCH_EXYNOS || COMPILE_TEST
497         depends on HAS_IOMEM
498         default HW_RANDOM if ARCH_EXYNOS
499         help
500           This driver provides support for the True Random Number
501           Generator available in Exynos SoCs.
502
503           To compile this driver as a module, choose M here: the module
504           will be called exynos-trng.
505
506           If unsure, say Y.
507
508 config HW_RANDOM_OPTEE
509         tristate "OP-TEE based Random Number Generator support"
510         depends on OPTEE
511         default HW_RANDOM
512         help
513           This  driver provides support for OP-TEE based Random Number
514           Generator on ARM SoCs where hardware entropy sources are not
515           accessible to normal world (Linux).
516
517           To compile this driver as a module, choose M here: the module
518           will be called optee-rng.
519
520           If unsure, say Y.
521
522 config HW_RANDOM_NPCM
523         tristate "NPCM Random Number Generator support"
524         depends on ARCH_NPCM || COMPILE_TEST
525         depends on HAS_IOMEM
526         default HW_RANDOM if ARCH_NPCM
527         help
528           This driver provides support for the Random Number
529           Generator hardware available in Nuvoton NPCM SoCs.
530
531           To compile this driver as a module, choose M here: the
532           module will be called npcm-rng.
533
534           If unsure, say Y.
535
536 config HW_RANDOM_KEYSTONE
537         depends on ARCH_KEYSTONE || COMPILE_TEST
538         depends on HAS_IOMEM && OF
539         default HW_RANDOM
540         tristate "TI Keystone NETCP SA Hardware random number generator"
541         help
542           This option enables Keystone's hardware random generator.
543
544 config HW_RANDOM_CCTRNG
545         tristate "Arm CryptoCell True Random Number Generator support"
546         depends on HAS_IOMEM && OF
547         help
548           Say 'Y' to enable the True Random Number Generator driver for the
549           Arm TrustZone CryptoCell family of processors.
550           Currently the CryptoCell 713 and 703 are supported.
551           The driver is supported only in SoC where Trusted Execution
552           Environment is not used.
553           Choose 'M' to compile this driver as a module. The module
554           will be called cctrng.
555           If unsure, say 'N'.
556
557 config HW_RANDOM_XIPHERA
558         tristate "Xiphera FPGA based True Random Number Generator support"
559         depends on HAS_IOMEM
560         help
561           This driver provides kernel-side support for Xiphera True Random
562           Number Generator Intellectual Property Core.
563
564           To compile this driver as a module, choose M here: the
565           module will be called xiphera-trng.
566
567 config HW_RANDOM_ARM_SMCCC_TRNG
568         tristate "Arm SMCCC TRNG firmware interface support"
569         depends on HAVE_ARM_SMCCC_DISCOVERY
570         default HW_RANDOM
571         help
572           Say 'Y' to enable the True Random Number Generator driver using
573           the Arm SMCCC TRNG firmware interface. This reads entropy from
574           higher exception levels (firmware, hypervisor). Uses SMCCC for
575           communicating with the firmware:
576           https://developer.arm.com/documentation/den0098/latest/
577
578           To compile this driver as a module, choose M here: the
579           module will be called arm_smccc_trng.
580
581 config HW_RANDOM_CN10K
582        tristate "Marvell CN10K Random Number Generator support"
583        depends on HW_RANDOM && PCI && (ARM64 || (64BIT && COMPILE_TEST))
584        default HW_RANDOM if ARCH_THUNDER
585        help
586          This driver provides support for the True Random Number
587          generator available in Marvell CN10K SoCs.
588
589          To compile this driver as a module, choose M here.
590          The module will be called cn10k_rng. If unsure, say Y.
591
592 config HW_RANDOM_JH7110
593         tristate "StarFive JH7110 Random Number Generator support"
594         depends on SOC_STARFIVE || COMPILE_TEST
595         help
596           This driver provides support for the True Random Number
597           Generator in StarFive JH7110 SoCs.
598
599           To compile this driver as a module, choose M here.
600           The module will be called jh7110-trng.
601
602 config HW_RANDOM_ROCKCHIP
603         tristate "Rockchip True Random Number Generator"
604         depends on HW_RANDOM && (ARCH_ROCKCHIP || COMPILE_TEST)
605         depends on HAS_IOMEM
606         default HW_RANDOM
607         help
608           This driver provides kernel-side support for the True Random Number
609           Generator hardware found on some Rockchip SoC like RK3566 or RK3568.
610
611           To compile this driver as a module, choose M here: the
612           module will be called rockchip-rng.
613
614           If unsure, say Y.
615
616 endif # HW_RANDOM
617
618 config UML_RANDOM
619         depends on UML
620         select HW_RANDOM
621         tristate "UML Random Number Generator support"
622         help
623           This option enables UML's "hardware" random number generator.  It
624           attaches itself to the host's /dev/random, supplying as much entropy
625           as the host has, rather than the small amount the UML gets from its
626           own drivers. It registers itself as a rng-core driver thus providing
627           a device which is usually called /dev/hwrng. This hardware random
628           number generator does feed into the kernel's random number generator
629           entropy pool.
630
631           If unsure, say Y.
This page took 0.076573 seconds and 4 git commands to generate.