]>
Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
844dd05f MB |
2 | # |
3 | # Hardware Random Number Generator (RNG) configuration | |
4 | # | |
5 | ||
02001618 | 6 | menuconfig 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 |
22 | if HW_RANDOM |
23 | ||
9c3c133b AC |
24 | config 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 |
38 | config 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 | |
51 | config 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 |
64 | config 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 | 77 | config 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 | 91 | config 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 |
104 | config 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 |
117 | config 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 |
130 | config 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 | |
143 | config 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 | |
156 | config 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 |
170 | config 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 |
183 | config 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 |
196 | config 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 |
209 | config 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 |
219 | config 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 |
232 | config 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 |
245 | config 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 |
260 | config 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 |
273 | config 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 |
286 | config 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 |
299 | config 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 |
312 | config 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 |
325 | config 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 |
335 | config 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 |
348 | config 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 |
362 | config 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 |
375 | config 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 | 389 | config 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 |
402 | config 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 |
416 | config 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 |
430 | config 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 | |
443 | config 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 |
457 | config 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 |
470 | config 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 |
477 | config 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 |
490 | endif # HW_RANDOM |
491 | ||
dc64ef00 JD |
492 | config 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. |