Skip to content

Commit b3f9eed

Browse files
committed
drivers: crypto: hash: add cache invalidate after HW triggered
Add cache invalidate after HW triggered to insure getting correct data from DRAM. Signed-off-by: Neal Liu <neal_liu@aspeedtech.com> Change-Id: Iec324686e381445c63eb9d12de269a9fb17c4728
1 parent 12c55bf commit b3f9eed

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

drivers/crypto/hash_aspeed.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <crypto/hash.h>
1111
#include <logging/log.h>
1212
#include <sys/byteorder.h>
13+
#include <cache.h>
1314

1415
#include "hace_aspeed.h"
1516
#include "hash_aspeed_priv.h"
@@ -105,6 +106,7 @@ static void aspeed_ahash_fill_padding(struct aspeed_hash_ctx *ctx,
105106
static int hash_trigger(struct aspeed_hash_ctx *data, int len)
106107
{
107108
struct hace_register_s *hace_register = hace_eng.base;
109+
int ret;
108110

109111
if (hace_register->hace_sts.fields.hash_engine_sts) {
110112
LOG_ERR("HACE error: engine busy\n");
@@ -124,7 +126,11 @@ static int hash_trigger(struct aspeed_hash_ctx *data, int len)
124126
hace_register->hash_data_len.value = len;
125127
hace_register->hash_cmd_reg.value = data->method;
126128

127-
return aspeed_hash_wait_completion(3000);
129+
ret = aspeed_hash_wait_completion(3000);
130+
131+
cache_data_range(data->digest, 64, K_CACHE_INVD);
132+
133+
return ret;
128134
}
129135

130136
static int aspeed_hash_update(struct hash_ctx *ctx, struct hash_pkt *pkt)

0 commit comments

Comments
 (0)