GNU Linux-libre 4.14.266-gnu1
[releases.git] / drivers / char / hw_random / Kconfig
1 #
2 # Hardware Random Number Generator (RNG) configuration
3 #
4
5 menuconfig HW_RANDOM
6         tristate "Hardware Random Number Generator Core support"
7         default m
8         ---help---
9           Hardware Random Number Generator Core infrastructure.
10
11           To compile this driver as a module, choose M here: the
12           module will be called rng-core.  This provides a device
13           that's usually called /dev/hwrng, and which exposes one
14           of possibly several hardware random number generators.
15
16           These hardware random number generators do feed into the
17           kernel's random number generator entropy pool.
18
19           If unsure, say Y.
20
21 if HW_RANDOM
22
23 config HW_RANDOM_TIMERIOMEM
24         tristate "Timer IOMEM HW Random Number Generator support"
25         depends on HAS_IOMEM
26         ---help---
27           This driver provides kernel-side support for a generic Random
28           Number Generator used by reading a 'dumb' iomem address that
29           is to be read no faster than, for example, once a second;
30           the default FPGA bitstream on the TS-7800 has such functionality.
31
32           To compile this driver as a module, choose M here: the
33           module will be called timeriomem-rng.
34
35           If unsure, say Y.
36
37 config HW_RANDOM_INTEL
38         tristate "Intel HW Random Number Generator support"
39         depends on (X86 || IA64) && PCI
40         default HW_RANDOM
41         ---help---
42           This driver provides kernel-side support for the Random Number
43           Generator hardware found on Intel i8xx-based motherboards.
44
45           To compile this driver as a module, choose M here: the
46           module will be called intel-rng.
47
48           If unsure, say Y.
49
50 config HW_RANDOM_AMD
51         tristate "AMD HW Random Number Generator support"
52         depends on (X86 || PPC_MAPLE) && PCI
53         default HW_RANDOM
54         ---help---
55           This driver provides kernel-side support for the Random Number
56           Generator hardware found on AMD 76x-based motherboards.
57
58           To compile this driver as a module, choose M here: the
59           module will be called amd-rng.
60
61           If unsure, say Y.
62
63 config HW_RANDOM_ATMEL
64         tristate "Atmel Random Number Generator support"
65         depends on ARCH_AT91 && HAVE_CLK && OF
66         default HW_RANDOM
67         ---help---
68           This driver provides kernel-side support for the Random Number
69           Generator hardware found on Atmel AT91 devices.
70
71           To compile this driver as a module, choose M here: the
72           module will be called atmel-rng.
73
74           If unsure, say Y.
75
76 config HW_RANDOM_BCM63XX
77         tristate "Broadcom BCM63xx Random Number Generator support"
78         depends on BCM63XX || BMIPS_GENERIC
79         default HW_RANDOM
80         ---help---
81           This driver provides kernel-side support for the Random Number
82           Generator hardware found on the Broadcom BCM63xx SoCs.
83
84           To compile this driver as a module, choose M here: the
85           module will be called bcm63xx-rng
86
87           If unusure, say Y.
88
89 config HW_RANDOM_BCM2835
90         tristate "Broadcom BCM2835 Random Number Generator support"
91         depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X
92         default HW_RANDOM
93         ---help---
94           This driver provides kernel-side support for the Random Number
95           Generator hardware found on the Broadcom BCM2835 SoCs.
96
97           To compile this driver as a module, choose M here: the
98           module will be called bcm2835-rng
99
100           If unsure, say Y.
101
102 config HW_RANDOM_IPROC_RNG200
103         tristate "Broadcom iProc RNG200 support"
104         depends on ARCH_BCM_IPROC
105         default HW_RANDOM
106         ---help---
107           This driver provides kernel-side support for the RNG200
108           hardware found on the Broadcom iProc SoCs.
109
110           To compile this driver as a module, choose M here: the
111           module will be called iproc-rng200
112
113           If unsure, say Y.
114
115 config HW_RANDOM_GEODE
116         tristate "AMD Geode HW Random Number Generator support"
117         depends on X86_32 && PCI
118         default HW_RANDOM
119         ---help---
120           This driver provides kernel-side support for the Random Number
121           Generator hardware found on the AMD Geode LX.
122
123           To compile this driver as a module, choose M here: the
124           module will be called geode-rng.
125
126           If unsure, say Y.
127
128 config HW_RANDOM_N2RNG
129         tristate "Niagara2 Random Number Generator support"
130         depends on SPARC64
131         default HW_RANDOM
132         ---help---
133           This driver provides kernel-side support for the Random Number
134           Generator hardware found on Niagara2 cpus.
135
136           To compile this driver as a module, choose M here: the
137           module will be called n2-rng.
138
139           If unsure, say Y.
140
141 config HW_RANDOM_VIA
142         tristate "VIA HW Random Number Generator support"
143         depends on X86
144         default HW_RANDOM
145         ---help---
146           This driver provides kernel-side support for the Random Number
147           Generator hardware found on VIA based motherboards.
148
149           To compile this driver as a module, choose M here: the
150           module will be called via-rng.
151
152           If unsure, say Y.
153
154 config HW_RANDOM_IXP4XX
155         tristate "Intel IXP4xx NPU HW Pseudo-Random Number Generator support"
156         depends on ARCH_IXP4XX
157         default HW_RANDOM
158         ---help---
159           This driver provides kernel-side support for the Pseudo-Random
160           Number Generator hardware found on the Intel IXP45x/46x NPU.
161
162           To compile this driver as a module, choose M here: the
163           module will be called ixp4xx-rng.
164
165           If unsure, say Y.
166
167 config HW_RANDOM_OMAP
168         tristate "OMAP Random Number Generator support"
169         depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || ARCH_MVEBU
170         default HW_RANDOM
171         ---help---
172           This driver provides kernel-side support for the Random Number
173           Generator hardware found on OMAP16xx, OMAP2/3/4/5, AM33xx/AM43xx
174           multimedia processors, and Marvell Armada 7k/8k SoCs.
175
176           To compile this driver as a module, choose M here: the
177           module will be called omap-rng.
178
179           If unsure, say Y.
180
181 config HW_RANDOM_OMAP3_ROM
182         tristate "OMAP3 ROM Random Number Generator support"
183         depends on ARCH_OMAP3
184         default HW_RANDOM
185         ---help---
186           This driver provides kernel-side support for the Random Number
187           Generator hardware found on OMAP34xx processors.
188
189           To compile this driver as a module, choose M here: the
190           module will be called omap3-rom-rng.
191
192           If unsure, say Y.
193
194 config HW_RANDOM_OCTEON
195         tristate "Octeon Random Number Generator support"
196         depends on CAVIUM_OCTEON_SOC
197         default HW_RANDOM
198         ---help---
199           This driver provides kernel-side support for the Random Number
200           Generator hardware found on Octeon processors.
201
202           To compile this driver as a module, choose M here: the
203           module will be called octeon-rng.
204
205           If unsure, say Y.
206
207 config HW_RANDOM_PASEMI
208         tristate "PA Semi HW Random Number Generator support"
209         depends on PPC_PASEMI
210         default HW_RANDOM
211         ---help---
212           This driver provides kernel-side support for the Random Number
213           Generator hardware found on PA Semi PWRficient SoCs.
214
215           To compile this driver as a module, choose M here: the
216           module will be called pasemi-rng.
217
218           If unsure, say Y.
219
220 config HW_RANDOM_VIRTIO
221         tristate "VirtIO Random Number Generator support"
222         depends on VIRTIO
223         ---help---
224           This driver provides kernel-side support for the virtual Random Number
225           Generator hardware.
226
227           To compile this driver as a module, choose M here: the
228           module will be called virtio-rng.  If unsure, say N.
229
230 config HW_RANDOM_TX4939
231         tristate "TX4939 Random Number Generator support"
232         depends on SOC_TX4939
233         default HW_RANDOM
234         ---help---
235           This driver provides kernel-side support for the Random Number
236           Generator hardware found on TX4939 SoC.
237
238           To compile this driver as a module, choose M here: the
239           module will be called tx4939-rng.
240
241           If unsure, say Y.
242
243 config HW_RANDOM_MXC_RNGA
244         tristate "Freescale i.MX RNGA Random Number Generator"
245         depends on SOC_IMX31
246         default HW_RANDOM
247         ---help---
248           This driver provides kernel-side support for the Random Number
249           Generator hardware found on Freescale i.MX processors.
250
251           To compile this driver as a module, choose M here: the
252           module will be called mxc-rnga.
253
254           If unsure, say Y.
255
256 config HW_RANDOM_IMX_RNGC
257         tristate "Freescale i.MX RNGC Random Number Generator"
258         depends on ARCH_MXC
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_NOMADIK
271         tristate "ST-Ericsson Nomadik Random Number Generator support"
272         depends on ARCH_NOMADIK
273         default HW_RANDOM
274         ---help---
275           This driver provides kernel-side support for the Random Number
276           Generator hardware found on ST-Ericsson SoCs (8815 and 8500).
277
278           To compile this driver as a module, choose M here: the
279           module will be called nomadik-rng.
280
281           If unsure, say Y.
282
283 config HW_RANDOM_PSERIES
284         tristate "pSeries HW Random Number Generator support"
285         depends on PPC64 && IBMVIO
286         default HW_RANDOM
287         ---help---
288           This driver provides kernel-side support for the Random Number
289           Generator hardware found on POWER7+ machines and above
290
291           To compile this driver as a module, choose M here: the
292           module will be called pseries-rng.
293
294           If unsure, say Y.
295
296 config HW_RANDOM_POWERNV
297         tristate "PowerNV Random Number Generator support"
298         depends on PPC_POWERNV
299         default HW_RANDOM
300         ---help---
301           This is the driver for Random Number Generator hardware found
302           in POWER7+ and above machines for PowerNV platform.
303
304           To compile this driver as a module, choose M here: the
305           module will be called powernv-rng.
306
307           If unsure, say Y.
308
309 config HW_RANDOM_TPM
310         tristate "TPM HW Random Number Generator support"
311         depends on TCG_TPM
312         default HW_RANDOM
313         ---help---
314           This driver provides kernel-side support for the Random Number
315           Generator in the Trusted Platform Module
316
317           To compile this driver as a module, choose M here: the
318           module will be called tpm-rng.
319
320           If unsure, say Y.
321
322 config HW_RANDOM_HISI
323         tristate "Hisilicon Random Number Generator support"
324         depends on HW_RANDOM && ARCH_HISI
325         default HW_RANDOM
326         ---help---
327           This driver provides kernel-side support for the Random Number
328           Generator hardware found on Hisilicon Hip04 and Hip05 SoC.
329
330           To compile this driver as a module, choose M here: the
331           module will be called hisi-rng.
332
333           If unsure, say Y.
334
335 config HW_RANDOM_MSM
336         tristate "Qualcomm SoCs Random Number Generator support"
337         depends on HW_RANDOM && ARCH_QCOM
338         default HW_RANDOM
339         ---help---
340           This driver provides kernel-side support for the Random Number
341           Generator hardware found on Qualcomm SoCs.
342
343           To compile this driver as a module, choose M here. the
344           module will be called msm-rng.
345
346           If unsure, say Y.
347
348 config HW_RANDOM_ST
349         tristate "ST Microelectronics HW Random Number Generator support"
350         depends on HW_RANDOM && ARCH_STI
351         ---help---
352           This driver provides kernel-side support for the Random Number
353           Generator hardware found on STi series of SoCs.
354
355           To compile this driver as a module, choose M here: the
356           module will be called st-rng.
357
358 config HW_RANDOM_XGENE
359         tristate "APM X-Gene True Random Number Generator (TRNG) support"
360         depends on HW_RANDOM && ARCH_XGENE
361         default HW_RANDOM
362         ---help---
363           This driver provides kernel-side support for the Random Number
364           Generator hardware found on APM X-Gene SoC.
365
366           To compile this driver as a module, choose M here: the
367           module will be called xgene_rng.
368
369           If unsure, say Y.
370
371 config HW_RANDOM_STM32
372         tristate "STMicroelectronics STM32 random number generator"
373         depends on HW_RANDOM && (ARCH_STM32 || COMPILE_TEST)
374         depends on HAS_IOMEM
375         help
376           This driver provides kernel-side support for the Random Number
377           Generator hardware found on STM32 microcontrollers.
378
379           To compile this driver as a module, choose M here: the
380           module will be called stm32-rng.
381
382           If unsure, say N.
383
384 config HW_RANDOM_PIC32
385         tristate "Microchip PIC32 Random Number Generator support"
386         depends on HW_RANDOM && MACH_PIC32
387         default y
388         ---help---
389           This driver provides kernel-side support for the Random Number
390           Generator hardware found on a PIC32.
391
392           To compile this driver as a module, choose M here. the
393           module will be called pic32-rng.
394
395           If unsure, say Y.
396
397 config HW_RANDOM_MESON
398         tristate "Amlogic Meson Random Number Generator support"
399         depends on HW_RANDOM
400         depends on ARCH_MESON || COMPILE_TEST
401         default y
402         ---help---
403           This driver provides kernel-side support for the Random Number
404           Generator hardware found on Amlogic Meson SoCs.
405
406           To compile this driver as a module, choose M here. the
407           module will be called meson-rng.
408
409           If unsure, say Y.
410
411 config HW_RANDOM_CAVIUM
412        tristate "Cavium ThunderX Random Number Generator support"
413        depends on HW_RANDOM && PCI && (ARM64 || (COMPILE_TEST && 64BIT))
414        default HW_RANDOM
415        ---help---
416          This driver provides kernel-side support for the Random Number
417          Generator hardware found on Cavium SoCs.
418
419          To compile this driver as a module, choose M here: the
420          module will be called cavium_rng.
421
422          If unsure, say Y.
423
424 config HW_RANDOM_MTK
425         tristate "Mediatek Random Number Generator support"
426         depends on HW_RANDOM
427         depends on ARCH_MEDIATEK || COMPILE_TEST
428         default y
429         ---help---
430           This driver provides kernel-side support for the Random Number
431           Generator hardware found on Mediatek SoCs.
432
433           To compile this driver as a module, choose M here. the
434           module will be called mtk-rng.
435
436           If unsure, say Y.
437
438 config HW_RANDOM_S390
439         tristate "S390 True Random Number Generator support"
440         depends on S390
441         default HW_RANDOM
442         ---help---
443           This driver provides kernel-side support for the True
444           Random Number Generator available as CPACF extension
445           on modern s390 hardware platforms.
446
447           To compile this driver as a module, choose M here: the
448           module will be called s390-trng.
449
450           If unsure, say Y.
451
452 endif # HW_RANDOM
453
454 config UML_RANDOM
455         depends on UML
456         tristate "Hardware random number generator"
457         help
458           This option enables UML's "hardware" random number generator.  It
459           attaches itself to the host's /dev/random, supplying as much entropy
460           as the host has, rather than the small amount the UML gets from its
461           own drivers.  It registers itself as a standard hardware random number
462           generator, major 10, minor 183, and the canonical device name is
463           /dev/hwrng.
464           The way to make use of this is to install the rng-tools package
465           (check your distro, or download from
466           http://sourceforge.net/projects/gkernel/).  rngd periodically reads
467           /dev/hwrng and injects the entropy into /dev/random.