xref: /linux/drivers/char/hw_random/Kconfig (revision bf070bb0e6c62ba3075db0a666763ba52c677102)
1#
2# Hardware Random Number Generator (RNG) configuration
3#
4
5menuconfig 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
21if HW_RANDOM
22
23config 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
37config 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
50config 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
63config 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
76config 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
89config 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
102config HW_RANDOM_IPROC_RNG200
103	tristate "Broadcom iProc/STB RNG200 support"
104	depends on ARCH_BCM_IPROC || ARCH_BRCMSTB
105	default HW_RANDOM
106	---help---
107	  This driver provides kernel-side support for the RNG200
108	  hardware found on the Broadcom iProc and STB 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
115config 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
128config 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
141config 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
154config 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
167config 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
181config 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
194config 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
207config 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
220config 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
230config 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
243config 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
256config 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
270config 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
283config 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
296config 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
309config 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
322config 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
335config 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
348config 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
358config 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
371config 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
384config 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
397config 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
411config 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
424config 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
438config 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
452endif # HW_RANDOM
453
454config 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.
468