summaryrefslogtreecommitdiff
path: root/drivers/crypto
diff options
context:
space:
mode:
authorShravani Dingari <shravanid@nvidia.com>2013-03-05 15:05:25 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 13:07:34 -0700
commitf3795ffd3e840feb200b7395a7b3fa4f8742d1e1 (patch)
tree3cace59ac3d200edd4f601c26f22ec4f45538a65 /drivers/crypto
parent5d9024cb292fedb599ad2c7616241aadf1426d05 (diff)
crypto: tegra-se: Change SE DRBG settings
Change in encryption mode, reseed interval and RNG source according to the RNG characterization done Bug 1058470 Change-Id: Ib2f095315a87424ea7989d89b9e73892957aed37 Signed-off-by: Shravani Dingari <shravanid@nvidia.com> Reviewed-on: http://git-master/r/206270 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'drivers/crypto')
-rw-r--r--drivers/crypto/tegra-se.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/crypto/tegra-se.c b/drivers/crypto/tegra-se.c
index 7cfd770eeb5a..eb0095e89cfa 100644
--- a/drivers/crypto/tegra-se.c
+++ b/drivers/crypto/tegra-se.c
@@ -185,7 +185,7 @@ static DEFINE_SPINLOCK(rsa_key_slot_lock);
#define RSA_MIN_SIZE 64
#define RSA_MAX_SIZE 256
-#define RNG_RESEED_INTERVAL 100
+#define RNG_RESEED_INTERVAL 0x00773594
#define TEGRA_SE_RSA_CONTEXT_SAVE_KEYSLOT_COUNT 4
static DEFINE_SPINLOCK(key_slot_lock);
@@ -351,7 +351,7 @@ static void tegra_se_config_algo(struct tegra_se_dev *se_dev,
case SE_AES_OP_MODE_RNG_X931:
case SE_AES_OP_MODE_RNG_DRBG:
val = SE_CONFIG_ENC_ALG(ALG_RNG) |
- SE_CONFIG_ENC_MODE(MODE_KEY128) |
+ SE_CONFIG_ENC_MODE(MODE_KEY192) |
SE_CONFIG_DST(DST_MEMORY);
break;
case SE_AES_OP_MODE_ECB:
@@ -596,21 +596,19 @@ static void tegra_se_config_crypto(struct tegra_se_dev *se_dev,
se_writel(se_dev, val, SE_CRYPTO_REG_OFFSET);
if (mode == SE_AES_OP_MODE_RNG_DRBG) {
- if ((tegra_get_chipid() == TEGRA_CHIPID_TEGRA11) &&
- force_reseed_count <= 0) {
+ if (force_reseed_count <= 0) {
se_writel(se_dev,
SE_RNG_CONFIG_MODE(DRBG_MODE_FORCE_RESEED)|
- SE_RNG_CONFIG_SRC(DRBG_SRC_LFSR),
+ SE_RNG_CONFIG_SRC(DRBG_SRC_ENTROPY),
SE_RNG_CONFIG_REG_OFFSET);
force_reseed_count = RNG_RESEED_INTERVAL;
} else {
se_writel(se_dev,
SE_RNG_CONFIG_MODE(DRBG_MODE_NORMAL)|
- SE_RNG_CONFIG_SRC(DRBG_SRC_LFSR),
+ SE_RNG_CONFIG_SRC(DRBG_SRC_ENTROPY),
SE_RNG_CONFIG_REG_OFFSET);
}
- if ((tegra_get_chipid() == TEGRA_CHIPID_TEGRA11))
- --force_reseed_count;
+ --force_reseed_count;
se_writel(se_dev, RNG_RESEED_INTERVAL,
SE_RNG_RESEED_INTERVAL_REG_OFFSET);