[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240618003743.2975-1-semen.protsenko@linaro.org>
Date: Mon, 17 Jun 2024 19:37:36 -0500
From: Sam Protsenko <semen.protsenko@...aro.org>
To: Ćukasz Stelmach <l.stelmach@...sung.com>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Rob Herring <robh@...nel.org>,
Conor Dooley <conor+dt@...nel.org>
Cc: Olivia Mackall <olivia@...enic.com>,
Herbert Xu <herbert@...dor.apana.org.au>,
Alim Akhtar <alim.akhtar@...sung.com>,
linux-samsung-soc@...r.kernel.org,
linux-crypto@...r.kernel.org,
devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: [PATCH 0/7] hwrng: exynos: Add support for Exynos850
Exynos850 has True Random Number Generator (TRNG) block which is very
similar to Exynos5250 for which the driver already exists
(exynos-trng.c). There are two differences though:
1. Additional SSS PCLK clock has to be enabled to make TRNG registers
accessible.
2. All SSS registers (including TRNG area) are protected with
TrustZone and can only be accessed from EL3 monitor. So the
corresponding SMC calls have to be used instead to interact with
TRNG block.
This patch series enables TRNG support on Exynos850 SoC. It was tested
on the E850-96 board running Debian rootfs like this:
8<-------------------------------------------------------------->8
# cat /sys/devices/virtual/misc/hw_random/rng_current
exyswd_rng
# dd if=/dev/hwrng bs=100000 count=1 > /dev/null
...
122KB/s
# apt install rng-tools5
# rngtest -c 1000 < /dev/hwrng
...
rngtest: starting FIPS tests...
rngtest: bits received from input: 20000032
rngtest: FIPS 140-2 successes: 1000
rngtest: FIPS 140-2 failures: 0
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 0
rngtest: FIPS 140-2(2001-10-10) Long run: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=941.855; avg=965.515;
max=968.236)Kibits/s
rngtest: FIPS tests speed: (min=49.542; avg=52.886;
max=53.577)Mibits/s
rngtest: Program run time: 20590194 microseconds
8<-------------------------------------------------------------->8
Sam Protsenko (7):
dt-bindings: rng: Rename exynos5250-trng to exynos-trng
dt-bindings: rng: Add Exynos850 support to exynos-trng
hwrng: exynos: Improve coding style
hwrng: exynos: Implement bus clock control
hwrng: exynos: Add SMC based TRNG operation
hwrng: exynos: Enable Exynos850 support
arm64: dts: exynos850: Enable TRNG
.../bindings/rng/samsung,exynos-trng.yaml | 85 +++++++
.../bindings/rng/samsung,exynos5250-trng.yaml | 44 ----
MAINTAINERS | 2 +-
arch/arm64/boot/dts/exynos/exynos850.dtsi | 8 +
drivers/char/hw_random/exynos-trng.c | 216 ++++++++++++++----
5 files changed, 266 insertions(+), 89 deletions(-)
create mode 100644 Documentation/devicetree/bindings/rng/samsung,exynos-trng.yaml
delete mode 100644 Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.yaml
--
2.39.2
Powered by blists - more mailing lists