162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Hardware Random Number Generator (RNG) configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig HW_RANDOM
762306a36Sopenharmony_ci	tristate "Hardware Random Number Generator Core support"
862306a36Sopenharmony_ci	default m
962306a36Sopenharmony_ci	help
1062306a36Sopenharmony_ci	  Hardware Random Number Generator Core infrastructure.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
1362306a36Sopenharmony_ci	  module will be called rng-core.  This provides a device
1462306a36Sopenharmony_ci	  that's usually called /dev/hwrng, and which exposes one
1562306a36Sopenharmony_ci	  of possibly several hardware random number generators.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	  These hardware random number generators do feed into the
1862306a36Sopenharmony_ci	  kernel's random number generator entropy pool.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	  If unsure, say Y.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciif HW_RANDOM
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciconfig HW_RANDOM_TIMERIOMEM
2562306a36Sopenharmony_ci	tristate "Timer IOMEM HW Random Number Generator support"
2662306a36Sopenharmony_ci	depends on HAS_IOMEM
2762306a36Sopenharmony_ci	help
2862306a36Sopenharmony_ci	  This driver provides kernel-side support for a generic Random
2962306a36Sopenharmony_ci	  Number Generator used by reading a 'dumb' iomem address that
3062306a36Sopenharmony_ci	  is to be read no faster than, for example, once a second;
3162306a36Sopenharmony_ci	  the default FPGA bitstream on the TS-7800 has such functionality.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
3462306a36Sopenharmony_ci	  module will be called timeriomem-rng.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	  If unsure, say Y.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciconfig HW_RANDOM_INTEL
3962306a36Sopenharmony_ci	tristate "Intel HW Random Number Generator support"
4062306a36Sopenharmony_ci	depends on (X86 || IA64 || COMPILE_TEST) && PCI
4162306a36Sopenharmony_ci	default HW_RANDOM
4262306a36Sopenharmony_ci	help
4362306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
4462306a36Sopenharmony_ci	  Generator hardware found on Intel i8xx-based motherboards.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
4762306a36Sopenharmony_ci	  module will be called intel-rng.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	  If unsure, say Y.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciconfig HW_RANDOM_AMD
5262306a36Sopenharmony_ci	tristate "AMD HW Random Number Generator support"
5362306a36Sopenharmony_ci	depends on (X86 || PPC_MAPLE || COMPILE_TEST)
5462306a36Sopenharmony_ci	depends on PCI && HAS_IOPORT_MAP
5562306a36Sopenharmony_ci	default HW_RANDOM
5662306a36Sopenharmony_ci	help
5762306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
5862306a36Sopenharmony_ci	  Generator hardware found on AMD 76x-based motherboards.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
6162306a36Sopenharmony_ci	  module will be called amd-rng.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	  If unsure, say Y.
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciconfig HW_RANDOM_ATMEL
6662306a36Sopenharmony_ci	tristate "Atmel Random Number Generator support"
6762306a36Sopenharmony_ci	depends on (ARCH_AT91 || COMPILE_TEST)
6862306a36Sopenharmony_ci	default HW_RANDOM
6962306a36Sopenharmony_ci	help
7062306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
7162306a36Sopenharmony_ci	  Generator hardware found on Atmel AT91 devices.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
7462306a36Sopenharmony_ci	  module will be called atmel-rng.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci	  If unsure, say Y.
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ciconfig HW_RANDOM_BA431
7962306a36Sopenharmony_ci	tristate "Silex Insight BA431 Random Number Generator support"
8062306a36Sopenharmony_ci	depends on HAS_IOMEM
8162306a36Sopenharmony_ci	help
8262306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
8362306a36Sopenharmony_ci	  Generator hardware based on Silex Insight BA431 IP.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
8662306a36Sopenharmony_ci	  module will be called ba431-rng.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciconfig HW_RANDOM_BCM2835
8962306a36Sopenharmony_ci	tristate "Broadcom BCM2835/BCM63xx Random Number Generator support"
9062306a36Sopenharmony_ci	depends on ARCH_BCM2835 || ARCH_BCM_NSP || ARCH_BCM_5301X || \
9162306a36Sopenharmony_ci		   ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
9262306a36Sopenharmony_ci	default HW_RANDOM
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
9562306a36Sopenharmony_ci	  Generator hardware found on the Broadcom BCM2835 and BCM63xx SoCs.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
9862306a36Sopenharmony_ci	  module will be called bcm2835-rng
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci	  If unsure, say Y.
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciconfig HW_RANDOM_IPROC_RNG200
10362306a36Sopenharmony_ci	tristate "Broadcom iProc/STB RNG200 support"
10462306a36Sopenharmony_ci	depends on ARCH_BCM_IPROC || ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
10562306a36Sopenharmony_ci	default HW_RANDOM
10662306a36Sopenharmony_ci	help
10762306a36Sopenharmony_ci	  This driver provides kernel-side support for the RNG200
10862306a36Sopenharmony_ci	  hardware found on the Broadcom iProc and STB SoCs.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
11162306a36Sopenharmony_ci	  module will be called iproc-rng200
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci	  If unsure, say Y.
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ciconfig HW_RANDOM_GEODE
11662306a36Sopenharmony_ci	tristate "AMD Geode HW Random Number Generator support"
11762306a36Sopenharmony_ci	depends on (X86_32 || COMPILE_TEST)
11862306a36Sopenharmony_ci	depends on PCI
11962306a36Sopenharmony_ci	default HW_RANDOM
12062306a36Sopenharmony_ci	help
12162306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
12262306a36Sopenharmony_ci	  Generator hardware found on the AMD Geode LX.
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
12562306a36Sopenharmony_ci	  module will be called geode-rng.
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci	  If unsure, say Y.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ciconfig HW_RANDOM_N2RNG
13062306a36Sopenharmony_ci	tristate "Niagara2 Random Number Generator support"
13162306a36Sopenharmony_ci	depends on SPARC64
13262306a36Sopenharmony_ci	default HW_RANDOM
13362306a36Sopenharmony_ci	help
13462306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
13562306a36Sopenharmony_ci	  Generator hardware found on Niagara2 cpus.
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
13862306a36Sopenharmony_ci	  module will be called n2-rng.
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci	  If unsure, say Y.
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ciconfig HW_RANDOM_VIA
14362306a36Sopenharmony_ci	tristate "VIA HW Random Number Generator support"
14462306a36Sopenharmony_ci	depends on X86
14562306a36Sopenharmony_ci	default HW_RANDOM
14662306a36Sopenharmony_ci	help
14762306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
14862306a36Sopenharmony_ci	  Generator hardware found on VIA based motherboards.
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
15162306a36Sopenharmony_ci	  module will be called via-rng.
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci	  If unsure, say Y.
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ciconfig HW_RANDOM_IXP4XX
15662306a36Sopenharmony_ci	tristate "Intel IXP4xx NPU HW Pseudo-Random Number Generator support"
15762306a36Sopenharmony_ci	depends on ARCH_IXP4XX || COMPILE_TEST
15862306a36Sopenharmony_ci	default HW_RANDOM
15962306a36Sopenharmony_ci	help
16062306a36Sopenharmony_ci	  This driver provides kernel-side support for the Pseudo-Random
16162306a36Sopenharmony_ci	  Number Generator hardware found on the Intel IXP45x/46x NPU.
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
16462306a36Sopenharmony_ci	  module will be called ixp4xx-rng.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci	  If unsure, say Y.
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ciconfig HW_RANDOM_OMAP
16962306a36Sopenharmony_ci	tristate "OMAP Random Number Generator support"
17062306a36Sopenharmony_ci	depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS || ARCH_MVEBU || ARCH_K3 || COMPILE_TEST
17162306a36Sopenharmony_ci	default HW_RANDOM
17262306a36Sopenharmony_ci	help
17362306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
17462306a36Sopenharmony_ci	  Generator hardware found on OMAP16xx, OMAP2/3/4/5, AM33xx/AM43xx
17562306a36Sopenharmony_ci	  multimedia processors, and Marvell Armada 7k/8k SoCs.
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
17862306a36Sopenharmony_ci	  module will be called omap-rng.
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci	  If unsure, say Y.
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ciconfig HW_RANDOM_OMAP3_ROM
18362306a36Sopenharmony_ci	tristate "OMAP3 ROM Random Number Generator support"
18462306a36Sopenharmony_ci	depends on ARCH_OMAP3 || COMPILE_TEST
18562306a36Sopenharmony_ci	default HW_RANDOM
18662306a36Sopenharmony_ci	help
18762306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
18862306a36Sopenharmony_ci	  Generator hardware found on OMAP34xx processors.
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
19162306a36Sopenharmony_ci	  module will be called omap3-rom-rng.
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ci	  If unsure, say Y.
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ciconfig HW_RANDOM_OCTEON
19662306a36Sopenharmony_ci	tristate "Octeon Random Number Generator support"
19762306a36Sopenharmony_ci	depends on CAVIUM_OCTEON_SOC
19862306a36Sopenharmony_ci	default HW_RANDOM
19962306a36Sopenharmony_ci	help
20062306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
20162306a36Sopenharmony_ci	  Generator hardware found on Octeon processors.
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
20462306a36Sopenharmony_ci	  module will be called octeon-rng.
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci	  If unsure, say Y.
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ciconfig HW_RANDOM_PASEMI
20962306a36Sopenharmony_ci	tristate "PA Semi HW Random Number Generator support"
21062306a36Sopenharmony_ci	depends on PPC_PASEMI || (PPC && COMPILE_TEST)
21162306a36Sopenharmony_ci	default HW_RANDOM
21262306a36Sopenharmony_ci	help
21362306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
21462306a36Sopenharmony_ci	  Generator hardware found on PA Semi PWRficient SoCs.
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
21762306a36Sopenharmony_ci	  module will be called pasemi-rng.
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ci	  If unsure, say Y.
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ciconfig HW_RANDOM_VIRTIO
22262306a36Sopenharmony_ci	tristate "VirtIO Random Number Generator support"
22362306a36Sopenharmony_ci	depends on VIRTIO
22462306a36Sopenharmony_ci	help
22562306a36Sopenharmony_ci	  This driver provides kernel-side support for the virtual Random Number
22662306a36Sopenharmony_ci	  Generator hardware.
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
22962306a36Sopenharmony_ci	  module will be called virtio-rng.  If unsure, say N.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ciconfig HW_RANDOM_MXC_RNGA
23262306a36Sopenharmony_ci	tristate "Freescale i.MX RNGA Random Number Generator"
23362306a36Sopenharmony_ci	depends on SOC_IMX31 || COMPILE_TEST
23462306a36Sopenharmony_ci	default HW_RANDOM
23562306a36Sopenharmony_ci	help
23662306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
23762306a36Sopenharmony_ci	  Generator hardware found on Freescale i.MX processors.
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
24062306a36Sopenharmony_ci	  module will be called mxc-rnga.
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci	  If unsure, say Y.
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ciconfig HW_RANDOM_IMX_RNGC
24562306a36Sopenharmony_ci	tristate "Freescale i.MX RNGC Random Number Generator"
24662306a36Sopenharmony_ci	depends on HAS_IOMEM
24762306a36Sopenharmony_ci	depends on SOC_IMX25 || SOC_IMX6SL || SOC_IMX6SLL || SOC_IMX6UL || COMPILE_TEST
24862306a36Sopenharmony_ci	default HW_RANDOM
24962306a36Sopenharmony_ci	help
25062306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
25162306a36Sopenharmony_ci	  Generator Version C hardware found on some Freescale i.MX
25262306a36Sopenharmony_ci	  processors. Version B is also supported by this driver.
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
25562306a36Sopenharmony_ci	  module will be called imx-rngc.
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ci	  If unsure, say Y.
25862306a36Sopenharmony_ci
25962306a36Sopenharmony_ciconfig HW_RANDOM_INGENIC_RNG
26062306a36Sopenharmony_ci	tristate "Ingenic Random Number Generator support"
26162306a36Sopenharmony_ci	depends on MACH_JZ4780 || MACH_X1000 || COMPILE_TEST
26262306a36Sopenharmony_ci	default HW_RANDOM
26362306a36Sopenharmony_ci	help
26462306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number Generator
26562306a36Sopenharmony_ci	  hardware found in ingenic JZ4780 and X1000 SoC. MIPS Creator CI20 uses
26662306a36Sopenharmony_ci	  JZ4780 SoC, YSH & ATIL CU1000-Neo uses X1000 SoC.
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
26962306a36Sopenharmony_ci	  module will be called ingenic-rng.
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ci	  If unsure, say Y.
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ciconfig HW_RANDOM_INGENIC_TRNG
27462306a36Sopenharmony_ci	tristate "Ingenic True Random Number Generator support"
27562306a36Sopenharmony_ci	depends on MACH_X1830 || COMPILE_TEST
27662306a36Sopenharmony_ci	default HW_RANDOM
27762306a36Sopenharmony_ci	help
27862306a36Sopenharmony_ci	  This driver provides kernel-side support for the True Random Number Generator
27962306a36Sopenharmony_ci	  hardware found in ingenic X1830 SoC. YSH & ATIL CU1830-Neo uses X1830 SoC.
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
28262306a36Sopenharmony_ci	  module will be called ingenic-trng.
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ci	  If unsure, say Y.
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_ciconfig HW_RANDOM_NOMADIK
28762306a36Sopenharmony_ci	tristate "ST-Ericsson Nomadik Random Number Generator support"
28862306a36Sopenharmony_ci	depends on ARCH_NOMADIK || COMPILE_TEST
28962306a36Sopenharmony_ci	default HW_RANDOM
29062306a36Sopenharmony_ci	help
29162306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
29262306a36Sopenharmony_ci	  Generator hardware found on ST-Ericsson SoCs (8815 and 8500).
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
29562306a36Sopenharmony_ci	  module will be called nomadik-rng.
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ci	  If unsure, say Y.
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ciconfig HW_RANDOM_PSERIES
30062306a36Sopenharmony_ci	tristate "pSeries HW Random Number Generator support"
30162306a36Sopenharmony_ci	depends on PPC64 && IBMVIO
30262306a36Sopenharmony_ci	default HW_RANDOM
30362306a36Sopenharmony_ci	help
30462306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
30562306a36Sopenharmony_ci	  Generator hardware found on POWER7+ machines and above
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
30862306a36Sopenharmony_ci	  module will be called pseries-rng.
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_ci	  If unsure, say Y.
31162306a36Sopenharmony_ci
31262306a36Sopenharmony_ciconfig HW_RANDOM_POWERNV
31362306a36Sopenharmony_ci	tristate "PowerNV Random Number Generator support"
31462306a36Sopenharmony_ci	depends on PPC_POWERNV
31562306a36Sopenharmony_ci	default HW_RANDOM
31662306a36Sopenharmony_ci	help
31762306a36Sopenharmony_ci	  This is the driver for Random Number Generator hardware found
31862306a36Sopenharmony_ci	  in POWER7+ and above machines for PowerNV platform.
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
32162306a36Sopenharmony_ci	  module will be called powernv-rng.
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ci	  If unsure, say Y.
32462306a36Sopenharmony_ci
32562306a36Sopenharmony_ciconfig HW_RANDOM_HISI
32662306a36Sopenharmony_ci	tristate "Hisilicon Random Number Generator support"
32762306a36Sopenharmony_ci	depends on ARCH_HISI || COMPILE_TEST
32862306a36Sopenharmony_ci	default HW_RANDOM
32962306a36Sopenharmony_ci	help
33062306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
33162306a36Sopenharmony_ci	  Generator hardware found on Hisilicon Hip04 and Hip05 SoC.
33262306a36Sopenharmony_ci
33362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
33462306a36Sopenharmony_ci	  module will be called hisi-rng.
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_ci	  If unsure, say Y.
33762306a36Sopenharmony_ci
33862306a36Sopenharmony_ciconfig HW_RANDOM_HISTB
33962306a36Sopenharmony_ci	tristate "Hisilicon STB Random Number Generator support"
34062306a36Sopenharmony_ci	depends on ARCH_HISI || COMPILE_TEST
34162306a36Sopenharmony_ci	default ARCH_HISI
34262306a36Sopenharmony_ci	help
34362306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
34462306a36Sopenharmony_ci	  Generator hardware found on Hisilicon Hi37xx SoC.
34562306a36Sopenharmony_ci
34662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
34762306a36Sopenharmony_ci	  module will be called histb-rng.
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ciconfig HW_RANDOM_ST
35062306a36Sopenharmony_ci	tristate "ST Microelectronics HW Random Number Generator support"
35162306a36Sopenharmony_ci	depends on ARCH_STI || COMPILE_TEST
35262306a36Sopenharmony_ci	help
35362306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
35462306a36Sopenharmony_ci	  Generator hardware found on STi series of SoCs.
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
35762306a36Sopenharmony_ci	  module will be called st-rng.
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_ciconfig HW_RANDOM_XGENE
36062306a36Sopenharmony_ci	tristate "APM X-Gene True Random Number Generator (TRNG) support"
36162306a36Sopenharmony_ci	depends on ARCH_XGENE || COMPILE_TEST
36262306a36Sopenharmony_ci	default HW_RANDOM
36362306a36Sopenharmony_ci	help
36462306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
36562306a36Sopenharmony_ci	  Generator hardware found on APM X-Gene SoC.
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
36862306a36Sopenharmony_ci	  module will be called xgene_rng.
36962306a36Sopenharmony_ci
37062306a36Sopenharmony_ci	  If unsure, say Y.
37162306a36Sopenharmony_ci
37262306a36Sopenharmony_ciconfig HW_RANDOM_STM32
37362306a36Sopenharmony_ci	tristate "STMicroelectronics STM32 random number generator"
37462306a36Sopenharmony_ci	depends on ARCH_STM32 || COMPILE_TEST
37562306a36Sopenharmony_ci	depends on HAS_IOMEM
37662306a36Sopenharmony_ci	default HW_RANDOM
37762306a36Sopenharmony_ci	help
37862306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
37962306a36Sopenharmony_ci	  Generator hardware found on STM32 microcontrollers.
38062306a36Sopenharmony_ci
38162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
38262306a36Sopenharmony_ci	  module will be called stm32-rng.
38362306a36Sopenharmony_ci
38462306a36Sopenharmony_ci	  If unsure, say N.
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_ciconfig HW_RANDOM_PIC32
38762306a36Sopenharmony_ci	tristate "Microchip PIC32 Random Number Generator support"
38862306a36Sopenharmony_ci	depends on MACH_PIC32 || COMPILE_TEST
38962306a36Sopenharmony_ci	default HW_RANDOM if MACH_PIC32
39062306a36Sopenharmony_ci	help
39162306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
39262306a36Sopenharmony_ci	  Generator hardware found on a PIC32.
39362306a36Sopenharmony_ci
39462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here. the
39562306a36Sopenharmony_ci	  module will be called pic32-rng.
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ci	  If unsure, say Y.
39862306a36Sopenharmony_ci
39962306a36Sopenharmony_ciconfig HW_RANDOM_POLARFIRE_SOC
40062306a36Sopenharmony_ci	tristate "Microchip PolarFire SoC Random Number Generator support"
40162306a36Sopenharmony_ci	depends on HW_RANDOM && POLARFIRE_SOC_SYS_CTRL
40262306a36Sopenharmony_ci	help
40362306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
40462306a36Sopenharmony_ci	  Generator hardware found on PolarFire SoC (MPFS).
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here. The
40762306a36Sopenharmony_ci	  module will be called mfps_rng.
40862306a36Sopenharmony_ci
40962306a36Sopenharmony_ci	  If unsure, say N.
41062306a36Sopenharmony_ci
41162306a36Sopenharmony_ci
41262306a36Sopenharmony_ciconfig HW_RANDOM_MESON
41362306a36Sopenharmony_ci	tristate "Amlogic Meson Random Number Generator support"
41462306a36Sopenharmony_ci	depends on ARCH_MESON || COMPILE_TEST
41562306a36Sopenharmony_ci	depends on HAS_IOMEM && OF
41662306a36Sopenharmony_ci	default HW_RANDOM if ARCH_MESON
41762306a36Sopenharmony_ci	help
41862306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
41962306a36Sopenharmony_ci	  Generator hardware found on Amlogic Meson SoCs.
42062306a36Sopenharmony_ci
42162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here. the
42262306a36Sopenharmony_ci	  module will be called meson-rng.
42362306a36Sopenharmony_ci
42462306a36Sopenharmony_ci	  If unsure, say Y.
42562306a36Sopenharmony_ci
42662306a36Sopenharmony_ciconfig HW_RANDOM_CAVIUM
42762306a36Sopenharmony_ci	tristate "Cavium ThunderX Random Number Generator support"
42862306a36Sopenharmony_ci	depends on PCI
42962306a36Sopenharmony_ci	depends on ARCH_THUNDER || (ARM64 && COMPILE_TEST)
43062306a36Sopenharmony_ci	default HW_RANDOM
43162306a36Sopenharmony_ci	help
43262306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
43362306a36Sopenharmony_ci	  Generator hardware found on Cavium SoCs.
43462306a36Sopenharmony_ci
43562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
43662306a36Sopenharmony_ci	  module will be called cavium_rng.
43762306a36Sopenharmony_ci
43862306a36Sopenharmony_ci	  If unsure, say Y.
43962306a36Sopenharmony_ci
44062306a36Sopenharmony_ciconfig HW_RANDOM_MTK
44162306a36Sopenharmony_ci	tristate "Mediatek Random Number Generator support"
44262306a36Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
44362306a36Sopenharmony_ci	depends on HAS_IOMEM && OF
44462306a36Sopenharmony_ci	default HW_RANDOM if ARCH_MEDIATEK
44562306a36Sopenharmony_ci	help
44662306a36Sopenharmony_ci	  This driver provides kernel-side support for the Random Number
44762306a36Sopenharmony_ci	  Generator hardware found on Mediatek SoCs.
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here. the
45062306a36Sopenharmony_ci	  module will be called mtk-rng.
45162306a36Sopenharmony_ci
45262306a36Sopenharmony_ci	  If unsure, say Y.
45362306a36Sopenharmony_ci
45462306a36Sopenharmony_ciconfig HW_RANDOM_S390
45562306a36Sopenharmony_ci	tristate "S390 True Random Number Generator support"
45662306a36Sopenharmony_ci	depends on S390
45762306a36Sopenharmony_ci	default HW_RANDOM
45862306a36Sopenharmony_ci	help
45962306a36Sopenharmony_ci	  This driver provides kernel-side support for the True
46062306a36Sopenharmony_ci	  Random Number Generator available as CPACF extension
46162306a36Sopenharmony_ci	  on modern s390 hardware platforms.
46262306a36Sopenharmony_ci
46362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
46462306a36Sopenharmony_ci	  module will be called s390-trng.
46562306a36Sopenharmony_ci
46662306a36Sopenharmony_ci	  If unsure, say Y.
46762306a36Sopenharmony_ci
46862306a36Sopenharmony_ciconfig HW_RANDOM_EXYNOS
46962306a36Sopenharmony_ci	tristate "Samsung Exynos True Random Number Generator support"
47062306a36Sopenharmony_ci	depends on ARCH_EXYNOS || COMPILE_TEST
47162306a36Sopenharmony_ci	depends on HAS_IOMEM
47262306a36Sopenharmony_ci	default HW_RANDOM if ARCH_EXYNOS
47362306a36Sopenharmony_ci	help
47462306a36Sopenharmony_ci	  This driver provides support for the True Random Number
47562306a36Sopenharmony_ci	  Generator available in Exynos SoCs.
47662306a36Sopenharmony_ci
47762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
47862306a36Sopenharmony_ci	  will be called exynos-trng.
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ci	  If unsure, say Y.
48162306a36Sopenharmony_ci
48262306a36Sopenharmony_ciconfig HW_RANDOM_OPTEE
48362306a36Sopenharmony_ci	tristate "OP-TEE based Random Number Generator support"
48462306a36Sopenharmony_ci	depends on OPTEE
48562306a36Sopenharmony_ci	default HW_RANDOM
48662306a36Sopenharmony_ci	help
48762306a36Sopenharmony_ci	  This  driver provides support for OP-TEE based Random Number
48862306a36Sopenharmony_ci	  Generator on ARM SoCs where hardware entropy sources are not
48962306a36Sopenharmony_ci	  accessible to normal world (Linux).
49062306a36Sopenharmony_ci
49162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
49262306a36Sopenharmony_ci	  will be called optee-rng.
49362306a36Sopenharmony_ci
49462306a36Sopenharmony_ci	  If unsure, say Y.
49562306a36Sopenharmony_ci
49662306a36Sopenharmony_ciconfig HW_RANDOM_NPCM
49762306a36Sopenharmony_ci	tristate "NPCM Random Number Generator support"
49862306a36Sopenharmony_ci	depends on ARCH_NPCM || COMPILE_TEST
49962306a36Sopenharmony_ci	depends on HAS_IOMEM
50062306a36Sopenharmony_ci	default HW_RANDOM if ARCH_NPCM
50162306a36Sopenharmony_ci	help
50262306a36Sopenharmony_ci	  This driver provides support for the Random Number
50362306a36Sopenharmony_ci	  Generator hardware available in Nuvoton NPCM SoCs.
50462306a36Sopenharmony_ci
50562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
50662306a36Sopenharmony_ci	  module will be called npcm-rng.
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_ci	  If unsure, say Y.
50962306a36Sopenharmony_ci
51062306a36Sopenharmony_ciconfig HW_RANDOM_KEYSTONE
51162306a36Sopenharmony_ci	depends on ARCH_KEYSTONE || COMPILE_TEST
51262306a36Sopenharmony_ci	depends on HAS_IOMEM && OF
51362306a36Sopenharmony_ci	default HW_RANDOM
51462306a36Sopenharmony_ci	tristate "TI Keystone NETCP SA Hardware random number generator"
51562306a36Sopenharmony_ci	help
51662306a36Sopenharmony_ci	  This option enables Keystone's hardware random generator.
51762306a36Sopenharmony_ci
51862306a36Sopenharmony_ciconfig HW_RANDOM_CCTRNG
51962306a36Sopenharmony_ci	tristate "Arm CryptoCell True Random Number Generator support"
52062306a36Sopenharmony_ci	depends on HAS_IOMEM && OF
52162306a36Sopenharmony_ci	help
52262306a36Sopenharmony_ci	  Say 'Y' to enable the True Random Number Generator driver for the
52362306a36Sopenharmony_ci	  Arm TrustZone CryptoCell family of processors.
52462306a36Sopenharmony_ci	  Currently the CryptoCell 713 and 703 are supported.
52562306a36Sopenharmony_ci	  The driver is supported only in SoC where Trusted Execution
52662306a36Sopenharmony_ci	  Environment is not used.
52762306a36Sopenharmony_ci	  Choose 'M' to compile this driver as a module. The module
52862306a36Sopenharmony_ci	  will be called cctrng.
52962306a36Sopenharmony_ci	  If unsure, say 'N'.
53062306a36Sopenharmony_ci
53162306a36Sopenharmony_ciconfig HW_RANDOM_XIPHERA
53262306a36Sopenharmony_ci	tristate "Xiphera FPGA based True Random Number Generator support"
53362306a36Sopenharmony_ci	depends on HAS_IOMEM
53462306a36Sopenharmony_ci	help
53562306a36Sopenharmony_ci	  This driver provides kernel-side support for Xiphera True Random
53662306a36Sopenharmony_ci	  Number Generator Intellectual Property Core.
53762306a36Sopenharmony_ci
53862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
53962306a36Sopenharmony_ci	  module will be called xiphera-trng.
54062306a36Sopenharmony_ci
54162306a36Sopenharmony_ciconfig HW_RANDOM_ARM_SMCCC_TRNG
54262306a36Sopenharmony_ci	tristate "Arm SMCCC TRNG firmware interface support"
54362306a36Sopenharmony_ci	depends on HAVE_ARM_SMCCC_DISCOVERY
54462306a36Sopenharmony_ci	default HW_RANDOM
54562306a36Sopenharmony_ci	help
54662306a36Sopenharmony_ci	  Say 'Y' to enable the True Random Number Generator driver using
54762306a36Sopenharmony_ci	  the Arm SMCCC TRNG firmware interface. This reads entropy from
54862306a36Sopenharmony_ci	  higher exception levels (firmware, hypervisor). Uses SMCCC for
54962306a36Sopenharmony_ci	  communicating with the firmware:
55062306a36Sopenharmony_ci	  https://developer.arm.com/documentation/den0098/latest/
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
55362306a36Sopenharmony_ci	  module will be called arm_smccc_trng.
55462306a36Sopenharmony_ci
55562306a36Sopenharmony_ciconfig HW_RANDOM_CN10K
55662306a36Sopenharmony_ci       tristate "Marvell CN10K Random Number Generator support"
55762306a36Sopenharmony_ci       depends on HW_RANDOM && PCI && (ARM64 || (64BIT && COMPILE_TEST))
55862306a36Sopenharmony_ci       default HW_RANDOM
55962306a36Sopenharmony_ci       help
56062306a36Sopenharmony_ci	 This driver provides support for the True Random Number
56162306a36Sopenharmony_ci	 generator available in Marvell CN10K SoCs.
56262306a36Sopenharmony_ci
56362306a36Sopenharmony_ci	 To compile this driver as a module, choose M here.
56462306a36Sopenharmony_ci	 The module will be called cn10k_rng. If unsure, say Y.
56562306a36Sopenharmony_ci
56662306a36Sopenharmony_ciconfig HW_RANDOM_JH7110
56762306a36Sopenharmony_ci	tristate "StarFive JH7110 Random Number Generator support"
56862306a36Sopenharmony_ci	depends on SOC_STARFIVE || COMPILE_TEST
56962306a36Sopenharmony_ci	help
57062306a36Sopenharmony_ci	  This driver provides support for the True Random Number
57162306a36Sopenharmony_ci	  Generator in StarFive JH7110 SoCs.
57262306a36Sopenharmony_ci
57362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here.
57462306a36Sopenharmony_ci	  The module will be called jh7110-trng.
57562306a36Sopenharmony_ci
57662306a36Sopenharmony_ciendif # HW_RANDOM
57762306a36Sopenharmony_ci
57862306a36Sopenharmony_ciconfig UML_RANDOM
57962306a36Sopenharmony_ci	depends on UML
58062306a36Sopenharmony_ci	select HW_RANDOM
58162306a36Sopenharmony_ci	tristate "UML Random Number Generator support"
58262306a36Sopenharmony_ci	help
58362306a36Sopenharmony_ci	  This option enables UML's "hardware" random number generator.  It
58462306a36Sopenharmony_ci	  attaches itself to the host's /dev/random, supplying as much entropy
58562306a36Sopenharmony_ci	  as the host has, rather than the small amount the UML gets from its
58662306a36Sopenharmony_ci	  own drivers. It registers itself as a rng-core driver thus providing
58762306a36Sopenharmony_ci	  a device which is usually called /dev/hwrng. This hardware random
58862306a36Sopenharmony_ci	  number generator does feed into the kernel's random number generator
58962306a36Sopenharmony_ci	  entropy pool.
59062306a36Sopenharmony_ci
59162306a36Sopenharmony_ci	  If unsure, say Y.
592