123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581 |
- # SPDX-License-Identifier: GPL-2.0-only
- #
- # Hardware Random Number Generator (RNG) configuration
- #
- menuconfig HW_RANDOM
- tristate "Hardware Random Number Generator Core support"
- default m
- help
- Hardware Random Number Generator Core infrastructure.
- To compile this driver as a module, choose M here: the
- module will be called rng-core. This provides a device
- that's usually called /dev/hwrng, and which exposes one
- of possibly several hardware random number generators.
- These hardware random number generators do feed into the
- kernel's random number generator entropy pool.
- If unsure, say Y.
- if HW_RANDOM
- config HW_RANDOM_TIMERIOMEM
- tristate "Timer IOMEM HW Random Number Generator support"
- depends on HAS_IOMEM
- help
- This driver provides kernel-side support for a generic Random
- Number Generator used by reading a 'dumb' iomem address that
- is to be read no faster than, for example, once a second;
- the default FPGA bitstream on the TS-7800 has such functionality.
- To compile this driver as a module, choose M here: the
- module will be called timeriomem-rng.
- If unsure, say Y.
- config HW_RANDOM_INTEL
- tristate "Intel HW Random Number Generator support"
- depends on (X86 || IA64) && PCI
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Intel i8xx-based motherboards.
- To compile this driver as a module, choose M here: the
- module will be called intel-rng.
- If unsure, say Y.
- config HW_RANDOM_AMD
- tristate "AMD HW Random Number Generator support"
- depends on (X86 || PPC_MAPLE) && PCI
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on AMD 76x-based motherboards.
- To compile this driver as a module, choose M here: the
- module will be called amd-rng.
- If unsure, say Y.
- config HW_RANDOM_ATMEL
- tristate "Atmel Random Number Generator support"
- depends on (ARCH_AT91 || COMPILE_TEST) && HAVE_CLK && OF
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Atmel AT91 devices.
- To compile this driver as a module, choose M here: the
- module will be called atmel-rng.
- If unsure, say Y.
- config HW_RANDOM_BA431
- tristate "Silex Insight BA431 Random Number Generator support"
- depends on HAS_IOMEM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware based on Silex Insight BA431 IP.
- To compile this driver as a module, choose M here: the
- module will be called ba431-rng.
- config HW_RANDOM_BCM2835
- tristate "Broadcom BCM2835/BCM63xx Random Number Generator support"
- depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X || \
- ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on the Broadcom BCM2835 and BCM63xx SoCs.
- To compile this driver as a module, choose M here: the
- module will be called bcm2835-rng
- If unsure, say Y.
- config HW_RANDOM_IPROC_RNG200
- tristate "Broadcom iProc/STB RNG200 support"
- depends on ARCH_BCM_IPROC || ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides kernel-side support for the RNG200
- hardware found on the Broadcom iProc and STB SoCs.
- To compile this driver as a module, choose M here: the
- module will be called iproc-rng200
- If unsure, say Y.
- config HW_RANDOM_GEODE
- tristate "AMD Geode HW Random Number Generator support"
- depends on X86_32 && PCI
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on the AMD Geode LX.
- To compile this driver as a module, choose M here: the
- module will be called geode-rng.
- If unsure, say Y.
- config HW_RANDOM_N2RNG
- tristate "Niagara2 Random Number Generator support"
- depends on SPARC64
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Niagara2 cpus.
- To compile this driver as a module, choose M here: the
- module will be called n2-rng.
- If unsure, say Y.
- config HW_RANDOM_VIA
- tristate "VIA HW Random Number Generator support"
- depends on X86
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on VIA based motherboards.
- To compile this driver as a module, choose M here: the
- module will be called via-rng.
- If unsure, say Y.
- config HW_RANDOM_IXP4XX
- tristate "Intel IXP4xx NPU HW Pseudo-Random Number Generator support"
- depends on ARCH_IXP4XX || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Pseudo-Random
- Number Generator hardware found on the Intel IXP45x/46x NPU.
- To compile this driver as a module, choose M here: the
- module will be called ixp4xx-rng.
- If unsure, say Y.
- config HW_RANDOM_OMAP
- tristate "OMAP Random Number Generator support"
- depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || ARCH_MVEBU || ARCH_K3 || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on OMAP16xx, OMAP2/3/4/5, AM33xx/AM43xx
- multimedia processors, and Marvell Armada 7k/8k SoCs.
- To compile this driver as a module, choose M here: the
- module will be called omap-rng.
- If unsure, say Y.
- config HW_RANDOM_OMAP3_ROM
- tristate "OMAP3 ROM Random Number Generator support"
- depends on ARCH_OMAP3 || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on OMAP34xx processors.
- To compile this driver as a module, choose M here: the
- module will be called omap3-rom-rng.
- If unsure, say Y.
- config HW_RANDOM_OCTEON
- tristate "Octeon Random Number Generator support"
- depends on CAVIUM_OCTEON_SOC
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Octeon processors.
- To compile this driver as a module, choose M here: the
- module will be called octeon-rng.
- If unsure, say Y.
- config HW_RANDOM_PASEMI
- tristate "PA Semi HW Random Number Generator support"
- depends on PPC_PASEMI
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on PA Semi PWRficient SoCs.
- To compile this driver as a module, choose M here: the
- module will be called pasemi-rng.
- If unsure, say Y.
- config HW_RANDOM_VIRTIO
- tristate "VirtIO Random Number Generator support"
- depends on VIRTIO
- help
- This driver provides kernel-side support for the virtual Random Number
- Generator hardware.
- To compile this driver as a module, choose M here: the
- module will be called virtio-rng. If unsure, say N.
- config HW_RANDOM_MXC_RNGA
- tristate "Freescale i.MX RNGA Random Number Generator"
- depends on SOC_IMX31
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Freescale i.MX processors.
- To compile this driver as a module, choose M here: the
- module will be called mxc-rnga.
- If unsure, say Y.
- config HW_RANDOM_IMX_RNGC
- tristate "Freescale i.MX RNGC Random Number Generator"
- depends on HAS_IOMEM && HAVE_CLK
- depends on SOC_IMX25 || SOC_IMX6SL || SOC_IMX6SLL || SOC_IMX6UL || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator Version C hardware found on some Freescale i.MX
- processors. Version B is also supported by this driver.
- To compile this driver as a module, choose M here: the
- module will be called imx-rngc.
- If unsure, say Y.
- config HW_RANDOM_INGENIC_RNG
- tristate "Ingenic Random Number Generator support"
- depends on HW_RANDOM
- depends on MACH_JZ4780 || MACH_X1000
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number Generator
- hardware found in ingenic JZ4780 and X1000 SoC. MIPS Creator CI20 uses
- JZ4780 SoC, YSH & ATIL CU1000-Neo uses X1000 SoC.
- To compile this driver as a module, choose M here: the
- module will be called ingenic-rng.
- If unsure, say Y.
- config HW_RANDOM_INGENIC_TRNG
- tristate "Ingenic True Random Number Generator support"
- depends on HW_RANDOM
- depends on MACH_X1830
- default HW_RANDOM
- help
- This driver provides kernel-side support for the True Random Number Generator
- hardware found in ingenic X1830 SoC. YSH & ATIL CU1830-Neo uses X1830 SoC.
- To compile this driver as a module, choose M here: the
- module will be called ingenic-trng.
- If unsure, say Y.
- config HW_RANDOM_NOMADIK
- tristate "ST-Ericsson Nomadik Random Number Generator support"
- depends on ARCH_NOMADIK || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on ST-Ericsson SoCs (8815 and 8500).
- To compile this driver as a module, choose M here: the
- module will be called nomadik-rng.
- If unsure, say Y.
- config HW_RANDOM_PSERIES
- tristate "pSeries HW Random Number Generator support"
- depends on PPC64 && IBMVIO
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on POWER7+ machines and above
- To compile this driver as a module, choose M here: the
- module will be called pseries-rng.
- If unsure, say Y.
- config HW_RANDOM_POWERNV
- tristate "PowerNV Random Number Generator support"
- depends on PPC_POWERNV
- default HW_RANDOM
- help
- This is the driver for Random Number Generator hardware found
- in POWER7+ and above machines for PowerNV platform.
- To compile this driver as a module, choose M here: the
- module will be called powernv-rng.
- If unsure, say Y.
- config HW_RANDOM_HISI
- tristate "Hisilicon Random Number Generator support"
- depends on HW_RANDOM && ARCH_HISI
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Hisilicon Hip04 and Hip05 SoC.
- To compile this driver as a module, choose M here: the
- module will be called hisi-rng.
- If unsure, say Y.
- config HW_RANDOM_MSM_LEGACY
- tristate "QTI MSM Random Number Generator support (LEGACY)"
- depends on HW_RANDOM && ARCH_QCOM
- select CRYPTO_AES
- select CRYPTO_ECB
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on QTI MSM SoCs.
- To compile this driver as a module, choose M here: the
- module will be called msm_rng.
- If unsure, say Y.
- config HW_RANDOM_ST
- tristate "ST Microelectronics HW Random Number Generator support"
- depends on HW_RANDOM && ARCH_STI
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on STi series of SoCs.
- To compile this driver as a module, choose M here: the
- module will be called st-rng.
- config HW_RANDOM_XGENE
- tristate "APM X-Gene True Random Number Generator (TRNG) support"
- depends on HW_RANDOM && ARCH_XGENE
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on APM X-Gene SoC.
- To compile this driver as a module, choose M here: the
- module will be called xgene_rng.
- If unsure, say Y.
- config HW_RANDOM_STM32
- tristate "STMicroelectronics STM32 random number generator"
- depends on HW_RANDOM && (ARCH_STM32 || COMPILE_TEST)
- depends on HAS_IOMEM
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on STM32 microcontrollers.
- To compile this driver as a module, choose M here: the
- module will be called stm32-rng.
- If unsure, say N.
- config HW_RANDOM_PIC32
- tristate "Microchip PIC32 Random Number Generator support"
- depends on HW_RANDOM && MACH_PIC32
- default y
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on a PIC32.
- To compile this driver as a module, choose M here. the
- module will be called pic32-rng.
- If unsure, say Y.
- config HW_RANDOM_POLARFIRE_SOC
- tristate "Microchip PolarFire SoC Random Number Generator support"
- depends on HW_RANDOM && POLARFIRE_SOC_SYS_CTRL
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on PolarFire SoC (MPFS).
- To compile this driver as a module, choose M here. The
- module will be called mfps_rng.
- If unsure, say N.
- config HW_RANDOM_MESON
- tristate "Amlogic Meson Random Number Generator support"
- depends on HW_RANDOM
- depends on ARCH_MESON || COMPILE_TEST
- default y
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Amlogic Meson SoCs.
- To compile this driver as a module, choose M here. the
- module will be called meson-rng.
- If unsure, say Y.
- config HW_RANDOM_CAVIUM
- tristate "Cavium ThunderX Random Number Generator support"
- depends on HW_RANDOM && PCI && ARCH_THUNDER
- default HW_RANDOM
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Cavium SoCs.
- To compile this driver as a module, choose M here: the
- module will be called cavium_rng.
- If unsure, say Y.
- config HW_RANDOM_MTK
- tristate "Mediatek Random Number Generator support"
- depends on HW_RANDOM
- depends on ARCH_MEDIATEK || COMPILE_TEST
- default y
- help
- This driver provides kernel-side support for the Random Number
- Generator hardware found on Mediatek SoCs.
- To compile this driver as a module, choose M here. the
- module will be called mtk-rng.
- If unsure, say Y.
- config HW_RANDOM_S390
- tristate "S390 True Random Number Generator support"
- depends on S390
- default HW_RANDOM
- help
- This driver provides kernel-side support for the True
- Random Number Generator available as CPACF extension
- on modern s390 hardware platforms.
- To compile this driver as a module, choose M here: the
- module will be called s390-trng.
- If unsure, say Y.
- config HW_RANDOM_EXYNOS
- tristate "Samsung Exynos True Random Number Generator support"
- depends on ARCH_EXYNOS || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides support for the True Random Number
- Generator available in Exynos SoCs.
- To compile this driver as a module, choose M here: the module
- will be called exynos-trng.
- If unsure, say Y.
- config HW_RANDOM_OPTEE
- tristate "OP-TEE based Random Number Generator support"
- depends on OPTEE
- default HW_RANDOM
- help
- This driver provides support for OP-TEE based Random Number
- Generator on ARM SoCs where hardware entropy sources are not
- accessible to normal world (Linux).
- To compile this driver as a module, choose M here: the module
- will be called optee-rng.
- If unsure, say Y.
- config HW_RANDOM_NPCM
- tristate "NPCM Random Number Generator support"
- depends on ARCH_NPCM || COMPILE_TEST
- default HW_RANDOM
- help
- This driver provides support for the Random Number
- Generator hardware available in Nuvoton NPCM SoCs.
- To compile this driver as a module, choose M here: the
- module will be called npcm-rng.
- If unsure, say Y.
- config HW_RANDOM_KEYSTONE
- depends on ARCH_KEYSTONE || COMPILE_TEST
- depends on HAS_IOMEM && OF
- default HW_RANDOM
- tristate "TI Keystone NETCP SA Hardware random number generator"
- help
- This option enables Keystone's hardware random generator.
- config HW_RANDOM_CCTRNG
- tristate "Arm CryptoCell True Random Number Generator support"
- depends on HAS_IOMEM && OF
- help
- Say 'Y' to enable the True Random Number Generator driver for the
- Arm TrustZone CryptoCell family of processors.
- Currently the CryptoCell 713 and 703 are supported.
- The driver is supported only in SoC where Trusted Execution
- Environment is not used.
- Choose 'M' to compile this driver as a module. The module
- will be called cctrng.
- If unsure, say 'N'.
- config HW_RANDOM_XIPHERA
- tristate "Xiphera FPGA based True Random Number Generator support"
- depends on HAS_IOMEM
- help
- This driver provides kernel-side support for Xiphera True Random
- Number Generator Intellectual Property Core.
- To compile this driver as a module, choose M here: the
- module will be called xiphera-trng.
- config HW_RANDOM_ARM_SMCCC_TRNG
- tristate "Arm SMCCC TRNG firmware interface support"
- depends on HAVE_ARM_SMCCC_DISCOVERY
- default HW_RANDOM
- help
- Say 'Y' to enable the True Random Number Generator driver using
- the Arm SMCCC TRNG firmware interface. This reads entropy from
- higher exception levels (firmware, hypervisor). Uses SMCCC for
- communicating with the firmware:
- https://developer.arm.com/documentation/den0098/latest/
- To compile this driver as a module, choose M here: the
- module will be called arm_smccc_trng.
- config HW_RANDOM_CN10K
- tristate "Marvell CN10K Random Number Generator support"
- depends on HW_RANDOM && PCI && (ARM64 || (64BIT && COMPILE_TEST))
- default HW_RANDOM
- help
- This driver provides support for the True Random Number
- generator available in Marvell CN10K SoCs.
- To compile this driver as a module, choose M here.
- The module will be called cn10k_rng. If unsure, say Y.
- endif # HW_RANDOM
- config UML_RANDOM
- depends on UML
- select HW_RANDOM
- tristate "UML Random Number Generator support"
- help
- This option enables UML's "hardware" random number generator. It
- attaches itself to the host's /dev/random, supplying as much entropy
- as the host has, rather than the small amount the UML gets from its
- own drivers. It registers itself as a rng-core driver thus providing
- a device which is usually called /dev/hwrng. This hardware random
- number generator does feed into the kernel's random number generator
- entropy pool.
- If unsure, say Y.
|