51 #ifndef __GR55XX_LL_HMAC_H__
52 #define __GR55XX_LL_HMAC_H__
101 #define LL_HMAC_FLAG_DATAREADY_SHA HMAC_STAT_HASH_READY
102 #define LL_HMAC_FLAG_DATAREADY_HMAC HMAC_STAT_HMAC_READY
103 #define LL_HMAC_FLAG_DMA_MESSAGEDONE HMAC_STAT_DMA_MSG_DONE
104 #define LL_HMAC_FLAG_DMA_DONE HMAC_STAT_DMA_TX_DONE
105 #define LL_HMAC_FLAG_DMA_ERR HMAC_STAT_DMA_TX_ERR
106 #define LL_HMAC_FLAG_KEY_VALID HMAC_STAT_KEY_VALID
112 #define LL_HMAC_HASH_STANDARD 0x00000000U
113 #define LL_HMAC_HASH_USER (1UL << HMAC_CFG_HASH_POS)
119 #define LL_HMAC_CALCULATETYPE_HMAC 0x00000000U
120 #define LL_HMAC_CALCULATETYPE_SHA (1UL << HMAC_CFG_CALC_TYPE_POS)
126 #define LL_HMAC_KEYTYPE_MCU 0x00000000U
127 #define LL_HMAC_KEYTYPE_AHB (1UL << HMAC_CFG_KEY_TYPE_POS)
128 #define LL_HMAC_KEYTYPE_KRAM (2UL << HMAC_CFG_KEY_TYPE_POS)
134 #define LL_HMAC_DMA_TRANSIZE_MIN (1)
135 #define LL_HMAC_DMA_TRANSIZE_MAX (512)
156 #define LL_HMAC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
164 #define LL_HMAC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
193 SET_BITS(HMACx->CTRL, HMAC_CTRL_EN);
208 CLEAR_BITS(HMACx->CTRL, HMAC_CTRL_EN);
223 return (READ_BITS(HMACx->CTRL, HMAC_CTRL_EN) == (HMAC_CTRL_EN));
238 SET_BITS(HMACx->CTRL, HMAC_CTRL_DMA_START);
253 CLEAR_BITS(HMACx->CTRL, HMAC_CTRL_DMA_START);
268 return (READ_BITS(HMACx->CTRL, HMAC_CTRL_DMA_START) == (HMAC_CTRL_DMA_START));
283 SET_BITS(HMACx->CTRL, HMAC_CTRL_KEY_EN);
298 SET_BITS(HMACx->CTRL, HMAC_CTRL_LST_TX);
313 SET_BITS(HMACx->CFG, HMAC_CFG_HASH);
328 CLEAR_BITS(HMACx->CFG, HMAC_CFG_HASH);
343 return (READ_BITS(HMACx->CFG, HMAC_CFG_HASH) == (HMAC_CFG_HASH));
358 SET_BITS(HMACx->CFG, HMAC_CFG_ENDIAN);
373 CLEAR_BITS(HMACx->CFG, HMAC_CFG_ENDIAN);
388 return (READ_BITS(HMACx->CFG, HMAC_CFG_ENDIAN) == (HMAC_CFG_ENDIAN));
407 MODIFY_REG(HMACx->CFG, HMAC_CFG_KEY_TYPE, type);
425 return (READ_BITS(HMACx->CFG, HMAC_CFG_KEY_TYPE));
440 SET_BITS(HMACx->CFG, HMAC_CFG_CALC_TYPE);
455 CLEAR_BITS(HMACx->CFG, HMAC_CFG_CALC_TYPE);
470 return (READ_BITS(HMACx->CFG, HMAC_CFG_CALC_TYPE) == (HMAC_CFG_CALC_TYPE));
485 SET_BITS(HMACx->CFG, HMAC_CFG_PRIVT_MODE);
500 CLEAR_BITS(HMACx->CFG, HMAC_CFG_PRIVT_MODE);
515 return (READ_BITS(HMACx->CFG, HMAC_CFG_PRIVT_MODE) == (HMAC_CFG_PRIVT_MODE));
536 SET_BITS(HMACx->INT, HMAC_INT_EN);
551 CLEAR_BITS(HMACx->INT, HMAC_INT_EN);
566 return (READ_BITS(HMACx->INT, HMAC_INT_EN) == (HMAC_INT_EN));
587 return (READ_BITS(HMACx->STAT, HMAC_STAT_HASH_READY) == HMAC_STAT_HASH_READY);
602 return (READ_BITS(HMACx->STAT, HMAC_STAT_HMAC_READY) == HMAC_STAT_HMAC_READY);
617 return (READ_BITS(HMACx->STAT, HMAC_STAT_DMA_MSG_DONE) == HMAC_STAT_DMA_MSG_DONE);
632 return (READ_BITS(HMACx->STAT, HMAC_STAT_DMA_TX_DONE) == HMAC_STAT_DMA_TX_DONE);
647 return (READ_BITS(HMACx->STAT, HMAC_STAT_DMA_TX_ERR) == HMAC_STAT_DMA_TX_ERR);
662 return (READ_BITS(HMACx->STAT, HMAC_STAT_KEY_VALID) == HMAC_STAT_KEY_VALID);
677 return (READ_BITS(HMACx->INT, HMAC_INT_DONE) == HMAC_INT_DONE);
692 CLEAR_BITS(HMACx->INT, HMAC_INT_DONE);
714 MODIFY_REG(HMACx->XFE_SIZE, HMAC_XFE_SIZE_SIZE, (block << 6) - 1);
729 return ((READ_BITS(HMACx->XFE_SIZE, HMAC_XFE_SIZE_SIZE) + 1) >> 6);
745 WRITE_REG(HMACx->RD_START_ADDR, address);
760 return (READ_REG(HMACx->RD_START_ADDR));
776 WRITE_REG(HMACx->WR_START_ADDR, address);
791 return (READ_REG(HMACx->WR_START_ADDR));
813 WRITE_REG(HMACx->USER_HASH_0, hash);
829 WRITE_REG(HMACx->USER_HASH_1, hash);
845 WRITE_REG(HMACx->USER_HASH_2, hash);
861 WRITE_REG(HMACx->USER_HASH_3, hash);
877 WRITE_REG(HMACx->USER_HASH_4, hash);
893 WRITE_REG(HMACx->USER_HASH_5, hash);
909 WRITE_REG(HMACx->USER_HASH_6, hash);
925 WRITE_REG(HMACx->USER_HASH_7, hash);
940 return (READ_REG(HMACx->DATA_OUT));
956 WRITE_REG(HMACx->DATA_IN, data);
972 WRITE_REG(HMACx->KEY0, key);
988 WRITE_REG(HMACx->KEY1, key);
1004 WRITE_REG(HMACx->KEY2, key);
1020 WRITE_REG(HMACx->KEY3, key);
1036 WRITE_REG(HMACx->KEY4, key);
1052 WRITE_REG(HMACx->KEY5, key);
1068 WRITE_REG(HMACx->KEY6, key);
1084 WRITE_REG(HMACx->KEY7, key);
1100 WRITE_REG(HMACx->KEY_ADDR, address);
1115 return (READ_REG(HMACx->KEY_ADDR));
1131 WRITE_REG(HMACx->KEYPORT_MASK, mask);