Re: [PATCH v2] hwrng: cavium: Check health status while reading random data

From: Herbert Xu
Date: Fri Nov 19 2021 - 23:26:53 EST


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