]> git.ipfire.org Git - thirdparty/linux.git/blame - drivers/char/hw_random/Kconfig
Merge tag 'x86-fpu-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
[thirdparty/linux.git] / drivers / char / hw_random / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
844dd05f
MB
2#
3# Hardware Random Number Generator (RNG) configuration
4#
5
02001618 6menuconfig HW_RANDOM
fed806f4
JB
7 tristate "Hardware Random Number Generator Core support"
8 default m
844dd05f
MB
9 ---help---
10 Hardware Random Number Generator Core infrastructure.
11
fed806f4 12 To compile this driver as a module, choose M here: the
537878d2 13 module will be called rng-core. This provides a device
cb2c316b 14 that's usually called /dev/hwrng, and which exposes one
537878d2
DB
15 of possibly several hardware random number generators.
16
60f3aaee
PM
17 These hardware random number generators do feed into the
18 kernel's random number generator entropy pool.
fed806f4 19
844dd05f 20 If unsure, say Y.
ca644bd5 21
02001618
JD
22if HW_RANDOM
23
9c3c133b
AC
24config HW_RANDOM_TIMERIOMEM
25 tristate "Timer IOMEM HW Random Number Generator support"
02001618 26 depends on HAS_IOMEM
9c3c133b
AC
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
ca644bd5
MB
38config HW_RANDOM_INTEL
39 tristate "Intel HW Random Number Generator support"
02001618 40 depends on (X86 || IA64) && PCI
fed806f4 41 default HW_RANDOM
ca644bd5
MB
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.
96d63c02
MB
50
51config HW_RANDOM_AMD
52 tristate "AMD HW Random Number Generator support"
02001618 53 depends on (X86 || PPC_MAPLE) && PCI
fed806f4 54 default HW_RANDOM
96d63c02
MB
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.
ef5d8627 63
677d3e2f
PK
64config HW_RANDOM_ATMEL
65 tristate "Atmel Random Number Generator support"
4951db7e 66 depends on ARCH_AT91 && HAVE_CLK && OF
2d9cab51 67 default HW_RANDOM
677d3e2f
PK
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
8c4196a2 77config HW_RANDOM_BCM2835
8705f24f
FF
78 tristate "Broadcom BCM2835/BCM63xx Random Number Generator support"
79 depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X || \
80 ARCH_BCM_63XX || BCM63XX || BMIPS_GENERIC
8c4196a2
LR
81 default HW_RANDOM
82 ---help---
83 This driver provides kernel-side support for the Random Number
8705f24f 84 Generator hardware found on the Broadcom BCM2835 and BCM63xx SoCs.
8c4196a2
LR
85
86 To compile this driver as a module, choose M here: the
87 module will be called bcm2835-rng
88
89 If unsure, say Y.
553072b2 90
c83d45d5 91config HW_RANDOM_IPROC_RNG200
c3577f61 92 tristate "Broadcom iProc/STB RNG200 support"
0f95b09a 93 depends on ARCH_BCM_IPROC || ARCH_BCM2835 || ARCH_BRCMSTB
c83d45d5
SB
94 default HW_RANDOM
95 ---help---
96 This driver provides kernel-side support for the RNG200
c3577f61 97 hardware found on the Broadcom iProc and STB SoCs.
c83d45d5
SB
98
99 To compile this driver as a module, choose M here: the
100 module will be called iproc-rng200
101
102 If unsure, say Y.
103
ef5d8627
MB
104config HW_RANDOM_GEODE
105 tristate "AMD Geode HW Random Number Generator support"
02001618 106 depends on X86_32 && PCI
fed806f4 107 default HW_RANDOM
ef5d8627
MB
108 ---help---
109 This driver provides kernel-side support for the Random Number
110 Generator hardware found on the AMD Geode LX.
111
112 To compile this driver as a module, choose M here: the
113 module will be called geode-rng.
114
115 If unsure, say Y.
13523363 116
ce087150
DM
117config HW_RANDOM_N2RNG
118 tristate "Niagara2 Random Number Generator support"
02001618 119 depends on SPARC64
ce087150
DM
120 default HW_RANDOM
121 ---help---
122 This driver provides kernel-side support for the Random Number
123 Generator hardware found on Niagara2 cpus.
124
125 To compile this driver as a module, choose M here: the
126 module will be called n2-rng.
127
128 If unsure, say Y.
129
13523363
MB
130config HW_RANDOM_VIA
131 tristate "VIA HW Random Number Generator support"
02001618 132 depends on X86
fed806f4 133 default HW_RANDOM
13523363
MB
134 ---help---
135 This driver provides kernel-side support for the Random Number
136 Generator hardware found on VIA based motherboards.
137
138 To compile this driver as a module, choose M here: the
139 module will be called via-rng.
140
141 If unsure, say Y.
d7174bcb
MB
142
143config HW_RANDOM_IXP4XX
553da857 144 tristate "Intel IXP4xx NPU HW Pseudo-Random Number Generator support"
02001618 145 depends on ARCH_IXP4XX
fed806f4 146 default HW_RANDOM
d7174bcb 147 ---help---
553da857
KH
148 This driver provides kernel-side support for the Pseudo-Random
149 Number Generator hardware found on the Intel IXP45x/46x NPU.
d7174bcb
MB
150
151 To compile this driver as a module, choose M here: the
152 module will be called ixp4xx-rng.
153
154 If unsure, say Y.
ebc915ad
MB
155
156config HW_RANDOM_OMAP
157 tristate "OMAP Random Number Generator support"
38321242 158 depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || ARCH_MVEBU
fed806f4 159 default HW_RANDOM
ebc915ad
MB
160 ---help---
161 This driver provides kernel-side support for the Random Number
a9f5a62a
RK
162 Generator hardware found on OMAP16xx, OMAP2/3/4/5, AM33xx/AM43xx
163 multimedia processors, and Marvell Armada 7k/8k SoCs.
ebc915ad
MB
164
165 To compile this driver as a module, choose M here: the
166 module will be called omap-rng.
167
168 If unsure, say Y.
b8cb3448 169
1c6b7c21
PR
170config HW_RANDOM_OMAP3_ROM
171 tristate "OMAP3 ROM Random Number Generator support"
02001618 172 depends on ARCH_OMAP3
1c6b7c21
PR
173 default HW_RANDOM
174 ---help---
175 This driver provides kernel-side support for the Random Number
176 Generator hardware found on OMAP34xx processors.
177
178 To compile this driver as a module, choose M here: the
179 module will be called omap3-rom-rng.
180
181 If unsure, say Y.
182
f7557dc8
DD
183config HW_RANDOM_OCTEON
184 tristate "Octeon Random Number Generator support"
02001618 185 depends on CAVIUM_OCTEON_SOC
f7557dc8
DD
186 default HW_RANDOM
187 ---help---
188 This driver provides kernel-side support for the Random Number
189 Generator hardware found on Octeon processors.
190
191 To compile this driver as a module, choose M here: the
192 module will be called octeon-rng.
193
194 If unsure, say Y.
195
b8cb3448
OJ
196config HW_RANDOM_PASEMI
197 tristate "PA Semi HW Random Number Generator support"
02001618 198 depends on PPC_PASEMI
b8cb3448
OJ
199 default HW_RANDOM
200 ---help---
201 This driver provides kernel-side support for the Random Number
0d08a847 202 Generator hardware found on PA Semi PWRficient SoCs.
b8cb3448
OJ
203
204 To compile this driver as a module, choose M here: the
205 module will be called pasemi-rng.
206
207 If unsure, say Y.
208
f7f510ec
RR
209config HW_RANDOM_VIRTIO
210 tristate "VirtIO Random Number Generator support"
02001618 211 depends on VIRTIO
f7f510ec
RR
212 ---help---
213 This driver provides kernel-side support for the virtual Random Number
214 Generator hardware.
215
216 To compile this driver as a module, choose M here: the
217 module will be called virtio-rng. If unsure, say N.
45001e92 218
049a947c
AN
219config HW_RANDOM_TX4939
220 tristate "TX4939 Random Number Generator support"
02001618 221 depends on SOC_TX4939
049a947c
AN
222 default HW_RANDOM
223 ---help---
224 This driver provides kernel-side support for the Random Number
225 Generator hardware found on TX4939 SoC.
226
227 To compile this driver as a module, choose M here: the
228 module will be called tx4939-rng.
229
230 If unsure, say Y.
231
45001e92
ACA
232config HW_RANDOM_MXC_RNGA
233 tristate "Freescale i.MX RNGA Random Number Generator"
f74bdd4c 234 depends on SOC_IMX31
2d9cab51 235 default HW_RANDOM
45001e92
ACA
236 ---help---
237 This driver provides kernel-side support for the Random Number
238 Generator hardware found on Freescale i.MX processors.
239
240 To compile this driver as a module, choose M here: the
241 module will be called mxc-rnga.
242
243 If unsure, say Y.
bc85b25e 244
1d544944
MK
245config HW_RANDOM_IMX_RNGC
246 tristate "Freescale i.MX RNGC Random Number Generator"
fcdba3c3
UKK
247 depends on HAS_IOMEM && HAVE_CLK
248 depends on SOC_IMX25 || COMPILE_TEST
1d544944
MK
249 default HW_RANDOM
250 ---help---
251 This driver provides kernel-side support for the Random Number
252 Generator Version C hardware found on some Freescale i.MX
253 processors. Version B is also supported by this driver.
254
255 To compile this driver as a module, choose M here: the
256 module will be called imx-rngc.
257
258 If unsure, say Y.
259
bc85b25e
AR
260config HW_RANDOM_NOMADIK
261 tristate "ST-Ericsson Nomadik Random Number Generator support"
02001618 262 depends on ARCH_NOMADIK
2d9cab51 263 default HW_RANDOM
bc85b25e
AR
264 ---help---
265 This driver provides kernel-side support for the Random Number
266 Generator hardware found on ST-Ericsson SoCs (8815 and 8500).
267
268 To compile this driver as a module, choose M here: the
269 module will be called nomadik-rng.
270
271 If unsure, say Y.
5efb94ee 272
649e9ea0
KY
273config HW_RANDOM_PSERIES
274 tristate "pSeries HW Random Number Generator support"
02001618 275 depends on PPC64 && IBMVIO
649e9ea0
KY
276 default HW_RANDOM
277 ---help---
278 This driver provides kernel-side support for the Random Number
279 Generator hardware found on POWER7+ machines and above
280
281 To compile this driver as a module, choose M here: the
282 module will be called pseries-rng.
283
284 If unsure, say Y.
b329669e 285
66548e40
ME
286config HW_RANDOM_POWERNV
287 tristate "PowerNV Random Number Generator support"
02001618 288 depends on PPC_POWERNV
66548e40
ME
289 default HW_RANDOM
290 ---help---
291 This is the driver for Random Number Generator hardware found
292 in POWER7+ and above machines for PowerNV platform.
293
294 To compile this driver as a module, choose M here: the
295 module will be called powernv-rng.
296
297 If unsure, say Y.
298
afc39d6e
KW
299config HW_RANDOM_HISI
300 tristate "Hisilicon Random Number Generator support"
301 depends on HW_RANDOM && ARCH_HISI
302 default HW_RANDOM
303 ---help---
304 This driver provides kernel-side support for the Random Number
305 Generator hardware found on Hisilicon Hip04 and Hip05 SoC.
306
307 To compile this driver as a module, choose M here: the
308 module will be called hisi-rng.
309
310 If unsure, say Y.
311
3e90efd1
ZX
312config HW_RANDOM_HISI_V2
313 tristate "HiSilicon True Random Number Generator V2 support"
314 depends on HW_RANDOM && ARM64 && ACPI
315 default HW_RANDOM
316 help
317 This driver provides kernel-side support for the True Random Number
318 Generator V2 hardware found on HiSilicon Hi1620 SoC.
319
320 To compile this driver as a module, choose M here: the
321 module will be called hisi-trng-v2.
322
323 If unsure, say Y.
324
4a4da53c
LJ
325config HW_RANDOM_ST
326 tristate "ST Microelectronics HW Random Number Generator support"
327 depends on HW_RANDOM && ARCH_STI
328 ---help---
329 This driver provides kernel-side support for the Random Number
330 Generator hardware found on STi series of SoCs.
331
332 To compile this driver as a module, choose M here: the
333 module will be called st-rng.
334
a91ae4eb
FK
335config HW_RANDOM_XGENE
336 tristate "APM X-Gene True Random Number Generator (TRNG) support"
337 depends on HW_RANDOM && ARCH_XGENE
338 default HW_RANDOM
339 ---help---
340 This driver provides kernel-side support for the Random Number
341 Generator hardware found on APM X-Gene SoC.
342
343 To compile this driver as a module, choose M here: the
344 module will be called xgene_rng.
345
346 If unsure, say Y.
347
c6a97c42
DT
348config HW_RANDOM_STM32
349 tristate "STMicroelectronics STM32 random number generator"
350 depends on HW_RANDOM && (ARCH_STM32 || COMPILE_TEST)
625b4a98 351 depends on HAS_IOMEM
af513781 352 default HW_RANDOM
c6a97c42
DT
353 help
354 This driver provides kernel-side support for the Random Number
355 Generator hardware found on STM32 microcontrollers.
356
357 To compile this driver as a module, choose M here: the
358 module will be called stm32-rng.
359
360 If unsure, say N.
361
730d02e2
JH
362config HW_RANDOM_PIC32
363 tristate "Microchip PIC32 Random Number Generator support"
364 depends on HW_RANDOM && MACH_PIC32
365 default y
366 ---help---
367 This driver provides kernel-side support for the Random Number
368 Generator hardware found on a PIC32.
369
370 To compile this driver as a module, choose M here. the
371 module will be called pic32-rng.
372
373 If unsure, say Y.
374
e123be16
NA
375config HW_RANDOM_MESON
376 tristate "Amlogic Meson Random Number Generator support"
377 depends on HW_RANDOM
378 depends on ARCH_MESON || COMPILE_TEST
379 default y
380 ---help---
381 This driver provides kernel-side support for the Random Number
382 Generator hardware found on Amlogic Meson SoCs.
383
384 To compile this driver as a module, choose M here. the
385 module will be called meson-rng.
386
387 If unsure, say Y.
388
cc2f1908 389config HW_RANDOM_CAVIUM
599ea01c
KK
390 tristate "Cavium ThunderX Random Number Generator support"
391 depends on HW_RANDOM && PCI && (ARM64 || (COMPILE_TEST && 64BIT))
392 default HW_RANDOM
393 ---help---
394 This driver provides kernel-side support for the Random Number
395 Generator hardware found on Cavium SoCs.
cc2f1908 396
599ea01c
KK
397 To compile this driver as a module, choose M here: the
398 module will be called cavium_rng.
cc2f1908 399
599ea01c 400 If unsure, say Y.
cc2f1908 401
7701d1ff
SW
402config HW_RANDOM_MTK
403 tristate "Mediatek Random Number Generator support"
404 depends on HW_RANDOM
405 depends on ARCH_MEDIATEK || COMPILE_TEST
406 default y
407 ---help---
408 This driver provides kernel-side support for the Random Number
409 Generator hardware found on Mediatek SoCs.
410
411 To compile this driver as a module, choose M here. the
412 module will be called mtk-rng.
413
414 If unsure, say Y.
415
bbcb478e
HF
416config HW_RANDOM_S390
417 tristate "S390 True Random Number Generator support"
418 depends on S390
419 default HW_RANDOM
420 ---help---
421 This driver provides kernel-side support for the True
422 Random Number Generator available as CPACF extension
423 on modern s390 hardware platforms.
424
425 To compile this driver as a module, choose M here: the
426 module will be called s390-trng.
427
428 If unsure, say Y.
429
6cd225cc
ŁS
430config HW_RANDOM_EXYNOS
431 tristate "Samsung Exynos True Random Number Generator support"
432 depends on ARCH_EXYNOS || COMPILE_TEST
433 default HW_RANDOM
434 ---help---
435 This driver provides support for the True Random Number
436 Generator available in Exynos SoCs.
437
438 To compile this driver as a module, choose M here: the module
439 will be called exynos-trng.
440
441 If unsure, say Y.
5fe8b1cc
SG
442
443config HW_RANDOM_OPTEE
444 tristate "OP-TEE based Random Number Generator support"
445 depends on OPTEE
446 default HW_RANDOM
447 help
448 This driver provides support for OP-TEE based Random Number
449 Generator on ARM SoCs where hardware entropy sources are not
450 accessible to normal world (Linux).
451
452 To compile this driver as a module, choose M here: the module
453 will be called optee-rng.
454
455 If unsure, say Y.
456
c9842929
TM
457config HW_RANDOM_NPCM
458 tristate "NPCM Random Number Generator support"
459 depends on ARCH_NPCM || COMPILE_TEST
460 default HW_RANDOM
461 help
462 This driver provides support for the Random Number
463 Generator hardware available in Nuvoton NPCM SoCs.
464
465 To compile this driver as a module, choose M here: the
466 module will be called npcm-rng.
467
468 If unsure, say Y.
469
ace74b62
RD
470config HW_RANDOM_KEYSTONE
471 depends on ARCH_KEYSTONE || COMPILE_TEST
472 default HW_RANDOM
473 tristate "TI Keystone NETCP SA Hardware random number generator"
474 help
475 This option enables Keystone's hardware random generator.
476
a583ed31
HG
477config HW_RANDOM_CCTRNG
478 tristate "Arm CryptoCell True Random Number Generator support"
34d47aab 479 depends on HAS_IOMEM && OF
a583ed31 480 help
3e37f04f
HG
481 Say 'Y' to enable the True Random Number Generator driver for the
482 Arm TrustZone CryptoCell family of processors.
483 Currently the CryptoCell 713 and 703 are supported.
484 The driver is supported only in SoC where Trusted Execution
485 Environment is not used.
486 Choose 'M' to compile this driver as a module. The module
a583ed31 487 will be called cctrng.
3e37f04f 488 If unsure, say 'N'.
a583ed31 489
02001618
JD
490endif # HW_RANDOM
491
dc64ef00
JD
492config UML_RANDOM
493 depends on UML
494 tristate "Hardware random number generator"
495 help
496 This option enables UML's "hardware" random number generator. It
497 attaches itself to the host's /dev/random, supplying as much entropy
498 as the host has, rather than the small amount the UML gets from its
499 own drivers. It registers itself as a standard hardware random number
500 generator, major 10, minor 183, and the canonical device name is
501 /dev/hwrng.
502 The way to make use of this is to install the rng-tools package
503 (check your distro, or download from
504 http://sourceforge.net/projects/gkernel/). rngd periodically reads
505 /dev/hwrng and injects the entropy into /dev/random.