Lines Matching +full:- +full:seed
1 // SPDX-License-Identifier: GPL-2.0+
3 * Advanced Crypto Engine - SHA Firmware
10 #include <u-boot/sha256.h>
11 #include <u-boot/sha1.h>
45 writel(ACE_FC_HRDMACFLUSH_ON, &ace_sha_reg->fc_hrdmac); in ace_sha_hash_digest()
46 writel(ACE_FC_HRDMACFLUSH_OFF, &ace_sha_reg->fc_hrdmac); in ace_sha_hash_digest()
50 &ace_sha_reg->hash_byteswap); in ace_sha_hash_digest()
53 reg = readl(&ace_sha_reg->fc_fifoctrl); in ace_sha_hash_digest()
55 writel(reg, &ace_sha_reg->fc_fifoctrl); in ace_sha_hash_digest()
61 writel(reg, &ace_sha_reg->hash_control); in ace_sha_hash_digest()
64 writel(ACE_HASH_FIFO_ON, &ace_sha_reg->hash_fifo_mode); in ace_sha_hash_digest()
67 writel(buf_len, &ace_sha_reg->hash_msgsize_low); in ace_sha_hash_digest()
68 writel(0, &ace_sha_reg->hash_msgsize_high); in ace_sha_hash_digest()
71 writel((unsigned int)pbuf, &ace_sha_reg->fc_hrdmas); in ace_sha_hash_digest()
72 writel(buf_len, &ace_sha_reg->fc_hrdmal); in ace_sha_hash_digest()
74 while ((readl(&ace_sha_reg->hash_status) & ACE_HASH_MSGDONE_MASK) == in ace_sha_hash_digest()
78 * a complete seed setup. We are using this bit to check h/w in ace_sha_hash_digest()
81 if ((readl(&ace_sha_reg->hash_status) in ace_sha_hash_digest()
83 return -EBUSY; in ace_sha_hash_digest()
87 writel(ACE_HASH_MSGDONE_ON, &ace_sha_reg->hash_status); in ace_sha_hash_digest()
94 pdigest[i] = readl(&ace_sha_reg->hash_result[i]); in ace_sha_hash_digest()
97 writel(ACE_FC_HRDMA, &ace_sha_reg->fc_intpend); in ace_sha_hash_digest()
120 void srand(unsigned int seed) in srand() argument
126 /* Seed data */ in srand()
128 writel(seed << i, ®->hash_seed[i]); in srand()
130 /* Wait for seed setup done */ in srand()
132 status = readl(®->hash_status); in srand()
146 unsigned int seed = (unsigned int)&status; in rand() local
150 srand(seed); in rand()
153 writel(ACE_HASH_ENGSEL_PRNG | ACE_HASH_STARTBIT_ON, ®->hash_control); in rand()
157 status = readl(®->hash_status); in rand()
167 writel(ACE_HASH_PRNGDONE_MASK, ®->hash_status); in rand()
171 ret += readl(®->hash_prng[i]); in rand()