mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-27 13:05:03 +08:00
0888d04b47
The "Arm True Random Number Generator Firmware Interface"[1] provides an SMCCC based interface to a true hardware random number generator. So far we are using that in arch_get_random_seed(), but it might be useful to expose the entropy through the /dev/hwrng device as well. This allows to assess the quality of the implementation, by using "rngtest" from the rng-tools package, for example. Add a simple platform driver implementing the hw_random interface. The corresponding platform device is created by the SMCCC core code, we just match it here by name and provide a module alias. Since the firmware takes care about serialisation, this can happily coexist with the arch_get_random_seed() bits. [1] https://developer.arm.com/documentation/den0098/latest/ Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
49 lines
2.0 KiB
Makefile
49 lines
2.0 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for HW Random Number Generator (RNG) device drivers.
|
|
#
|
|
|
|
obj-$(CONFIG_HW_RANDOM) += rng-core.o
|
|
rng-core-y := core.o
|
|
obj-$(CONFIG_HW_RANDOM_TIMERIOMEM) += timeriomem-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_INTEL) += intel-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_AMD) += amd-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_ATMEL) += atmel-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_BA431) += ba431-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_GEODE) += geode-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_N2RNG) += n2-rng.o
|
|
n2-rng-y := n2-drv.o n2-asm.o
|
|
obj-$(CONFIG_HW_RANDOM_VIA) += via-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_EXYNOS) += exynos-trng.o
|
|
obj-$(CONFIG_HW_RANDOM_IXP4XX) += ixp4xx-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_OMAP) += omap-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_OMAP3_ROM) += omap3-rom-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_PASEMI) += pasemi-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_VIRTIO) += virtio-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_TX4939) += tx4939-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_MXC_RNGA) += mxc-rnga.o
|
|
obj-$(CONFIG_HW_RANDOM_IMX_RNGC) += imx-rngc.o
|
|
obj-$(CONFIG_HW_RANDOM_INGENIC_RNG) += ingenic-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_INGENIC_TRNG) += ingenic-trng.o
|
|
obj-$(CONFIG_HW_RANDOM_OCTEON) += octeon-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_NOMADIK) += nomadik-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_PSERIES) += pseries-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_POWERNV) += powernv-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_HISI) += hisi-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_BCM2835) += bcm2835-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_IPROC_RNG200) += iproc-rng200.o
|
|
obj-$(CONFIG_HW_RANDOM_ST) += st-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_XGENE) += xgene-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_STM32) += stm32-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_PIC32) += pic32-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_MESON) += meson-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_CAVIUM) += cavium-rng.o cavium-rng-vf.o
|
|
obj-$(CONFIG_HW_RANDOM_MTK) += mtk-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_S390) += s390-trng.o
|
|
obj-$(CONFIG_HW_RANDOM_KEYSTONE) += ks-sa-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_OPTEE) += optee-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_NPCM) += npcm-rng.o
|
|
obj-$(CONFIG_HW_RANDOM_CCTRNG) += cctrng.o
|
|
obj-$(CONFIG_HW_RANDOM_XIPHERA) += xiphera-trng.o
|
|
obj-$(CONFIG_HW_RANDOM_ARM_SMCCC_TRNG) += arm_smccc_trng.o
|