[PATCH] i.MX8 crypto/fsl: Enable fsl CAAM rng driver

2022-04-19 Thread Gaurav Jain
rng driver enabled to read random number using caam.

Signed-off-by: Gaurav Jain 
---
 drivers/crypto/fsl/jr.c  | 8 +++-
 drivers/crypto/fsl/rng.c | 8 +++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c
index 85a3dac796..acd29924f7 100644
--- a/drivers/crypto/fsl/jr.c
+++ b/drivers/crypto/fsl/jr.c
@@ -767,8 +767,14 @@ init:
return -1;
}
 #if CONFIG_IS_ENABLED(OF_CONTROL)
-   if (ofnode_valid(scu_node))
+   if (ofnode_valid(scu_node)) {
+   if (IS_ENABLED(CONFIG_DM_RNG)) {
+   ret = device_bind_driver(NULL, "caam-rng", "caam-rng", 
NULL);
+   if (ret)
+   printf("Couldn't bind rng driver (%d)\n", ret);
+   }
return ret;
+   }
 #endif
 
 #ifdef CONFIG_FSL_CORENET
diff --git a/drivers/crypto/fsl/rng.c b/drivers/crypto/fsl/rng.c
index 0636494805..b568c337a6 100644
--- a/drivers/crypto/fsl/rng.c
+++ b/drivers/crypto/fsl/rng.c
@@ -26,10 +26,16 @@ struct caam_rng_priv {
 
 static int caam_rng_read_one(struct caam_rng_priv *priv)
 {
+   struct udevice *dev;
int size = ALIGN(CAAM_RNG_MAX_FIFO_STORE_SIZE, ARCH_DMA_MINALIGN);
int ret;
 
-   ret = run_descriptor_jr(priv->desc);
+   if (uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(caam_jr), 
&dev) || !dev) {
+   printf("No CAAM device\n");
+   return -ENODEV;
+   }
+
+   ret = misc_ioctl(dev, CAAM_JR_RUN_DESC, priv->desc);
if (ret < 0)
return -EIO;
 
-- 
2.25.1



Re: [PATCH] i.MX8 crypto/fsl: Enable fsl CAAM rng driver

2022-04-21 Thread Stefano Babic

Hi Gaurav,

Il 19.04.22 16:04, Gaurav Jain ha scritto:

rng driver enabled to read random number using caam.

Signed-off-by: Gaurav Jain 
---
  drivers/crypto/fsl/jr.c  | 8 +++-
  drivers/crypto/fsl/rng.c | 8 +++-
  2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c
index 85a3dac796..acd29924f7 100644
--- a/drivers/crypto/fsl/jr.c
+++ b/drivers/crypto/fsl/jr.c
@@ -767,8 +767,14 @@ init:
return -1;
}
  #if CONFIG_IS_ENABLED(OF_CONTROL)
-   if (ofnode_valid(scu_node))
+   if (ofnode_valid(scu_node)) {
+   if (IS_ENABLED(CONFIG_DM_RNG)) {
+   ret = device_bind_driver(NULL, "caam-rng", "caam-rng", 
NULL);
+   if (ret)
+   printf("Couldn't bind rng driver (%d)\n", ret);
+   }
return ret;
+   }
  #endif
  
  #ifdef CONFIG_FSL_CORENET

diff --git a/drivers/crypto/fsl/rng.c b/drivers/crypto/fsl/rng.c
index 0636494805..b568c337a6 100644
--- a/drivers/crypto/fsl/rng.c
+++ b/drivers/crypto/fsl/rng.c
@@ -26,10 +26,16 @@ struct caam_rng_priv {
  
  static int caam_rng_read_one(struct caam_rng_priv *priv)

  {
+   struct udevice *dev;
int size = ALIGN(CAAM_RNG_MAX_FIFO_STORE_SIZE, ARCH_DMA_MINALIGN);
int ret;
  
-	ret = run_descriptor_jr(priv->desc);

+   if (uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(caam_jr), 
&dev) || !dev) {
+   printf("No CAAM device\n");
+   return -ENODEV;
+   }
+
+   ret = misc_ioctl(dev, CAAM_JR_RUN_DESC, priv->desc);
if (ret < 0)
return -EIO;
  


This breaks the kontron_sl28 board. Can you check and fix it, please ? 
Thanks !


Best regards,
Stefano

--
=
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=


RE: [EXT] Re: [PATCH] i.MX8 crypto/fsl: Enable fsl CAAM rng driver

2022-04-22 Thread Gaurav Jain
Hello Stefano

> -Original Message-
> From: Stefano Babic 
> Sent: Friday, April 22, 2022 2:29 AM
> To: Gaurav Jain ; Stefano Babic ; u-
> b...@lists.denx.de
> Cc: Fabio Estevam ; Priyanka Jain
> ; Ye Li ; Horia Geanta
> ; Silvano Di Ninno ; Varun
> Sethi ; dl-uboot-imx 
> Subject: [EXT] Re: [PATCH] i.MX8 crypto/fsl: Enable fsl CAAM rng driver
> 
> Caution: EXT Email
> 
> Hi Gaurav,
> 
> Il 19.04.22 16:04, Gaurav Jain ha scritto:
> > rng driver enabled to read random number using caam.
> >
> > Signed-off-by: Gaurav Jain 
> > ---
> >   drivers/crypto/fsl/jr.c  | 8 +++-
> >   drivers/crypto/fsl/rng.c | 8 +++-
> >   2 files changed, 14 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c index
> > 85a3dac796..acd29924f7 100644
> > --- a/drivers/crypto/fsl/jr.c
> > +++ b/drivers/crypto/fsl/jr.c
> > @@ -767,8 +767,14 @@ init:
> >   return -1;
> >   }
> >   #if CONFIG_IS_ENABLED(OF_CONTROL)
> > - if (ofnode_valid(scu_node))
> > + if (ofnode_valid(scu_node)) {
> > + if (IS_ENABLED(CONFIG_DM_RNG)) {
> > + ret = device_bind_driver(NULL, "caam-rng", 
> > "caam-rng", NULL);
> > + if (ret)
> > + printf("Couldn't bind rng driver (%d)\n", 
> > ret);
> > + }
> >   return ret;
> > + }
> >   #endif
> >
> >   #ifdef CONFIG_FSL_CORENET
> > diff --git a/drivers/crypto/fsl/rng.c b/drivers/crypto/fsl/rng.c index
> > 0636494805..b568c337a6 100644
> > --- a/drivers/crypto/fsl/rng.c
> > +++ b/drivers/crypto/fsl/rng.c
> > @@ -26,10 +26,16 @@ struct caam_rng_priv {
> >
> >   static int caam_rng_read_one(struct caam_rng_priv *priv)
> >   {
> > + struct udevice *dev;
> >   int size = ALIGN(CAAM_RNG_MAX_FIFO_STORE_SIZE,
> ARCH_DMA_MINALIGN);
> >   int ret;
> >
> > - ret = run_descriptor_jr(priv->desc);
> > + if (uclass_get_device_by_driver(UCLASS_MISC, DM_DRIVER_GET(caam_jr),
> &dev) || !dev) {
> > + printf("No CAAM device\n");
> > + return -ENODEV;
> > + }
> > +
> > + ret = misc_ioctl(dev, CAAM_JR_RUN_DESC, priv->desc);
> >   if (ret < 0)
> >   return -EIO;
> >
> 
> This breaks the kontron_sl28 board. Can you check and fix it, please ?
> Thanks !

Sent v2 of this patch after fixing the error.

Regards
Gaurav Jain
> 
> Best regards,
> Stefano
> 
> --
> =
> 
> DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
> =
>