[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z7F2wdG99A0na-ie@gondor.apana.org.au>
Date: Sun, 16 Feb 2025 13:25:21 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: Nicolas Frattaroli <nicolas.frattaroli@...labora.com>
Cc: Philipp Zabel <p.zabel@...gutronix.de>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Heiko Stuebner <heiko@...ech.de>,
Olivia Mackall <olivia@...enic.com>,
Daniel Golle <daniel@...rotopia.org>,
Aurelien Jarno <aurelien@...el32.net>,
Sebastian Reichel <sebastian.reichel@...labora.com>,
kernel@...labora.com, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-rockchip@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-crypto@...r.kernel.org,
XiaoDong Huang <derrick.huang@...k-chips.com>,
Conor Dooley <conor.dooley@...rochip.com>,
Lin Jinhan <troy.lin@...k-chips.com>
Subject: Re: [PATCH v2 0/7] RK3588 Hardware Random Number Generator Driver
On Tue, Feb 04, 2025 at 04:35:45PM +0100, Nicolas Frattaroli wrote:
> This series adds support for the Rockchip RK3588's standalone hardware
> random number generator to the existing mainline rockchip-rng driver.
>
> The RK3588 has several hardware random number generators, one in each
> the secure-world and non-secure-world crypto accelerator, and one
> standalone one in each the secure-world and non-secure-world, so 4
> hwrngs in total. This series adds support for the standalone hwrng,
> which is an entirely new IP on this SoC and distinct from the one in the
> Crypto IP.
>
> The decision to integrate this into the existing rockchip-rng driver was
> made based on a few factors:
>
> 1. The driver is fairly small.
> 2. While not much code is shared, some code is, specifically relating to
> power management, the hwrng interface and the probe function.
> 3. I don't want users to figure out why "CONFIG_HW_RANDOM_ROCKCHIP"
> doesn't enable the RK3588 one, and I really don't see a reason to
> build without both of them considering the other RK3588 TRNG (for
> which there is not yet a driver iirc) *does* share code with the
> existing rockchip-rng driver.
>
> Here are the rngtest5 results from this new driver on my board:
>
> user@...ian-rockchip-rock5b-rk3588:~$ cat /sys/class/misc/hw_random/rng_current
> rockchip-rng
> user@...ian-rockchip-rock5b-rk3588:~$ sudo cat /dev/hwrng | rngtest -c 10000
> [...]
> rngtest: bits received from input: 200000032
> rngtest: FIPS 140-2 successes: 9990
> rngtest: FIPS 140-2 failures: 10
> rngtest: FIPS 140-2(2001-10-10) Monobit: 1
> rngtest: FIPS 140-2(2001-10-10) Poker: 0
> rngtest: FIPS 140-2(2001-10-10) Runs: 5
> rngtest: FIPS 140-2(2001-10-10) Long run: 4
> rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
> rngtest: input channel speed: (min=212.255; avg=29089.272; max=19531250.000)Kibits/s
> rngtest: FIPS tests speed: (min=64.005; avg=102.494; max=153.818)Mibits/s
> rngtest: Program run time: 11292340 microseconds
>
> As you can see, the quality of the entropy is quite good, and the
> throughput is an acceptable 29 Mibit/s.
>
> The series starts out with two patches for the bindings. The bindings
> are separate from the rockchip,rk3568-rng bindings, as the required
> properties differ. The SCMI reset ID numbers are needed because mainline
> uses a different reset numbering scheme, but TF-A uses the downstream
> numbering scheme as far as I know. The TRNG must be reset through SCMI.
>
> Next up are two cleanup patches for the existing driver. Even if a
> decision is made to split the drivers for whatever reason, these two
> patches should be used in the rk3568-rng driver as they get rid of small
> peculiarities in the code without meaningfully changing how the driver
> works.
>
> Next up is the main driver patch that adds support for the new TRNG. As
> the driver was developed by reading the downstream vendor code for this
> particular device and reworking it, I've included the downstream vendor
> developer who wrote the driver as a Co-developed-by tag with their
> existing downstream sign-off.
>
> The penultimate patch adds the node to the rk3588-base.dtsi, and
> enables it.
>
> The final patch adds myself to the MAINTAINERS of this driver and these
> bindings.
>
> Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@...labora.com>
> ---
> Changes in v2:
> - Drop mailmap patch
> - driver: restore the OF matching to how it was, and change soc_data to
> const
> - dts: get rid of the board specific DTS enablement and instead enable
> it in rk3588-base
> - bindings: drop the change of adding myself to maintainers from the
> bindings patch, make it a separate patch
> - bindings: get rid of the comments
> - bindings: set status = "okay" in the example
> - bindings: make interrupts property required
> - Add a patch to add me to the MAINTAINERS for this driver/binding
> - Link to v1: https://lore.kernel.org/r/20250130-rk3588-trng-submission-v1-0-97ff76568e49@collabora.com
>
> ---
> Nicolas Frattaroli (7):
> dt-bindings: reset: Add SCMI reset IDs for RK3588
> dt-bindings: rng: add binding for Rockchip RK3588 RNG
> hwrng: rockchip: store dev pointer in driver struct
> hwrng: rockchip: eliminate some unnecessary dereferences
> hwrng: rockchip: add support for rk3588's standalone TRNG
> arm64: dts: rockchip: Add rng node to RK3588
> MAINTAINERS: add Nicolas Frattaroli to rockchip-rng maintainers
>
> .../bindings/rng/rockchip,rk3588-rng.yaml | 60 +++++
> MAINTAINERS | 2 +
> arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 9 +
> drivers/char/hw_random/Kconfig | 3 +-
> drivers/char/hw_random/rockchip-rng.c | 250 ++++++++++++++++++---
> include/dt-bindings/reset/rockchip,rk3588-cru.h | 41 +++-
> 6 files changed, 335 insertions(+), 30 deletions(-)
> ---
> base-commit: 72deda0abee6e705ae71a93f69f55e33be5bca5c
> change-id: 20250130-rk3588-trng-submission-055255c96689
>
> Best regards,
> --
> Nicolas Frattaroli <nicolas.frattaroli@...labora.com>
Patches 1-5,7 applied. Thanks.
--
Email: Herbert Xu <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Powered by blists - more mailing lists