Message ID | 20250430-rk3576-hwrng-v1-0-480c15b5843e@collabora.com |
---|---|
Headers | show |
Series | RK3576 Hardware RNG | expand |
On Wed, Apr 30, 2025 at 06:16:33PM +0200, Nicolas Frattaroli wrote: > Gee Nicolas, how come your mom lets you write two Rockchip HWRNG drivers > in a year? > > In short, RK3576 (and RK3562 and RK3528) introduce another HWRNG IP. It > actually has quite a few cool features, but I ignored the cool bits and > went straight for the true entropy. Some of the cool bits someone else > may wish to add in the future: AES-CTR PRNG that's regularly reseeded > from the entropy, adjustments for oscillator and oscillator ring lengths > to maximise entropy generation, automatic continuous quality checking of > the produced entropy by the hardware itself, etc. > > In testing, it seems to produce about 2 mbit/s of high quality entropy > on the RK3576 with its default settings when we read the TRNG entropy > output directly. That's less than we'd get if we had the hardware use > the PRNG to stretch it, but I've decided to leave that up to Linux's > entropy pool implementation for now. > > RK3562 and RK3528 probably just need a compatible and a DTS node to > enable it as well, but I don't have any RK3562/RK3528 boards to test > this with, so it's not done in this series. > > Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> > --- > Nicolas Frattaroli (3): > dt-bindings: rng: rockchip,rk3588-rng: add rk3576-rng compatible > hwrng: rockchip - add support for RK3576's RNG > arm64: dts: rockchip: add RK3576 RNG node > > .../bindings/rng/rockchip,rk3588-rng.yaml | 5 +- > arch/arm64/boot/dts/rockchip/rk3576.dtsi | 8 +++ > drivers/char/hw_random/rockchip-rng.c | 73 ++++++++++++++++++++++ > 3 files changed, 84 insertions(+), 2 deletions(-) > --- > base-commit: 4e0a9c660788594b5b49ac07f0fbdccd2218431e > change-id: 20250429-rk3576-hwrng-8c308b5711ae > > Best regards, > -- > Nicolas Frattaroli <nicolas.frattaroli@collabora.com> Patches 1-2 applied. Thanks.
Gee Nicolas, how come your mom lets you write two Rockchip HWRNG drivers in a year? In short, RK3576 (and RK3562 and RK3528) introduce another HWRNG IP. It actually has quite a few cool features, but I ignored the cool bits and went straight for the true entropy. Some of the cool bits someone else may wish to add in the future: AES-CTR PRNG that's regularly reseeded from the entropy, adjustments for oscillator and oscillator ring lengths to maximise entropy generation, automatic continuous quality checking of the produced entropy by the hardware itself, etc. In testing, it seems to produce about 2 mbit/s of high quality entropy on the RK3576 with its default settings when we read the TRNG entropy output directly. That's less than we'd get if we had the hardware use the PRNG to stretch it, but I've decided to leave that up to Linux's entropy pool implementation for now. RK3562 and RK3528 probably just need a compatible and a DTS node to enable it as well, but I don't have any RK3562/RK3528 boards to test this with, so it's not done in this series. Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> --- Nicolas Frattaroli (3): dt-bindings: rng: rockchip,rk3588-rng: add rk3576-rng compatible hwrng: rockchip - add support for RK3576's RNG arm64: dts: rockchip: add RK3576 RNG node .../bindings/rng/rockchip,rk3588-rng.yaml | 5 +- arch/arm64/boot/dts/rockchip/rk3576.dtsi | 8 +++ drivers/char/hw_random/rockchip-rng.c | 73 ++++++++++++++++++++++ 3 files changed, 84 insertions(+), 2 deletions(-) --- base-commit: 4e0a9c660788594b5b49ac07f0fbdccd2218431e change-id: 20250429-rk3576-hwrng-8c308b5711ae Best regards,