linux/drivers/char/hw_random
Sam Protsenko 10bb6ac8f8 hwrng: exynos - Add SMC based TRNG operation
On some Exynos chips like Exynos850 the access to Security Sub System
(SSS) registers is protected with TrustZone, and therefore only possible
from EL3 monitor software. The Linux kernel is running in EL1, so the
only way for the driver to obtain TRNG data is via SMC calls to EL3
monitor. Implement such SMC operation and use it when EXYNOS_SMC flag is
set in the corresponding chip driver data.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2024-06-28 11:35:49 +10:00
..
amd-rng.c hwrng: amd - Convert PCIBIOS_* return codes to errnos 2024-06-07 19:46:38 +08:00
arm_smccc_trng.c hwrng: drivers - add missing Arm & Cavium MODULE_DESCRIPTION() macros 2024-06-21 22:04:16 +10:00
atmel-rng.c hwrng: atmel - Convert to platform remove callback returning void 2023-12-15 17:52:53 +08:00
ba431-rng.c hwrng: ba431 - use dev_err_probe after failed registration 2023-07-22 13:59:37 +12:00
bcm2835-rng.c hwrng: bcm2835 - Fix hwrng throughput regression 2023-09-15 18:29:45 +08:00
cavium-rng-vf.c hwrng: drivers - add missing Arm & Cavium MODULE_DESCRIPTION() macros 2024-06-21 22:04:16 +10:00
cavium-rng.c hwrng: drivers - add missing Arm & Cavium MODULE_DESCRIPTION() macros 2024-06-21 22:04:16 +10:00
cctrng.c hwrng: cctrng - Convert to platform remove callback returning void 2023-12-15 17:52:54 +08:00
cctrng.h hwrng: cctrng - introduce Arm CryptoCell driver 2020-04-16 16:49:20 +10:00
cn10k-rng.c hwrng: cn10k - use dev_err_probe 2023-07-28 18:20:25 +08:00
core.c hwrng: core - Convert sprintf/snprintf to sysfs_emit 2024-04-02 10:49:38 +08:00
exynos-trng.c hwrng: exynos - Add SMC based TRNG operation 2024-06-28 11:35:49 +10:00
geode-rng.c hwrng: geode - fix accessing registers 2023-09-15 18:29:46 +08:00
hisi-rng.c hwrng: hisi - use dev_err_probe 2024-03-08 19:23:24 +08:00
histb-rng.c hwrng: histb - Move driver to drivers/char/hw_random/histb-rng.c 2023-05-12 18:48:01 +08:00
imx-rngc.c hwrng: imx-rngc - reasonable timeout for initial seed 2023-09-20 13:15:29 +08:00
ingenic-rng.c hwrng: ingenic - Convert to platform remove callback returning void 2023-12-15 17:52:54 +08:00
ingenic-trng.c hwrng: Explicitly include correct DT includes 2023-08-04 17:09:26 +08: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 - Implement suspend and resume calls 2023-08-18 17:01:09 +08:00
ixp4xx-rng.c hwrng: ixp4xx - Make use of the helper function devm_platform_ioremap_resource() 2021-09-17 11:06:14 +08:00
jh7110-trng.c hwrng: starfive - Add runtime pm ops 2023-12-22 12:30:19 +08:00
Kconfig arch: Remove Itanium (IA-64) architecture 2023-09-11 08:13:17 +00:00
ks-sa-rng.c hwrng: ks-sa - Convert to platform remove callback returning void 2023-12-15 17:52:54 +08:00
Makefile hwrng: histb - Move driver to drivers/char/hw_random/histb-rng.c 2023-05-12 18:48:01 +08:00
meson-rng.c hwrng: meson - add support for S4 2023-10-05 18:16:31 +08:00
mpfs-rng.c hwrng: mpfs - removed unneeded call to platform_set_drvdata() 2023-09-15 18:29:45 +08:00
mtk-rng.c hwrng: mtk - add mt7986 support 2022-10-21 19:15:35 +08:00
mxc-rnga.c hwrng: mxc-rnga - Drop usage of platform_driver_probe() 2024-04-02 10:49:39 +08:00
n2-asm.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
n2-drv.c Normalise "name (ad@dr)" MODULE_AUTHORs to "name <ad@dr>" 2024-03-06 13:07:39 -08:00
n2rng.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nomadik-rng.c ARM: 9377/1: hwrng: nomadik: drop owner assignment 2024-04-18 12:09:26 +01:00
npcm-rng.c hwrng: npcm - Convert to platform remove callback returning void 2023-12-15 17:52:54 +08:00
octeon-rng.c hwrng: octeon - Fix warnings on 32-bit platforms 2023-09-15 18:29:46 +08:00
omap3-rom-rng.c hwrng: omap - add missing MODULE_DESCRIPTION() macro 2024-06-07 19:47:59 +08:00
omap-rng.c hwrng: omap - add missing MODULE_DESCRIPTION() macro 2024-06-07 19:47:59 +08:00
optee-rng.c hwrng: optee - remove redundant initialization to variable rng_size 2022-04-29 13:44:58 +08:00
pasemi-rng.c hwrng: Explicitly include correct DT includes 2023-08-04 17:09:26 +08:00
pic32-rng.c hwrng: Explicitly include correct DT includes 2023-08-04 17:09:26 +08:00
powernv-rng.c random: do not include <asm/archrandom.h> from random.h 2022-12-20 03:13:45 +01: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 random: do not include <asm/archrandom.h> from random.h 2022-12-20 03:13:45 +01:00
st-rng.c hwrng: st - add MODULE_DESCRIPTION 2023-09-15 18:29:45 +08:00
stm32-rng.c hwrng: stm32 - use sizeof(*priv) instead of sizeof(struct stm32_rng_private) 2024-06-07 19:46:39 +08:00
timeriomem-rng.c hwrng: timeriomem - Convert to platform remove callback returning void 2023-12-15 17:52:54 +08:00
via-rng.c hwrng: via - Fix comment typo 2022-07-22 16:22:04 +08:00
virtio-rng.c hwrng: virtio: drop owner assignment 2024-05-22 08:31:16 -04:00
xgene-rng.c hwrng: xgene - Convert to platform remove callback returning void 2023-12-15 17:52:54 +08:00
xiphera-trng.c hwrng: xiphera - removed unnneded platform_set_drvdata() 2023-09-15 18:29:45 +08:00