ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/linux/drivers/crypto/asr/bcm_optee/asr-sha-optee.h b/marvell/linux/drivers/crypto/asr/bcm_optee/asr-sha-optee.h
new file mode 100644
index 0000000..97e174e
--- /dev/null
+++ b/marvell/linux/drivers/crypto/asr/bcm_optee/asr-sha-optee.h
@@ -0,0 +1,61 @@
+#ifndef _ASR_BCM_SHA_OPTEE_H_
+#define _ASR_BCM_SHA_OPTEE_H_
+
+#include "asr-bcm-optee.h"
+#ifdef CONFIG_TEE
+#include <linux/tee_drv.h>
+#endif
+
+#define ASR_SHA_ACCESS_UUID \
+ { \
+ 0xc6445f2a, 0x3365, 0x11ef, \
+ { 0x9e, 0x32, 0xe7, 0x0c, 0x07, 0x9f, 0x77, 0xec } \
+ } \
+
+#define TEE_ALG_MD5 0x50000001
+#define TEE_ALG_SHA1 0x50000002
+#define TEE_ALG_SHA224 0x50000003
+#define TEE_ALG_SHA256 0x50000004
+#define TEE_ALG_SHA384 0x50000005
+#define TEE_ALG_SHA512 0x50000006
+
+#define HASH_CONTEXT_SIZE (256)
+
+/*
+ * hash init params
+ *
+ * [in] pParams[0].value.a hash algorithm type
+ * [in] pParams[1].value.a hash context addr from external, such as kernel
+ */
+ #define CMD_SHA_INIT 0x1
+
+/*
+ * hash update params
+ * when input addr is share mem, such as params from kernel:
+ * [in] pParams[0].memref.buffer input data
+ * [in] pParams[0].memref.size length of input data
+ * [in] pParams[1].value.a hash context addr from external, such as kernel
+ *
+ * when input addr is physical addr, such as params from uboot:
+ * [in] pParams[0].value.a input data addr
+ * [in] pParams[0].value.b length of input data
+ * [in] pParams[1].value.a whether physical addr
+ */
+ #define CMD_SHA_UPDATE 0x2
+
+/*
+ * hash finish params
+ *
+ * [out] pParams[0].memref.buffer output hash
+ * [out] pParams[0].memref.size length of output hash
+ * [in] pParams[1].value.a hash context addr from external, such as kernel
+ */
+#define CMD_SHA_FINAL 0x3
+
+struct asr_optee_sha_reqctx {
+ struct asr_sha_reqctx reqctx;
+ struct tee_shm *shm;
+ struct asrbcm_tee_context asrbcm_tee_ctx;
+};
+
+#endif