On Fri, Oct 29, 2021 at 10:49:59PM +0530, sgoutham@xxxxxxxxxxx wrote: > From: Sunil Goutham <sgoutham@xxxxxxxxxxx> > > This RNG device is present on Marvell OcteonTx2 silicons as well and > also provides entropy health status. > > HW continuously checks health condition of entropy and reports > faults. Fault is in terms of co-processor cycles since last fault > detected. This doesn't get cleared and only updated when new fault > is detected. Also there are chances of detecting false positives. > So to detect a entropy failure SW has to check if failures are > persistent ie cycles elapsed is frequently updated by HW. > > This patch adds support to detect health failures using below algo. > 1. Consider any fault detected before 10ms as a false positive and ignore. > 10ms is chosen randomly, no significance. > 2. Upon first failure detection make a note of cycles elapsed and when this > error happened in realtime (cntvct). > 3. Upon subsequent failure, check if this is new or a old one by comparing > current cycles with the ones since last failure. cycles or time since > last failure is calculated using cycles and time info captured at (2). > > HEALTH_CHECK status register is not available to VF, hence had to map > PF registers. Also since cycles are in terms of co-processor cycles, > had to retrieve co-processor clock rate from RST device. > > Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxxx> > --- > v1->v2: > - Fixed COMPILE_TEST failures > - Since silicon checks are done using standard ARM specific macros > had to remove COMPILE_TEST. > --- > drivers/char/hw_random/Kconfig | 2 +- > drivers/char/hw_random/cavium-rng-vf.c | 194 +++++++++++++++++++++++++++++++-- > drivers/char/hw_random/cavium-rng.c | 11 +- > 3 files changed, 190 insertions(+), 17 deletions(-) Patch applied. Thanks. -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt