linux-stable/drivers/char/hw_random
Andre Przywara 0888d04b47 hwrng: Add Arm SMCCC TRNG based driver
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>
2021-08-06 19:45:26 +08:00
..
amd-rng.c hwrng: rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
arm_smccc_trng.c hwrng: Add Arm SMCCC TRNG based driver 2021-08-06 19:45:26 +08:00
atmel-rng.c hwrng: atmel - add new platform support for sam9x60 2019-11-15 13:44:17 +08:00
ba431-rng.c hwrng: ba431 - use devm_platform_ioremap_resource() to simplify 2021-03-19 21:59:46 +11:00
bcm2835-rng.c hwrng: bcm2835 - add reset support 2021-03-13 00:04:06 +11:00
cavium-rng-vf.c hwrng: drivers - Use device-managed registration API 2019-08-02 14:44:33 +10:00
cavium-rng.c hwrng: cavium - make two functions static 2018-03-09 22:45:34 +08:00
cctrng.c hwrng: cctrng - delete redundant printing of return value 2021-03-19 21:59:47 +11:00
cctrng.h hwrng: cctrng - introduce Arm CryptoCell driver 2020-04-16 16:49:20 +10:00
core.c hwrng: core - Use DEVICE_ATTR_<RW|RO> macro 2021-05-28 15:11:45 +08:00
exynos-trng.c hwrng: exynos - Use pm_runtime_resume_and_get() to replace open coding 2021-06-03 20:24:04 +08:00
geode-rng.c hwrng: rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
hisi-rng.c hwrng: hisi - Fix W=1 unused variable warning 2020-07-09 18:25:12 +10:00
imx-rngc.c hwrng: imx-rngc - irq already prints an error 2020-11-06 14:31:15 +11:00
ingenic-rng.c crypto: ingenic - Drop kfree for memory allocated with devm_kzalloc 2020-08-21 14:43:51 +10:00
ingenic-trng.c hwrng: ingenic - Fix a resource leak in an error handling path 2021-01-03 08:41:37 +11:00
intel-rng.c hwrng: rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
iproc-rng200.c hwrng: iproc-rng200 - Move enable/disable in separate function 2021-01-03 08:41:37 +11:00
ixp4xx-rng.c hw_random: ixp4xx: Add OF support 2021-06-17 15:31:05 +02:00
Kconfig hwrng: Add Arm SMCCC TRNG based driver 2021-08-06 19:45:26 +08:00
ks-sa-rng.c hwrng: ks-sa - Use pm_runtime_resume_and_get() to replace open coding 2021-06-03 20:24:04 +08:00
Makefile hwrng: Add Arm SMCCC TRNG based driver 2021-08-06 19:45:26 +08:00
meson-rng.c hwrng: meson - use devm_platform_ioremap_resource() to simplify code 2019-10-26 02:09:55 +11:00
mtk-rng.c hwrng: mediatek - Use devm_platform_ioremap_resource() in mtk_rng_probe() 2019-10-05 01:06:18 +10:00
mxc-rnga.c hwrng: mxc-rnga - use semicolons rather than commas to separate statements 2020-10-02 18:02:15 +10:00
n2-asm.S
n2-drv.c hwrng: n2-drv - fix typo 2019-08-08 12:07:49 +10:00
n2rng.h
nomadik-rng.c amba: Make the remove callback return void 2021-02-02 14:25:50 +01:00
npcm-rng.c hwrng: npcm - modify readl to readb 2020-10-02 18:02:13 +10:00
octeon-rng.c hwrng: octeon - Fix sparse warnings 2020-07-09 18:25:14 +10:00
omap-rng.c hwrng: omap - Use pm_runtime_resume_and_get() to replace open coding 2021-06-03 20:24:04 +08:00
omap3-rom-rng.c change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
optee-rng.c hwrng: optee - Use device-managed registration API 2021-02-10 17:55:58 +11:00
pasemi-rng.c hwrng: pasemi - use devm_platform_ioremap_resource() to simplify code 2019-10-26 02:09:56 +11:00
pic32-rng.c hwrng: pic32 - Use device-managed registration API 2021-03-13 00:04:00 +11:00
powernv-rng.c hwrng: drivers - Use device-managed registration API 2019-08-02 14:44:33 +10:00
pseries-rng.c char: hw_random: pseries-rng: Demote non-conformant kernel-doc header 2021-05-21 10:09:30 +02:00
s390-trng.c s390/trng: set quality to 1024 2020-11-09 11:21:00 +01:00
st-rng.c hwrng: st - Fix W=1 unused variable warning 2020-07-09 18:25:12 +10:00
stm32-rng.c hwrng: stm32 - use semicolons rather than commas to separate statements 2020-10-02 18:02:14 +10:00
timeriomem-rng.c hwrng: timeriomem - Use device-managed registration API 2021-02-10 17:56:01 +11:00
tx4939-rng.c hwrng: tx4939 - use devm_platform_ioremap_resource() to simplify code 2019-10-26 02:09:57 +11:00
via-rng.c hwrng: rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
virtio-rng.c hwrng: virtio - Constify id_table[] 2020-07-09 18:25:21 +10:00
xgene-rng.c hwrng: xgene - Delete an error message in xgene_rng_probe() 2020-04-16 16:49:22 +10:00
xiphera-trng.c hwrng: xiphera-trng - use devm_platform_ioremap_resource() to simplify 2021-03-07 15:13:14 +11:00