crypto: Add Versal TRNG driver
From: | Harsh Jain <h.jain-AT-amd.com> | |
To: | <herbert-AT-gondor.apana.org.au>, <davem-AT-davemloft.net>, <linux-crypto-AT-vger.kernel.org>, <devicetree-AT-vger.kernel.org>, <mounika.botcha-AT-amd.com>, <sarat.chand.savitala-AT-amd.com>, <mohan.dhanawade-AT-amd.com>, <michal.simek-AT-amd.com>, <smueller-AT-chronox.de>, <robh-AT-kernel.org>, <krzk+dt-AT-kernel.org>, <conor+dt-AT-kernel.org> | |
Subject: | [PATCH V6 0/3] crypto: Add Versal TRNG driver | |
Date: | Mon, 25 Aug 2025 12:46:57 +0530 | |
Message-ID: | <20250825071700.819759-1-h.jain@amd.com> | |
Cc: | Harsh Jain <h.jain-AT-amd.com> | |
Archive-link: | Article |
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 v5 - Direct include header file in df_sp80090a.c - Add internal/drbg.h Changes in v5 - Direct include header file - Fix review-by tag position 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 | 247 ++++++++++ crypto/drbg.c | 244 +--------- drivers/crypto/Kconfig | 13 + drivers/crypto/xilinx/Makefile | 1 + drivers/crypto/xilinx/xilinx-trng.c | 435 ++++++++++++++++++ include/crypto/df_sp80090a.h | 27 ++ include/crypto/drbg.h | 25 +- include/crypto/internal/drbg.h | 54 +++ 12 files changed, 833 insertions(+), 265 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 create mode 100644 include/crypto/internal/drbg.h -- 2.34.1