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