Lines Matching refs:tpu
67 void MXC_TPU_RevA_Clear_Done_Flags(mxc_tpu_reva_regs_t *tpu) in MXC_TPU_RevA_Clear_Done_Flags() argument
70 tpu->ctrl |= MXC_F_TPU_REVA_CTRL_DMA_DONE | MXC_F_TPU_REVA_CTRL_GLS_DONE | in MXC_TPU_RevA_Clear_Done_Flags()
76 void MXC_TPU_RevA_Reset(mxc_tpu_reva_regs_t *tpu) in MXC_TPU_RevA_Reset() argument
81 tpu->ctrl = MXC_F_TPU_REVA_CTRL_RST; in MXC_TPU_RevA_Reset()
83 memset32((uint32_t *)tpu, 0, sizeof(mxc_tpu_reva_regs_t)); in MXC_TPU_RevA_Reset()
86 tpu->ctrl |= MXC_F_TPU_REVA_CTRL_FLAG_MODE; in MXC_TPU_RevA_Reset()
88 MXC_TPU_RevA_Clear_Done_Flags(tpu); in MXC_TPU_RevA_Reset()
96 int MXC_TPU_RevA_CRC_Config(mxc_tpu_reva_regs_t *tpu) in MXC_TPU_RevA_CRC_Config() argument
102 tpu->ctrl |= MXC_S_TPU_REVA_CTRL_RDSRC_DMAORAPB; in MXC_TPU_RevA_CRC_Config()
105 tpu->crc_ctrl = MXC_F_TPU_REVA_CRC_CTRL_CRC_EN; in MXC_TPU_RevA_CRC_Config()
111 int MXC_TPU_RevA_CRC(mxc_tpu_reva_regs_t *tpu, const uint8_t *src, uint32_t len, uint32_t poly, in MXC_TPU_RevA_CRC() argument
132 tpu->crc_poly = poly; in MXC_TPU_RevA_CRC()
135 tpu->dma_src = (uint32_t)src; in MXC_TPU_RevA_CRC()
136 tpu->dma_cnt = len; in MXC_TPU_RevA_CRC()
139 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_DMA_DONE)) {} in MXC_TPU_RevA_CRC()
142 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_GLS_DONE)) {} in MXC_TPU_RevA_CRC()
145 tpu->ctrl |= MXC_F_TPU_REVA_CTRL_GLS_DONE; in MXC_TPU_RevA_CRC()
148 *crc = tpu->crc_val; in MXC_TPU_RevA_CRC()
154 int MXC_TPU_RevA_Ham_Config(mxc_tpu_reva_regs_t *tpu) in MXC_TPU_RevA_Ham_Config() argument
159 tpu->ctrl |= MXC_F_TPU_REVA_CTRL_DMADNE_MSK; in MXC_TPU_RevA_Ham_Config()
162 tpu->ctrl |= MXC_S_TPU_REVA_CTRL_RDSRC_DMAORAPB; in MXC_TPU_RevA_Ham_Config()
165 tpu->crc_ctrl = MXC_F_TPU_REVA_CRC_CTRL_HRST; in MXC_TPU_RevA_Ham_Config()
166 while (tpu->crc_ctrl & MXC_F_TPU_REVA_CRC_CTRL_HRST) {} in MXC_TPU_RevA_Ham_Config()
169 tpu->crc_ctrl |= MXC_F_TPU_REVA_CRC_CTRL_HAM; in MXC_TPU_RevA_Ham_Config()
172 MXC_TPU_RevA_Clear_Done_Flags(tpu); in MXC_TPU_RevA_Ham_Config()
178 int MXC_TPU_RevA_Ham(mxc_tpu_reva_regs_t *tpu, const uint8_t *src, uint32_t len, uint32_t *ecc) in MXC_TPU_RevA_Ham() argument
192 err = MXC_TPU_RevA_Ham_Config(tpu); in MXC_TPU_RevA_Ham()
198 tpu->dma_src = (uint32_t)src; in MXC_TPU_RevA_Ham()
199 tpu->dma_cnt = len; in MXC_TPU_RevA_Ham()
202 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_GLS_DONE)) {} in MXC_TPU_RevA_Ham()
205 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_DMA_DONE)) {} in MXC_TPU_RevA_Ham()
208 tpu->ctrl |= MXC_F_TPU_REVA_CTRL_GLS_DONE; in MXC_TPU_RevA_Ham()
211 *ecc = tpu->ham_ecc; in MXC_TPU_RevA_Ham()
234 void MXC_TPU_RevA_Cipher_EncDecSelect(mxc_tpu_reva_regs_t *tpu, int enc) in MXC_TPU_RevA_Cipher_EncDecSelect() argument
238 tpu->cipher_ctrl &= ~MXC_F_TPU_REVA_CIPHER_CTRL_ENC; in MXC_TPU_RevA_Cipher_EncDecSelect()
240 tpu->cipher_ctrl |= MXC_F_TPU_REVA_CIPHER_CTRL_ENC; in MXC_TPU_RevA_Cipher_EncDecSelect()
245 int MXC_TPU_RevA_Cipher_Config(mxc_tpu_reva_regs_t *tpu, mxc_tpu_reva_modesel_t mode, in MXC_TPU_RevA_Cipher_Config() argument
254 tpu->cipher_ctrl = (mode << MXC_F_TPU_REVA_CIPHER_CTRL_MODE_POS) | in MXC_TPU_RevA_Cipher_Config()
262 int MXC_TPU_RevA_Cipher_KeySelect(mxc_tpu_reva_regs_t *tpu, mxc_tpu_reva_keysrc_t key_src) in MXC_TPU_RevA_Cipher_KeySelect() argument
264 MXC_SETFIELD(tpu->cipher_ctrl, MXC_F_TPU_REVA_CIPHER_CTRL_SRC, key_src); in MXC_TPU_RevA_Cipher_KeySelect()
270 int MXC_TPU_RevA_Cipher_DoOperation(mxc_tpu_reva_regs_t *tpu, const char *src, const char *iv, in MXC_TPU_RevA_Cipher_DoOperation() argument
275 uint32_t key_src = tpu->cipher_ctrl & MXC_F_TPU_REVA_CIPHER_CTRL_SRC; in MXC_TPU_RevA_Cipher_DoOperation()
297 memcpy32((void *)&tpu->cipher_key[0], (void *)key, keyLength); in MXC_TPU_RevA_Cipher_DoOperation()
302 memcpy32((void *)&tpu->cipher_init[0], (void *)iv, dataLength); in MXC_TPU_RevA_Cipher_DoOperation()
307 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_RDY)) {} in MXC_TPU_RevA_Cipher_DoOperation()
310 memcpy32((void *)&tpu->data_in[0], (void *)src, dataLength); in MXC_TPU_RevA_Cipher_DoOperation()
313 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_CPH_DONE)) {} in MXC_TPU_RevA_Cipher_DoOperation()
316 memcpy32((void *)outptr, (void *)&tpu->data_out[0], dataLength); in MXC_TPU_RevA_Cipher_DoOperation()
322 tpu->ctrl |= MXC_F_TPU_REVA_CTRL_CPH_DONE; in MXC_TPU_RevA_Cipher_DoOperation()
425 int MXC_TPU_RevA_Hash_Config(mxc_tpu_reva_regs_t *tpu, mxc_tpu_hashfunsel_t func) in MXC_TPU_RevA_Hash_Config() argument
437 tpu->hash_ctrl = func << MXC_F_TPU_REVA_HASH_CTRL_HASH_POS; in MXC_TPU_RevA_Hash_Config()
440 tpu->hash_ctrl |= MXC_F_TPU_REVA_HASH_CTRL_INIT; in MXC_TPU_RevA_Hash_Config()
443 while (tpu->hash_ctrl & MXC_F_TPU_REVA_HASH_CTRL_INIT) {} in MXC_TPU_RevA_Hash_Config()
449 int MXC_TPU_RevA_Hash_SHA(mxc_tpu_reva_regs_t *tpu, const char *msg, mxc_tpu_hashfunsel_t fun, in MXC_TPU_RevA_Hash_SHA() argument
473 tpu->hash_msg_sz[0] = byteLen; in MXC_TPU_RevA_Hash_SHA()
481 MXC_TPU_RevA_Clear_Done_Flags(tpu); in MXC_TPU_RevA_Hash_SHA()
487 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_RDY)) {} in MXC_TPU_RevA_Hash_SHA()
489 tpu->data_in[0] = (uint32_t)(msg[word + i]) | ((uint32_t)(msg[word + 1 + i]) << 8) | in MXC_TPU_RevA_Hash_SHA()
498 tpu->hash_ctrl |= MXC_F_TPU_REVA_HASH_CTRL_LAST; in MXC_TPU_RevA_Hash_SHA()
503 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_RDY)) {} in MXC_TPU_RevA_Hash_SHA()
507 tpu->data_in[0] = (uint32_t)(msg[word + i]) + in MXC_TPU_RevA_Hash_SHA()
512 tpu->data_in[0] = msg[word + i]; in MXC_TPU_RevA_Hash_SHA()
514 tpu->data_in[0] = in MXC_TPU_RevA_Hash_SHA()
517 tpu->data_in[0] = (uint32_t)msg[word + i] + in MXC_TPU_RevA_Hash_SHA()
525 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_HSH_DONE)) {} in MXC_TPU_RevA_Hash_SHA()
529 MXC_TPU_RevA_Clear_Done_Flags(tpu); in MXC_TPU_RevA_Hash_SHA()
532 memcpy((uint32_t *)digest, (uint32_t *)&tpu->hash_digest[0], dgst_size); in MXC_TPU_RevA_Hash_SHA()
638 void MXC_TPU_RevA_MAA_Reset(mxc_tpu_reva_regs_t *tpu) in MXC_TPU_RevA_MAA_Reset() argument
641 tpu->ctrl = MXC_F_TPU_REVA_CTRL_RST; in MXC_TPU_RevA_MAA_Reset()
642 memset((uint32_t *)tpu, 0, sizeof(mxc_tpu_reva_regs_t)); in MXC_TPU_RevA_MAA_Reset()
646 int MXC_TPU_RevA_MAA_Init(mxc_tpu_reva_regs_t *tpu, unsigned int size) in MXC_TPU_RevA_MAA_Init() argument
664 tpu->ctrl = MXC_F_TPU_REVA_CTRL_FLAG_MODE; in MXC_TPU_RevA_MAA_Init()
667 tpu->ctrl &= ~MXC_F_TPU_REVA_CTRL_INT; in MXC_TPU_RevA_MAA_Init()
670 tpu->maa_maws = (size << MXC_F_TPU_REVA_MAA_MAWS_MSGSZ_POS) & MXC_F_TPU_REVA_MAA_MAWS_MSGSZ; in MXC_TPU_RevA_MAA_Init()
673 tpu->maa_ctrl |= in MXC_TPU_RevA_MAA_Init()
677 MXC_TPU_RevA_Clear_Done_Flags(tpu); in MXC_TPU_RevA_MAA_Init()
682 int MXC_TPU_RevA_MAA_Compute(mxc_tpu_reva_regs_t *tpu, mxc_tpu_maa_clcsel_t clc, char *multiplier, in MXC_TPU_RevA_MAA_Compute() argument
719 MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, clc); in MXC_TPU_RevA_MAA_Compute()
720 tpu->maa_ctrl |= MXC_F_TPU_REVA_MAA_CTRL_STC; in MXC_TPU_RevA_MAA_Compute()
723 if (tpu->maa_ctrl & MXC_F_TPU_REVA_MAA_CTRL_MAAER) { in MXC_TPU_RevA_MAA_Compute()
728 while (!(tpu->ctrl & MXC_F_TPU_REVA_CTRL_MAA_DONE)) {} in MXC_TPU_RevA_MAA_Compute()
736 MXC_TPU_RevA_Clear_Done_Flags(tpu); in MXC_TPU_RevA_MAA_Compute()