RE: [PATCH] crypto: caam - adjust RNG timing to support more devices

From: Meenakshi Aggarwal
Date: Mon Jul 24 2023 - 01:13:33 EST


Hi Bastian,

Please share the required information.

Thanks,
Meenakshi

> -----Original Message-----
> From: Meenakshi Aggarwal <meenakshi.aggarwal@xxxxxxx>
> Sent: Wednesday, July 19, 2023 12:31 PM
> To: Bastian Krause <bst@xxxxxxxxxxxxxx>; Horia Geanta
> <horia.geanta@xxxxxxx>; Varun Sethi <V.Sethi@xxxxxxx>; Pankaj Gupta
> <pankaj.gupta@xxxxxxx>; Gaurav Jain <gaurav.jain@xxxxxxx>;
> herbert@xxxxxxxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx; linux-
> crypto@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Cc: Victoria Milhoan <vicki.milhoan@xxxxxxxxxxxxx>; Dan Douglass
> <dan.douglass@xxxxxxx>; Vipul Kumar <vipul_kumar@xxxxxxxxxx>;
> kernel@xxxxxxxxxxxxxx
> Subject: RE: [PATCH] crypto: caam - adjust RNG timing to support more devices
>
> Hi Bastian,
>
> We have tested the patch on i.mx8mm board and we did not face any issue with
> the patch.
>
> Please share your imx8mm board revision and complete logs (including
> bootloader logs), It will help in investigating the issue you are facing.
>
> Thanks,
> Meenakshi
>
> > -----Original Message-----
> > From: Bastian Krause <bst@xxxxxxxxxxxxxx>
> > Sent: Tuesday, July 18, 2023 3:13 PM
> > To: Meenakshi Aggarwal <meenakshi.aggarwal@xxxxxxx>; Horia Geanta
> > <horia.geanta@xxxxxxx>; Varun Sethi <V.Sethi@xxxxxxx>; Pankaj Gupta
> > <pankaj.gupta@xxxxxxx>; Gaurav Jain <gaurav.jain@xxxxxxx>;
> > herbert@xxxxxxxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx; linux-
> > crypto@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> > Cc: Victoria Milhoan <vicki.milhoan@xxxxxxxxxxxxx>; Dan Douglass
> > <dan.douglass@xxxxxxx>; Vipul Kumar <vipul_kumar@xxxxxxxxxx>;
> > kernel@xxxxxxxxxxxxxx
> > Subject: Re: [PATCH] crypto: caam - adjust RNG timing to support more
> > devices
> >
> > On 7/17/23 14:43, Bastian Krause wrote:
> > > On 6/12/23 10:26, meenakshi.aggarwal@xxxxxxx wrote:
> > >> From: Victoria Milhoan <vicki.milhoan@xxxxxxxxxxxxx>
> > >>
> > >> Adjust RNG timing parameters to support more i.MX6 devices.
> > >>
> > >> Signed-off-by: Victoria Milhoan <vicki.milhoan@xxxxxxxxxxxxx>
> > >> Signed-off-by: Dan Douglass <dan.douglass@xxxxxxx>
> > >> Signed-off-by: Vipul Kumar <vipul_kumar@xxxxxxxxxx>
> > >> Signed-off-by: Horia Geantă <horia.geanta@xxxxxxx>
> > >> ---
> > >> drivers/crypto/caam/ctrl.c | 4 ++--
> > >> 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > This patch seems to breaks CAAM RNG instantiation on an i.MX8MM at my
> end:
> > >
> > > caam 30900000.crypto: Entropy delay = 3200 caam 30900000.crypto:
> > > Entropy delay = 3600 [...] caam 30900000.crypto: Entropy delay =
> > > 12400 caam 30900000.crypto: failed to instantiate RNG
> > > caam: probe of 30900000.crypto failed with error -11
> > >
> > > If I revert this patch or increase RTSDCTL_ENT_DLY_MAX to a value >
> > > 66800, it works again:
> > >
> > > caam 30900000.crypto: Entropy delay = 32800 caam 30900000.crypto:
> > > Entropy delay = 33200 [...] caam 30900000.crypto: Entropy delay =
> > > 66800 caam 30900000.crypto: Instantiated RNG4 SH0 caam
> > > 30900000.crypto: Instantiated RNG4 SH1 caam 30900000.crypto: device
> > > ID = 0x0a16040100000000 (Era 9) caam 30900000.crypto: job rings = 2,
> > > qi =
> > > 0 caam algorithms registered in /proc/crypto caam 30900000.crypto:
> > > caam pkc algorithms registered in /proc/crypto caam 30900000.crypto:
> > > registering rng-caam Executing RNG SELF-TEST with wait
> > > random: crng init done
> > > caam 30900000.crypto: rng crypto API alg registered prng-caam
> >
> > This ^ was the kernel log for..
> >
> >
> > --- a/drivers/crypto/caam/regs.h
> > +++ b/drivers/crypto/caam/regs.h
> > @@@ -522,7 -522,7 +522,7 @@@ struct rng4tst
> > #define RTSDCTL_ENT_DLY_SHIFT 16
> > #define RTSDCTL_ENT_DLY_MASK (0xffff << RTSDCTL_ENT_DLY_SHIFT)
> > #define RTSDCTL_ENT_DLY_MIN 3200
> > --#define RTSDCTL_ENT_DLY_MAX 12800
> > ++#define RTSDCTL_ENT_DLY_MAX 70000
> > #define RTSDCTL_SAMP_SIZE_MASK 0xffff
> > #define RTSDCTL_SAMP_SIZE_VAL 512
> > u32 rtsdctl; /* seed control register */
> >
> >
> > For completion's sake: Reverting this patch..
> >
> >
> > --- a/drivers/crypto/caam/ctrl.c
> > +++ b/drivers/crypto/caam/ctrl.c
> > @@ -383,7 +383,7 @@ static void kick_trng(struct device *dev, int ent_delay)
> > /* min. freq. count, equal to 1/4 of the entropy sample length */
> > wr_reg32(&r4tst->rtfrqmin, val >> 2);
> > /* max. freq. count, equal to 16 times the entropy sample length */
> > - wr_reg32(&r4tst->rtfrqmax, val << 4);
> > + wr_reg32(&r4tst->rtfrqmax, RTFRQMAX_DISABLE);
> > }
> >
> > wr_reg32(&r4tst->rtsdctl, (val << RTSDCTL_ENT_DLY_SHIFT) |
> >
> >
> > ..produces this kernel log (without RNG SELF-TEST):
> >
> > caam 30900000.crypto: Entropy delay = 3200 caam 30900000.crypto:
> > Entropy delay = 3600 caam 30900000.crypto: Instantiated RNG4 SH0 caam
> > 30900000.crypto: Instantiated RNG4 SH1 caam 30900000.crypto: device ID
> > =
> > 0x0a16040100000000 (Era 9) caam 30900000.crypto: job rings = 2, qi = 0
> > caam algorithms registered in /proc/crypto caam 30900000.crypto: caam
> > pkc algorithms registered in /proc/crypto caam 30900000.crypto:
> > registering rng- caam caam 30900000.crypto: rng crypto API alg
> > registered prng-caam
> > random: crng init done
> >
> > Regards,
> > Bastian
> >
> > >>
> > >> diff --git a/drivers/crypto/caam/ctrl.c
> > >> b/drivers/crypto/caam/ctrl.c index 5fed3cf354c0..62dd069942e4
> > >> 100644
> > >> --- a/drivers/crypto/caam/ctrl.c
> > >> +++ b/drivers/crypto/caam/ctrl.c
> > >> @@ -383,8 +383,8 @@ static void kick_trng(struct device *dev, int
> > >> ent_delay)
> > >> wr_reg32(&r4tst->rtsdctl, val);
> > >> /* min. freq. count, equal to 1/4 of the entropy sample
> > >> length */
> > >> wr_reg32(&r4tst->rtfrqmin, ent_delay >> 2);
> > >> - /* disable maximum frequency count */
> > >> - wr_reg32(&r4tst->rtfrqmax, RTFRQMAX_DISABLE);
> > >> + /* max. freq. count, equal to 16 times the entropy sample
> > >> +length */
> > >> + wr_reg32(&r4tst->rtfrqmax, ent_delay << 4);
> > >> /* read the control register */
> > >> val = rd_reg32(&r4tst->rtmctl);
> > >> start_rng:
> > >
> >
> > --
> > Pengutronix e.K. | |
> > Steuerwalder Str. 21 |
> > http://www.p/
> >
> en%2F&data=05%7C01%7Cmeenakshi.aggarwal%40nxp.com%7C3e036baed8c9
> 4cf104
> >
> 4008db8825e5ce%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C6382
> 534685
> >
> 76971721%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2l
> uMzIiL
> >
> CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=vbtE1IciakfHjf
> JQiB
> > VxOGN%2Bm7JBlT%2B1obDRf0eyOuM%3D&reserved=0
> >
> gutronix.de%2F&data=05%7C01%7Cmeenakshi.aggarwal%40nxp.com%7C1f556
> >
> d6802434c00ef4f08db87736527%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C
> >
> 0%7C0%7C638252701909887583%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4
> >
> wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C
> > %7C%7C&sdata=2vCBBdo%2FAkyz%2BaLXcDyeursw3Gle%2FKosiO%2FdPysOd
> 3
> > Q%3D&reserved=0 |
> > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |