[U-Boot] [PATCH 3/3] crypto/fsl - enable raw data instead of von Neumann data

Ruchika Gupta ruchika.gupta at freescale.com
Wed Jul 22 18:37:53 CEST 2015


Acked-by: Ruchika Gupta<ruchika.gupta at freescale.com>

> -----Original Message-----
> From: Sun York-R58495
> Sent: Sunday, July 19, 2015 3:43 AM
> To: Gupta Ruchika-R66431
> Subject: Re: [PATCH 3/3] crypto/fsl - enable raw data instead of von
> Neumann data
> 
> Ruchika,
> 
> Please comment/ack.
> 
> York
> 
> On 05/05/2015 06:48 AM, Alex Porosanu wrote:
> > The sampling of the oscillator can be done in multiple modes for
> > generating the entropy value. By default, this is set to von Neumann.
> > This patch changes the sampling to raw data, since it has been
> > discovered that the generated entropy has a better 'quality'.
> >
> > Signed-off-by: Alex Porosanu <alexandru.porosanu at freescale.com>
> > ---
> >  drivers/crypto/fsl/jr.c | 11 ++++++++++-
> >  include/fsl_sec.h       | 10 ++++++++++
> >  2 files changed, 20 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c index
> > aa527ec..3560668 100644
> > --- a/drivers/crypto/fsl/jr.c
> > +++ b/drivers/crypto/fsl/jr.c
> > @@ -408,8 +408,17 @@ static void kick_trng(int ent_delay)
> >  	sec_out32(&rng->rtfreqmin, ent_delay >> 2);
> >  	/* disable maximum frequency count */
> >  	sec_out32(&rng->rtfreqmax, RTFRQMAX_DISABLE);
> > +	/* read the control register */
> > +	val = sec_in32(&rng->rtmctl);
> > +	/*
> > +	 * select raw sampling in both entropy shifter
> > +	 * and statistical checker
> > +	 */
> > +	sec_setbits32(&val, RTMCTL_SAMP_MODE_RAW_ES_SC);
> >  	/* put RNG4 into run mode */
> > -	sec_clrbits32(&rng->rtmctl, RTMCTL_PRGM);
> > +	sec_clrbits32(&val, RTMCTL_PRGM);
> > +	/* write back the control register */
> > +	sec_out32(&rng->rtmctl, val);
> >  }
> >
> >  static int rng_init(void)
> > diff --git a/include/fsl_sec.h b/include/fsl_sec.h index
> > c84b6ad..672bcef 100644
> > --- a/include/fsl_sec.h
> > +++ b/include/fsl_sec.h
> > @@ -32,6 +32,16 @@
> >  /* RNG4 TRNG test registers */
> >  struct rng4tst {
> >  #define RTMCTL_PRGM 0x00010000	/* 1 -> program mode, 0 -> run mode
> */
> > +#define RTMCTL_SAMP_MODE_VON_NEUMANN_ES_SC     0 /* use von
> Neumann data in
> > +						    both entropy shifter and
> > +						    statistical checker */
> > +#define RTMCTL_SAMP_MODE_RAW_ES_SC             1 /* use raw data in
> both
> > +						    entropy shifter and
> > +						    statistical checker */
> > +#define RTMCTL_SAMP_MODE_VON_NEUMANN_ES_RAW_SC 2 /* use
> von Neumann data in
> > +						    entropy shifter, raw data
> > +						    in statistical checker */
> > +#define RTMCTL_SAMP_MODE_INVALID               3 /* invalid combination
> */
> >  	u32 rtmctl;		/* misc. control register */
> >  	u32 rtscmisc;		/* statistical check misc. register */
> >  	u32 rtpkrrng;		/* poker range register */
> >


More information about the U-Boot mailing list