Hello Heinrich,

On 2024-02-07 08:12, Heinrich Schuchardt wrote:
On 2/7/24 01:02, Jonas Karlman wrote:
Replace the rockchip,cryptov1-rng compatible with compatibles used in
the linux device tree for RK3288, RK3328 and RK3399 to ease sync of SoC
device tree from linux.

Signed-off-by: Jonas Karlman <jo...@kwiboo.se>

It is strange that U-Boot only uses the random number generation while
Linux only seems to use the crypto algorithm acceleration.

U-Boot has some crypto accelerator drivers in drivers/crypto/. But here
we only make use of modular exponentiation (see struct mod_exp_ops). We
could improve on crypto acceleration.

Pleas, let's keep in mind that using crypto accelerators doesn't
always result in improved performance;  it all depends on the
workload and on the particular SoC.  For example, performing
crypto operations on small chunks of data may be much faster when
performed on a CPU core.  Another example is that some crypto IP
cores don't use the available CPU caches at all, which inevitably
slows them down.

Though, crypto IP cores are quite often more power-efficient vs.
performing the same crypto operations on a CPU core, which seems
to be the main reason why they get included in a number of SoCs.
Of course, this power efficiency becomes noticeable only when
offloading crypto operations performed on large chunks of data,
or when offloading for sizable amounts of time.

The current change looks good to me.

Reviewed-by: Heinrich Schuchardt <xypron.g...@gmx.de>

---
  arch/arm/dts/rk3328-u-boot.dtsi |  2 +-
  arch/arm/dts/rk3399-u-boot.dtsi |  2 +-
  drivers/rng/rockchip_rng.c      | 10 +++++++++-
  3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/arch/arm/dts/rk3328-u-boot.dtsi b/arch/arm/dts/rk3328-u-boot.dtsi
index e087b02893c1..d805c2f394f8 100644
--- a/arch/arm/dts/rk3328-u-boot.dtsi
+++ b/arch/arm/dts/rk3328-u-boot.dtsi
@@ -28,7 +28,7 @@
        };

        rng: rng@ff060000 {
-               compatible = "rockchip,cryptov1-rng";
+               compatible = "rockchip,rk3328-crypto";
                reg = <0x0 0xff060000 0x0 0x4000>;
                status = "okay";
        };
diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi
index 3423b882c437..87b173e59579 100644
--- a/arch/arm/dts/rk3399-u-boot.dtsi
+++ b/arch/arm/dts/rk3399-u-boot.dtsi
@@ -30,7 +30,7 @@
        };

        rng: rng@ff8b8000 {
-               compatible = "rockchip,cryptov1-rng";
+               compatible = "rockchip,rk3399-crypto";
                reg = <0x0 0xff8b8000 0x0 0x1000>;
                status = "okay";
        };
diff --git a/drivers/rng/rockchip_rng.c b/drivers/rng/rockchip_rng.c
index 705b424cf3dd..e82b5572fec5 100644
--- a/drivers/rng/rockchip_rng.c
+++ b/drivers/rng/rockchip_rng.c
@@ -302,7 +302,15 @@ static const struct dm_rng_ops rockchip_rng_ops = {

  static const struct udevice_id rockchip_rng_match[] = {
        {
-               .compatible = "rockchip,cryptov1-rng",
+               .compatible = "rockchip,rk3288-crypto",
+               .data = (ulong)&rk_cryptov1_soc_data,
+       },
+       {
+               .compatible = "rockchip,rk3328-crypto",
+               .data = (ulong)&rk_cryptov1_soc_data,
+       },
+       {
+               .compatible = "rockchip,rk3399-crypto",
                .data = (ulong)&rk_cryptov1_soc_data,
        },
        {

Reply via email to