Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Hardware Random Number Generator (RNG) configuration
0004 #
0005 
0006 menuconfig HW_RANDOM
0007         tristate "Hardware Random Number Generator Core support"
0008         default m
0009         help
0010           Hardware Random Number Generator Core infrastructure.
0011 
0012           To compile this driver as a module, choose M here: the
0013           module will be called rng-core.  This provides a device
0014           that's usually called /dev/hwrng, and which exposes one
0015           of possibly several hardware random number generators.
0016 
0017           These hardware random number generators do feed into the
0018           kernel's random number generator entropy pool.
0019 
0020           If unsure, say Y.
0021 
0022 if HW_RANDOM
0023 
0024 config HW_RANDOM_TIMERIOMEM
0025         tristate "Timer IOMEM HW Random Number Generator support"
0026         depends on HAS_IOMEM
0027         help
0028           This driver provides kernel-side support for a generic Random
0029           Number Generator used by reading a 'dumb' iomem address that
0030           is to be read no faster than, for example, once a second;
0031           the default FPGA bitstream on the TS-7800 has such functionality.
0032 
0033           To compile this driver as a module, choose M here: the
0034           module will be called timeriomem-rng.
0035 
0036           If unsure, say Y.
0037 
0038 config HW_RANDOM_INTEL
0039         tristate "Intel HW Random Number Generator support"
0040         depends on (X86 || IA64) && PCI
0041         default HW_RANDOM
0042         help
0043           This driver provides kernel-side support for the Random Number
0044           Generator hardware found on Intel i8xx-based motherboards.
0045 
0046           To compile this driver as a module, choose M here: the
0047           module will be called intel-rng.
0048 
0049           If unsure, say Y.
0050 
0051 config HW_RANDOM_AMD
0052         tristate "AMD HW Random Number Generator support"
0053         depends on (X86 || PPC_MAPLE) && PCI
0054         default HW_RANDOM
0055         help
0056           This driver provides kernel-side support for the Random Number
0057           Generator hardware found on AMD 76x-based motherboards.
0058 
0059           To compile this driver as a module, choose M here: the
0060           module will be called amd-rng.
0061 
0062           If unsure, say Y.
0063 
0064 config HW_RANDOM_ATMEL
0065         tristate "Atmel Random Number Generator support"
0066         depends on (ARCH_AT91 || COMPILE_TEST) && HAVE_CLK && OF
0067         default HW_RANDOM
0068         help
0069           This driver provides kernel-side support for the Random Number
0070           Generator hardware found on Atmel AT91 devices.
0071 
0072           To compile this driver as a module, choose M here: the
0073           module will be called atmel-rng.
0074 
0075           If unsure, say Y.
0076 
0077 config HW_RANDOM_BA431
0078         tristate "Silex Insight BA431 Random Number Generator support"
0079         depends on HAS_IOMEM
0080         help
0081           This driver provides kernel-side support for the Random Number
0082           Generator hardware based on Silex Insight BA431 IP.
0083 
0084           To compile this driver as a module, choose M here: the
0085           module will be called ba431-rng.
0086 
0087 config HW_RANDOM_BCM2835
0088         tristate "Broadcom BCM2835/BCM63xx Random Number Generator support"
0089         depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X || \
0090                    ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
0091         default HW_RANDOM
0092         help
0093           This driver provides kernel-side support for the Random Number
0094           Generator hardware found on the Broadcom BCM2835 and BCM63xx SoCs.
0095 
0096           To compile this driver as a module, choose M here: the
0097           module will be called bcm2835-rng
0098 
0099           If unsure, say Y.
0100 
0101 config HW_RANDOM_IPROC_RNG200
0102         tristate "Broadcom iProc/STB RNG200 support"
0103         depends on ARCH_BCM_IPROC || ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
0104         default HW_RANDOM
0105         help
0106           This driver provides kernel-side support for the RNG200
0107           hardware found on the Broadcom iProc and STB SoCs.
0108 
0109           To compile this driver as a module, choose M here: the
0110           module will be called iproc-rng200
0111 
0112           If unsure, say Y.
0113 
0114 config HW_RANDOM_GEODE
0115         tristate "AMD Geode HW Random Number Generator support"
0116         depends on X86_32 && PCI
0117         default HW_RANDOM
0118         help
0119           This driver provides kernel-side support for the Random Number
0120           Generator hardware found on the AMD Geode LX.
0121 
0122           To compile this driver as a module, choose M here: the
0123           module will be called geode-rng.
0124 
0125           If unsure, say Y.
0126 
0127 config HW_RANDOM_N2RNG
0128         tristate "Niagara2 Random Number Generator support"
0129         depends on SPARC64
0130         default HW_RANDOM
0131         help
0132           This driver provides kernel-side support for the Random Number
0133           Generator hardware found on Niagara2 cpus.
0134 
0135           To compile this driver as a module, choose M here: the
0136           module will be called n2-rng.
0137 
0138           If unsure, say Y.
0139 
0140 config HW_RANDOM_VIA
0141         tristate "VIA HW Random Number Generator support"
0142         depends on X86
0143         default HW_RANDOM
0144         help
0145           This driver provides kernel-side support for the Random Number
0146           Generator hardware found on VIA based motherboards.
0147 
0148           To compile this driver as a module, choose M here: the
0149           module will be called via-rng.
0150 
0151           If unsure, say Y.
0152 
0153 config HW_RANDOM_IXP4XX
0154         tristate "Intel IXP4xx NPU HW Pseudo-Random Number Generator support"
0155         depends on ARCH_IXP4XX || COMPILE_TEST
0156         default HW_RANDOM
0157         help
0158           This driver provides kernel-side support for the Pseudo-Random
0159           Number Generator hardware found on the Intel IXP45x/46x NPU.
0160 
0161           To compile this driver as a module, choose M here: the
0162           module will be called ixp4xx-rng.
0163 
0164           If unsure, say Y.
0165 
0166 config HW_RANDOM_OMAP
0167         tristate "OMAP Random Number Generator support"
0168         depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || ARCH_MVEBU || ARCH_K3 || COMPILE_TEST
0169         default HW_RANDOM
0170         help
0171           This driver provides kernel-side support for the Random Number
0172           Generator hardware found on OMAP16xx, OMAP2/3/4/5, AM33xx/AM43xx
0173           multimedia processors, and Marvell Armada 7k/8k SoCs.
0174 
0175           To compile this driver as a module, choose M here: the
0176           module will be called omap-rng.
0177 
0178           If unsure, say Y.
0179 
0180 config HW_RANDOM_OMAP3_ROM
0181         tristate "OMAP3 ROM Random Number Generator support"
0182         depends on ARCH_OMAP3 || COMPILE_TEST
0183         default HW_RANDOM
0184         help
0185           This driver provides kernel-side support for the Random Number
0186           Generator hardware found on OMAP34xx processors.
0187 
0188           To compile this driver as a module, choose M here: the
0189           module will be called omap3-rom-rng.
0190 
0191           If unsure, say Y.
0192 
0193 config HW_RANDOM_OCTEON
0194         tristate "Octeon Random Number Generator support"
0195         depends on CAVIUM_OCTEON_SOC
0196         default HW_RANDOM
0197         help
0198           This driver provides kernel-side support for the Random Number
0199           Generator hardware found on Octeon processors.
0200 
0201           To compile this driver as a module, choose M here: the
0202           module will be called octeon-rng.
0203 
0204           If unsure, say Y.
0205 
0206 config HW_RANDOM_PASEMI
0207         tristate "PA Semi HW Random Number Generator support"
0208         depends on PPC_PASEMI
0209         default HW_RANDOM
0210         help
0211           This driver provides kernel-side support for the Random Number
0212           Generator hardware found on PA Semi PWRficient SoCs.
0213 
0214           To compile this driver as a module, choose M here: the
0215           module will be called pasemi-rng.
0216 
0217           If unsure, say Y.
0218 
0219 config HW_RANDOM_VIRTIO
0220         tristate "VirtIO Random Number Generator support"
0221         depends on VIRTIO
0222         help
0223           This driver provides kernel-side support for the virtual Random Number
0224           Generator hardware.
0225 
0226           To compile this driver as a module, choose M here: the
0227           module will be called virtio-rng.  If unsure, say N.
0228 
0229 config HW_RANDOM_MXC_RNGA
0230         tristate "Freescale i.MX RNGA Random Number Generator"
0231         depends on SOC_IMX31
0232         default HW_RANDOM
0233         help
0234           This driver provides kernel-side support for the Random Number
0235           Generator hardware found on Freescale i.MX processors.
0236 
0237           To compile this driver as a module, choose M here: the
0238           module will be called mxc-rnga.
0239 
0240           If unsure, say Y.
0241 
0242 config HW_RANDOM_IMX_RNGC
0243         tristate "Freescale i.MX RNGC Random Number Generator"
0244         depends on HAS_IOMEM && HAVE_CLK
0245         depends on SOC_IMX25 || SOC_IMX6SL || SOC_IMX6SLL || SOC_IMX6UL || COMPILE_TEST
0246         default HW_RANDOM
0247         help
0248           This driver provides kernel-side support for the Random Number
0249           Generator Version C hardware found on some Freescale i.MX
0250           processors. Version B is also supported by this driver.
0251 
0252           To compile this driver as a module, choose M here: the
0253           module will be called imx-rngc.
0254 
0255           If unsure, say Y.
0256 
0257 config HW_RANDOM_INGENIC_RNG
0258         tristate "Ingenic Random Number Generator support"
0259         depends on HW_RANDOM
0260         depends on MACH_JZ4780 || MACH_X1000
0261         default HW_RANDOM
0262         help
0263           This driver provides kernel-side support for the Random Number Generator
0264           hardware found in ingenic JZ4780 and X1000 SoC. MIPS Creator CI20 uses
0265           JZ4780 SoC, YSH & ATIL CU1000-Neo uses X1000 SoC.
0266 
0267           To compile this driver as a module, choose M here: the
0268           module will be called ingenic-rng.
0269 
0270           If unsure, say Y.
0271 
0272 config HW_RANDOM_INGENIC_TRNG
0273         tristate "Ingenic True Random Number Generator support"
0274         depends on HW_RANDOM
0275         depends on MACH_X1830
0276         default HW_RANDOM
0277         help
0278           This driver provides kernel-side support for the True Random Number Generator
0279           hardware found in ingenic X1830 SoC. YSH & ATIL CU1830-Neo uses X1830 SoC.
0280 
0281           To compile this driver as a module, choose M here: the
0282           module will be called ingenic-trng.
0283 
0284           If unsure, say Y.
0285 
0286 config HW_RANDOM_NOMADIK
0287         tristate "ST-Ericsson Nomadik Random Number Generator support"
0288         depends on ARCH_NOMADIK || COMPILE_TEST
0289         default HW_RANDOM
0290         help
0291           This driver provides kernel-side support for the Random Number
0292           Generator hardware found on ST-Ericsson SoCs (8815 and 8500).
0293 
0294           To compile this driver as a module, choose M here: the
0295           module will be called nomadik-rng.
0296 
0297           If unsure, say Y.
0298 
0299 config HW_RANDOM_PSERIES
0300         tristate "pSeries HW Random Number Generator support"
0301         depends on PPC64 && IBMVIO
0302         default HW_RANDOM
0303         help
0304           This driver provides kernel-side support for the Random Number
0305           Generator hardware found on POWER7+ machines and above
0306 
0307           To compile this driver as a module, choose M here: the
0308           module will be called pseries-rng.
0309 
0310           If unsure, say Y.
0311 
0312 config HW_RANDOM_POWERNV
0313         tristate "PowerNV Random Number Generator support"
0314         depends on PPC_POWERNV
0315         default HW_RANDOM
0316         help
0317           This is the driver for Random Number Generator hardware found
0318           in POWER7+ and above machines for PowerNV platform.
0319 
0320           To compile this driver as a module, choose M here: the
0321           module will be called powernv-rng.
0322 
0323           If unsure, say Y.
0324 
0325 config HW_RANDOM_HISI
0326         tristate "Hisilicon Random Number Generator support"
0327         depends on HW_RANDOM && ARCH_HISI
0328         default HW_RANDOM
0329         help
0330           This driver provides kernel-side support for the Random Number
0331           Generator hardware found on Hisilicon Hip04 and Hip05 SoC.
0332 
0333           To compile this driver as a module, choose M here: the
0334           module will be called hisi-rng.
0335 
0336           If unsure, say Y.
0337 
0338 config HW_RANDOM_ST
0339         tristate "ST Microelectronics HW Random Number Generator support"
0340         depends on HW_RANDOM && ARCH_STI
0341         help
0342           This driver provides kernel-side support for the Random Number
0343           Generator hardware found on STi series of SoCs.
0344 
0345           To compile this driver as a module, choose M here: the
0346           module will be called st-rng.
0347 
0348 config HW_RANDOM_XGENE
0349         tristate "APM X-Gene True Random Number Generator (TRNG) support"
0350         depends on HW_RANDOM && ARCH_XGENE
0351         default HW_RANDOM
0352         help
0353           This driver provides kernel-side support for the Random Number
0354           Generator hardware found on APM X-Gene SoC.
0355 
0356           To compile this driver as a module, choose M here: the
0357           module will be called xgene_rng.
0358 
0359           If unsure, say Y.
0360 
0361 config HW_RANDOM_STM32
0362         tristate "STMicroelectronics STM32 random number generator"
0363         depends on HW_RANDOM && (ARCH_STM32 || COMPILE_TEST)
0364         depends on HAS_IOMEM
0365         default HW_RANDOM
0366         help
0367           This driver provides kernel-side support for the Random Number
0368           Generator hardware found on STM32 microcontrollers.
0369 
0370           To compile this driver as a module, choose M here: the
0371           module will be called stm32-rng.
0372 
0373           If unsure, say N.
0374 
0375 config HW_RANDOM_PIC32
0376         tristate "Microchip PIC32 Random Number Generator support"
0377         depends on HW_RANDOM && MACH_PIC32
0378         default y
0379         help
0380           This driver provides kernel-side support for the Random Number
0381           Generator hardware found on a PIC32.
0382 
0383           To compile this driver as a module, choose M here. the
0384           module will be called pic32-rng.
0385 
0386           If unsure, say Y.
0387 
0388 config HW_RANDOM_POLARFIRE_SOC
0389         tristate "Microchip PolarFire SoC Random Number Generator support"
0390         depends on HW_RANDOM && POLARFIRE_SOC_SYS_CTRL
0391         help
0392           This driver provides kernel-side support for the Random Number
0393           Generator hardware found on PolarFire SoC (MPFS).
0394 
0395           To compile this driver as a module, choose M here. The
0396           module will be called mfps_rng.
0397 
0398           If unsure, say N.
0399 
0400 
0401 config HW_RANDOM_MESON
0402         tristate "Amlogic Meson Random Number Generator support"
0403         depends on HW_RANDOM
0404         depends on ARCH_MESON || COMPILE_TEST
0405         default y
0406         help
0407           This driver provides kernel-side support for the Random Number
0408           Generator hardware found on Amlogic Meson SoCs.
0409 
0410           To compile this driver as a module, choose M here. the
0411           module will be called meson-rng.
0412 
0413           If unsure, say Y.
0414 
0415 config HW_RANDOM_CAVIUM
0416         tristate "Cavium ThunderX Random Number Generator support"
0417         depends on HW_RANDOM && PCI && ARCH_THUNDER
0418         default HW_RANDOM
0419         help
0420           This driver provides kernel-side support for the Random Number
0421           Generator hardware found on Cavium SoCs.
0422 
0423           To compile this driver as a module, choose M here: the
0424           module will be called cavium_rng.
0425 
0426           If unsure, say Y.
0427 
0428 config HW_RANDOM_MTK
0429         tristate "Mediatek Random Number Generator support"
0430         depends on HW_RANDOM
0431         depends on ARCH_MEDIATEK || COMPILE_TEST
0432         default y
0433         help
0434           This driver provides kernel-side support for the Random Number
0435           Generator hardware found on Mediatek SoCs.
0436 
0437           To compile this driver as a module, choose M here. the
0438           module will be called mtk-rng.
0439 
0440           If unsure, say Y.
0441 
0442 config HW_RANDOM_S390
0443         tristate "S390 True Random Number Generator support"
0444         depends on S390
0445         default HW_RANDOM
0446         help
0447           This driver provides kernel-side support for the True
0448           Random Number Generator available as CPACF extension
0449           on modern s390 hardware platforms.
0450 
0451           To compile this driver as a module, choose M here: the
0452           module will be called s390-trng.
0453 
0454           If unsure, say Y.
0455 
0456 config HW_RANDOM_EXYNOS
0457         tristate "Samsung Exynos True Random Number Generator support"
0458         depends on ARCH_EXYNOS || COMPILE_TEST
0459         default HW_RANDOM
0460         help
0461           This driver provides support for the True Random Number
0462           Generator available in Exynos SoCs.
0463 
0464           To compile this driver as a module, choose M here: the module
0465           will be called exynos-trng.
0466 
0467           If unsure, say Y.
0468 
0469 config HW_RANDOM_OPTEE
0470         tristate "OP-TEE based Random Number Generator support"
0471         depends on OPTEE
0472         default HW_RANDOM
0473         help
0474           This  driver provides support for OP-TEE based Random Number
0475           Generator on ARM SoCs where hardware entropy sources are not
0476           accessible to normal world (Linux).
0477 
0478           To compile this driver as a module, choose M here: the module
0479           will be called optee-rng.
0480 
0481           If unsure, say Y.
0482 
0483 config HW_RANDOM_NPCM
0484         tristate "NPCM Random Number Generator support"
0485         depends on ARCH_NPCM || COMPILE_TEST
0486         default HW_RANDOM
0487         help
0488           This driver provides support for the Random Number
0489           Generator hardware available in Nuvoton NPCM SoCs.
0490 
0491           To compile this driver as a module, choose M here: the
0492           module will be called npcm-rng.
0493 
0494           If unsure, say Y.
0495 
0496 config HW_RANDOM_KEYSTONE
0497         depends on ARCH_KEYSTONE || COMPILE_TEST
0498         depends on HAS_IOMEM && OF
0499         default HW_RANDOM
0500         tristate "TI Keystone NETCP SA Hardware random number generator"
0501         help
0502           This option enables Keystone's hardware random generator.
0503 
0504 config HW_RANDOM_CCTRNG
0505         tristate "Arm CryptoCell True Random Number Generator support"
0506         depends on HAS_IOMEM && OF
0507         help
0508           Say 'Y' to enable the True Random Number Generator driver for the
0509           Arm TrustZone CryptoCell family of processors.
0510           Currently the CryptoCell 713 and 703 are supported.
0511           The driver is supported only in SoC where Trusted Execution
0512           Environment is not used.
0513           Choose 'M' to compile this driver as a module. The module
0514           will be called cctrng.
0515           If unsure, say 'N'.
0516 
0517 config HW_RANDOM_XIPHERA
0518         tristate "Xiphera FPGA based True Random Number Generator support"
0519         depends on HAS_IOMEM
0520         help
0521           This driver provides kernel-side support for Xiphera True Random
0522           Number Generator Intellectual Property Core.
0523 
0524           To compile this driver as a module, choose M here: the
0525           module will be called xiphera-trng.
0526 
0527 config HW_RANDOM_ARM_SMCCC_TRNG
0528         tristate "Arm SMCCC TRNG firmware interface support"
0529         depends on HAVE_ARM_SMCCC_DISCOVERY
0530         default HW_RANDOM
0531         help
0532           Say 'Y' to enable the True Random Number Generator driver using
0533           the Arm SMCCC TRNG firmware interface. This reads entropy from
0534           higher exception levels (firmware, hypervisor). Uses SMCCC for
0535           communicating with the firmware:
0536           https://developer.arm.com/documentation/den0098/latest/
0537 
0538           To compile this driver as a module, choose M here: the
0539           module will be called arm_smccc_trng.
0540 
0541 config HW_RANDOM_CN10K
0542        tristate "Marvell CN10K Random Number Generator support"
0543        depends on HW_RANDOM && PCI && (ARM64 || (64BIT && COMPILE_TEST))
0544        default HW_RANDOM
0545        help
0546          This driver provides support for the True Random Number
0547          generator available in Marvell CN10K SoCs.
0548 
0549          To compile this driver as a module, choose M here.
0550          The module will be called cn10k_rng. If unsure, say Y.
0551 
0552 endif # HW_RANDOM
0553 
0554 config UML_RANDOM
0555         depends on UML
0556         select HW_RANDOM
0557         tristate "UML Random Number Generator support"
0558         help
0559           This option enables UML's "hardware" random number generator.  It
0560           attaches itself to the host's /dev/random, supplying as much entropy
0561           as the host has, rather than the small amount the UML gets from its
0562           own drivers. It registers itself as a rng-core driver thus providing
0563           a device which is usually called /dev/hwrng. This hardware random
0564           number generator does feed into the kernel's random number generator
0565           entropy pool.
0566 
0567           If unsure, say Y.