Versal TRNG module consist of array of Ring Oscillators as entropy source and a deterministic CTR_DRBG random bit generator (DRBG). Add driver to registers entropy source to hwrng and CTR_DRBG generator to crypto subsystem. Derivation Function (DF) defined in NIST SP-800-90A for CTR_DRBG is not supported in current TRNG IP. For DF processing, Update drbg module to export CTR_DRBG derivation function in df_sp80090a module. Testing Following compile tests done * CONFIG_CRYPTO_DRBG_CTR = n and CONFIG_CRYPTO_DEV_XILINX_TRNG = n * CONFIG_CRYPTO_DRBG_CTR = y and CONFIG_CRYPTO_DEV_XILINX_TRNG = n * CONFIG_CRYPTO_DRBG_CTR = n and CONFIG_CRYPTO_DEV_XILINX_TRNG = m * CONFIG_CRYPTO_DRBG_CTR = y and CONFIG_CRYPTO_DEV_XILINX_TRNG = m Changes in v4 - Add df_sp80090a module to export CTR_DRBG DF function Changes in v3 - Fix yaml warning introduced in v2. - Squash fix patches Changes in v2 - Fixed signoff chain - Added 3 patch to fix Kernel test robot bugs Harsh Jain (2): crypto: xilinx: Add TRNG driver for Versal crypto: drbg: Export CTR DRBG DF functions Mounika Botcha (1): dt-bindings: crypto: Add node for True Random Number Generator .../bindings/crypto/xlnx,versal-trng.yaml | 36 ++ MAINTAINERS | 6 + crypto/Kconfig | 8 +- crypto/Makefile | 2 + crypto/df_sp80090a.c | 243 ++++++++++ crypto/drbg.c | 244 +--------- drivers/crypto/Kconfig | 13 + drivers/crypto/xilinx/Makefile | 1 + drivers/crypto/xilinx/xilinx-trng.c | 434 ++++++++++++++++++ include/crypto/df_sp80090a.h | 27 ++ include/crypto/drbg.h | 18 + 11 files changed, 791 insertions(+), 241 deletions(-) create mode 100644 Documentation/devicetree/bindings/crypto/xlnx,versal-trng.yaml create mode 100644 crypto/df_sp80090a.c create mode 100644 drivers/crypto/xilinx/xilinx-trng.c create mode 100644 include/crypto/df_sp80090a.h -- 2.34.1