From a3341e90177f5e5bdb9f99c5f909c3c73fb2c390 Mon Sep 17 00:00:00 2001 From: Lin Jinhan Date: Fri, 29 Jan 2021 09:13:52 +0800 Subject: [PATCH] drivers: crypto: drop rng api from crypto driver rng module is not belongs to crypto driver anymore. Change-Id: I6d837397621267edb586034ff87b82fc33a30d5b Signed-off-by: Lin Jinhan --- drivers/crypto/crypto-uclass.c | 10 ---- drivers/crypto/rockchip/crypto_v2.c | 73 ----------------------------- include/crypto.h | 16 ------- 3 files changed, 99 deletions(-) diff --git a/drivers/crypto/crypto-uclass.c b/drivers/crypto/crypto-uclass.c index c6e4c2dbdc..c1c4c08bc9 100644 --- a/drivers/crypto/crypto-uclass.c +++ b/drivers/crypto/crypto-uclass.c @@ -206,16 +206,6 @@ int crypto_rsa_verify(struct udevice *dev, rsa_key *ctx, u8 *sign, u8 *output) return ops->rsa_verify(dev, ctx, sign, output); } -int crypto_get_trng(struct udevice *dev, u8 *output, u32 len) -{ - const struct dm_crypto_ops *ops = device_get_ops(dev); - - if (!ops || !ops->get_trng) - return -ENOSYS; - - return ops->get_trng(dev, output, len); -} - UCLASS_DRIVER(crypto) = { .id = UCLASS_CRYPTO, .name = "crypto", diff --git a/drivers/crypto/rockchip/crypto_v2.c b/drivers/crypto/rockchip/crypto_v2.c index aef4de95bd..85c26b152b 100644 --- a/drivers/crypto/rockchip/crypto_v2.c +++ b/drivers/crypto/rockchip/crypto_v2.c @@ -87,19 +87,6 @@ typedef u32 paddr_t; fdt_addr_t crypto_base; -static int hw_check_trng_exist(void) -{ - u32 tmp = 0, val = 0; - - tmp = crypto_read(CRYPTO_RNG_SAMPLE_CNT); - crypto_write(50, CRYPTO_RNG_SAMPLE_CNT); - - val = crypto_read(CRYPTO_RNG_SAMPLE_CNT); - crypto_write(tmp, CRYPTO_RNG_SAMPLE_CNT); - - return val; -} - static void word2byte(u32 word, u8 *ch, u32 endian) { /* 0: Big-Endian 1: Little-Endian */ @@ -361,42 +348,6 @@ exit: return ret; } -static int rk_trng(u8 *trng, u32 len) -{ - u32 i, reg_ctrl = 0; - int ret = -EINVAL; - u32 buf[8]; - - if (len > CRYPTO_TRNG_MAX) - return -EINVAL; - - memset(buf, 0, sizeof(buf)); - - /* enable osc_ring to get entropy, sample period is set as 50 */ - crypto_write(50, CRYPTO_RNG_SAMPLE_CNT); - - reg_ctrl |= CRYPTO_RNG_256_bit_len; - reg_ctrl |= CRYPTO_RNG_SLOWER_SOC_RING_1; - reg_ctrl |= CRYPTO_RNG_ENABLE; - reg_ctrl |= CRYPTO_RNG_START; - reg_ctrl |= CRYPTO_WRITE_MASK_ALL; - - crypto_write(reg_ctrl | CRYPTO_WRITE_MASK_ALL, CRYPTO_RNG_CTL); - RK_WHILE_TIME_OUT(crypto_read(CRYPTO_RNG_CTL) & CRYPTO_RNG_START, - RK_CRYPTO_TIME_OUT, ret); - - if (ret == 0) { - for (i = 0; i < ARRAY_SIZE(buf); i++) - buf[i] = crypto_read(CRYPTO_RNG_DOUT_0 + i * 4); - memcpy(trng, buf, len); - } - - /* close TRNG */ - crypto_write(0 | CRYPTO_WRITE_MASK_ALL, CRYPTO_RNG_CTL); - - return ret; -} - static u32 rockchip_crypto_capability(struct udevice *dev) { u32 val = 0; @@ -413,9 +364,6 @@ static u32 rockchip_crypto_capability(struct udevice *dev) CRYPTO_RSA3072 | CRYPTO_RSA4096; - if (hw_check_trng_exist()) - val |= CRYPTO_TRNG; - return val; } @@ -560,33 +508,12 @@ static int rockchip_crypto_rsa_verify(struct udevice *dev, rsa_key *ctx, } #endif -static int rockchip_crypto_get_trng(struct udevice *dev, u8 *output, u32 len) -{ - int ret; - u32 i; - - if (!dev || !output || !len) - return -EINVAL; - - for (i = 0; i < len / CRYPTO_TRNG_MAX; i++) { - ret = rk_trng(output + i * CRYPTO_TRNG_MAX, CRYPTO_TRNG_MAX); - if (ret) - goto fail; - } - - ret = rk_trng(output + i * CRYPTO_TRNG_MAX, len % CRYPTO_TRNG_MAX); - -fail: - return ret; -} - static const struct dm_crypto_ops rockchip_crypto_ops = { .capability = rockchip_crypto_capability, .sha_init = rockchip_crypto_sha_init, .sha_update = rockchip_crypto_sha_update, .sha_final = rockchip_crypto_sha_final, .rsa_verify = rockchip_crypto_rsa_verify, - .get_trng = rockchip_crypto_get_trng, }; /* diff --git a/include/crypto.h b/include/crypto.h index 396c455bae..8b28192058 100644 --- a/include/crypto.h +++ b/include/crypto.h @@ -23,8 +23,6 @@ #define CRYPTO_RSA3072 BIT(13) #define CRYPTO_RSA4096 BIT(14) -#define CRYPTO_TRNG BIT(15) - #define BYTE2WORD(bytes) ((bytes) / 4) #define BITS2BYTE(nbits) ((nbits) / 8) #define BITS2WORD(nbits) ((nbits) / 32) @@ -54,9 +52,6 @@ struct dm_crypto_ops { /* RSA verify */ int (*rsa_verify)(struct udevice *dev, rsa_key *ctx, u8 *sign, u8 *output); - - /* TRNG get */ - int (*get_trng)(struct udevice *dev, u8 *output, u32 len); }; /** @@ -148,15 +143,4 @@ int crypto_sha_regions_csum(struct udevice *dev, sha_context *ctx, */ int crypto_rsa_verify(struct udevice *dev, rsa_key *ctx, u8 *sign, u8 *output); -/** - * crypto_get_trng() - Crypto get trng - * - * @dev: crypto device - * @output: output trng data - * @len: trng len to get - * - * @return 0 on success, otherwise failed - */ -int crypto_get_trng(struct udevice *dev, u8 *output, u32 len); - #endif