File tree Expand file tree Collapse file tree 2 files changed +10
-4
lines changed Expand file tree Collapse file tree 2 files changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -341,8 +341,12 @@ static void kick_trng(struct platform_device *pdev, int ent_delay)
341
341
ctrl = (struct caam_ctrl __iomem * )ctrlpriv -> ctrl ;
342
342
r4tst = & ctrl -> r4tst [0 ];
343
343
344
- /* put RNG4 into program mode */
345
- clrsetbits_32 (& r4tst -> rtmctl , 0 , RTMCTL_PRGM );
344
+ /*
345
+ * Setting both RTMCTL:PRGM and RTMCTL:TRNG_ACC causes TRNG to
346
+ * properly invalidate the entropy in the entropy register and
347
+ * force re-generation.
348
+ */
349
+ clrsetbits_32 (& r4tst -> rtmctl , 0 , RTMCTL_PRGM | RTMCTL_ACC );
346
350
347
351
/*
348
352
* Performance-wise, it does not make sense to
@@ -372,7 +376,8 @@ static void kick_trng(struct platform_device *pdev, int ent_delay)
372
376
* select raw sampling in both entropy shifter
373
377
* and statistical checker; ; put RNG4 into run mode
374
378
*/
375
- clrsetbits_32 (& r4tst -> rtmctl , RTMCTL_PRGM , RTMCTL_SAMP_MODE_RAW_ES_SC );
379
+ clrsetbits_32 (& r4tst -> rtmctl , RTMCTL_PRGM | RTMCTL_ACC ,
380
+ RTMCTL_SAMP_MODE_RAW_ES_SC );
376
381
}
377
382
378
383
static int caam_get_era_from_hw (struct caam_ctrl __iomem * ctrl )
Original file line number Diff line number Diff line change @@ -487,7 +487,8 @@ struct rngtst {
487
487
488
488
/* RNG4 TRNG test registers */
489
489
struct rng4tst {
490
- #define RTMCTL_PRGM 0x00010000 /* 1 -> program mode, 0 -> run mode */
490
+ #define RTMCTL_ACC BIT(5) /* TRNG access mode */
491
+ #define RTMCTL_PRGM BIT(16) /* 1 -> program mode, 0 -> run mode */
491
492
#define RTMCTL_SAMP_MODE_VON_NEUMANN_ES_SC 0 /* use von Neumann data in
492
493
both entropy shifter and
493
494
statistical checker */
You can’t perform that action at this time.
0 commit comments