Lines Matching refs:task
77 void ce_print_task_info(ce_task_desc_t *task) in ce_print_task_info() argument
80 CE_DBG("task = 0x%lx\n", (uint32_t)task); in ce_print_task_info()
81 CE_DBG("task->comm_ctl = 0x%lx\n", task->comm_ctl); in ce_print_task_info()
82 CE_DBG("task->sym_ctl = 0x%lx\n", task->sym_ctl); in ce_print_task_info()
83 CE_DBG("task->asym_ctl = 0x%lx\n", task->asym_ctl); in ce_print_task_info()
84 CE_DBG("task->chan_id = 0x%lx\n", task->chan_id); in ce_print_task_info()
85 CE_DBG("task->ctr_addr = 0x%lx\n", task->ctr_addr); in ce_print_task_info()
86 CE_DBG("task->data_len = 0x%lx\n", task->data_len); in ce_print_task_info()
87 CE_DBG("task->iv_addr = 0x%lx\n", task->iv_addr); in ce_print_task_info()
88 CE_DBG("task->key_addr = 0x%lx\n", task->key_addr); in ce_print_task_info()
89 CE_DBG("task->src[0].addr = 0x%lx\n", task->src[0].addr); in ce_print_task_info()
90 CE_DBG("task->src[0].len = 0x%lx\n", task->src[0].len); in ce_print_task_info()
91 CE_DBG("task->dst[0].addr = 0x%lx\n", task->dst[0].addr); in ce_print_task_info()
92 CE_DBG("task->dst[0].len = 0x%lx\n", task->dst[0].len); in ce_print_task_info()
189 static void ce_task_desc_init(ce_task_desc_t *task, uint32_t flow) in ce_task_desc_init() argument
191 memset((void *)task, 0x0, sizeof(ce_task_desc_t)); in ce_task_desc_init()
192 task->chan_id = flow; in ce_task_desc_init()
193 hal_ce_task_enable(task); in ce_task_desc_init()
199 ce_task_desc_t *task = NULL; in ce_aes_config() local
202 task = (ce_task_desc_t *)hal_malloc(sizeof(ce_task_desc_t)); in ce_aes_config()
203 if (task == NULL) { in ce_aes_config()
208 ce_task_desc_init(task, flow); in ce_aes_config()
209 hal_ce_method_set(dir, type, task); in ce_aes_config()
210 hal_ce_aes_mode_set(mode, task); in ce_aes_config()
211 hal_ce_key_set(key_buf, key_length, task); in ce_aes_config()
214 return task; in ce_aes_config()
241 ce_task_desc_t *task; in ce_aes_start() local
250 …task = ce_aes_config(req_ctx->dir, CE_METHOD_AES, req_ctx->mode, req_ctx->key, req_ctx->key_length… in ce_aes_start()
251 if (task == NULL) { in ce_aes_start()
256 hal_ce_pending_clear(task->chan_id); in ce_aes_start()
259 hal_ce_iv_set(req_ctx->iv, AES_BLOCK_SIZE, task); in ce_aes_start()
263 hal_ce_cnt_set(req_ctx->iv_next, req_ctx->key_length, task); in ce_aes_start()
266 hal_ce_cts_last(task); in ce_aes_start()
268 hal_ce_cfb_bitwidth_set(req_ctx->bitwidth,task); in ce_aes_start()
271 if ((task->sym_ctl & 0xF00) == (CE_AES_MODE_CTS << CE_SYM_CTL_OP_MODE_SHIFT)) in ce_aes_start()
272 task->data_len = src_len + req_ctx->padding_len; in ce_aes_start()
274 hal_ce_data_len_set(src_len + req_ctx->padding_len, task); in ce_aes_start()
277 task->src[0].addr = (uint32_t)__va_to_pa((unsigned long)req_ctx->src_buffer); in ce_aes_start()
278 task->src[0].len = src_word_len; in ce_aes_start()
281 task->src[1].addr = (uint32_t)__va_to_pa((unsigned long)req_ctx->padding); in ce_aes_start()
282 task->src[1].len = req_ctx->padding_len >> 2; in ce_aes_start()
285 task->src[0].addr = (uint32_t)__va_to_pa((unsigned long)req_ctx->padding); in ce_aes_start()
286 task->src[0].len = req_ctx->padding_len >> 2; in ce_aes_start()
289 task->dst[0].addr = (uint32_t)__va_to_pa((unsigned long)req_ctx->dst_buffer); in ce_aes_start()
290 task->dst[0].len = (src_len + req_ctx->padding_len) >> 2; in ce_aes_start()
292 task->next = 0; in ce_aes_start()
293 hal_dcache_clean((unsigned long)task, sizeof(ce_task_desc_t)); in ce_aes_start()
302 hal_ce_set_task((unsigned long)task); in ce_aes_start()
303 hal_ce_irq_enable(task->chan_id); in ce_aes_start()
307 hal_ce_wait_finish(task->chan_id); in ce_aes_start()
308 hal_ce_pending_clear(task->chan_id); in ce_aes_start()
314 hal_free(task); in ce_aes_start()
324 hal_ce_irq_disable(task->chan_id); in ce_aes_start()
329 hal_free(task); in ce_aes_start()
334 hal_free(task); in ce_aes_start()
405 ce_task_desc_t *task; in do_aes_crypto() local
502 ce_task_desc_t *task = NULL; in ce_hash_start() local
508 task = (ce_task_desc_t *)hal_malloc(sizeof(ce_task_desc_t)); in ce_hash_start()
509 if (task == NULL) { in ce_hash_start()
513 CE_DBG("task addr = 0x%lx\n", (uint32_t)task); in ce_hash_start()
515 ce_task_desc_init(task, chan_id); in ce_hash_start()
517 hal_ce_method_set(req_ctx->dir, req_ctx->type, task); in ce_hash_start()
518 hal_ce_data_len_set(src_length + req_ctx->padding_len, task); in ce_hash_start()
520 hal_ce_iv_set(req_ctx->md, req_ctx->md_size, task); in ce_hash_start()
522 hal_ce_iv_mode_set(CE_HASH_IV_INPUT, task); in ce_hash_start()
526 task->src[0].addr = (uint32_t)__va_to_pa((uint32_t)req_ctx->src_buffer); in ce_hash_start()
527 task->src[0].len = src_word_len; in ce_hash_start()
528 task->src[1].addr = (uint32_t)__va_to_pa((uint32_t)req_ctx->padding); in ce_hash_start()
529 task->src[1].len = req_ctx->padding_len >> 2; in ce_hash_start()
531 task->src[0].addr = (uint32_t)__va_to_pa((uint32_t)req_ctx->padding); in ce_hash_start()
532 task->src[0].len = req_ctx->padding_len >> 2; in ce_hash_start()
534 task->dst[0].addr = (uint32_t)__va_to_pa((uint32_t)req_ctx->dst_buffer); in ce_hash_start()
535 task->dst[0].len = req_ctx->dst_length >> 2; in ce_hash_start()
536 task->next = 0; in ce_hash_start()
538 hal_dcache_clean((uint32_t)task, sizeof(ce_task_desc_t)); in ce_hash_start()
544 hal_ce_set_task((uint32_t)task); in ce_hash_start()
545 hal_ce_irq_enable(task->chan_id); in ce_hash_start()
549 hal_ce_wait_finish(task->chan_id); in ce_hash_start()
550 hal_ce_pending_clear(task->chan_id); in ce_hash_start()
569 hal_ce_irq_disable(task->chan_id); in ce_hash_start()
572 hal_free(task); in ce_hash_start()
577 if (task) { in ce_hash_start()
578 hal_free(task); in ce_hash_start()
685 ce_task_desc_t *task = NULL; in ce_rsa_start() local
730 task = (ce_task_desc_t *)hal_malloc(sizeof(ce_task_desc_t)); in ce_rsa_start()
731 if (task == NULL) { in ce_rsa_start()
736 CE_DBG("task addr = 0x%lx\n", (uint32_t)task); in ce_rsa_start()
738 ce_task_desc_init(task, chan_id); in ce_rsa_start()
740 hal_ce_method_set(req_ctx->dir, req_ctx->type, task); in ce_rsa_start()
741 hal_ce_rsa_width_set(req_ctx->bitwidth, task); in ce_rsa_start()
742 task->iv_addr = (uint32_t)__va_to_pa((uint32_t)p_n); in ce_rsa_start()
744 task->key_addr = (uint32_t)__va_to_pa((uint32_t)p_d); in ce_rsa_start()
746 task->key_addr = (uint32_t)__va_to_pa((uint32_t)req_ctx->key_e); in ce_rsa_start()
748 hal_ce_data_len_set(bitwidth_byte_len, task); in ce_rsa_start()
750 task->src[0].addr = (uint32_t)__va_to_pa((uint32_t)p_src); in ce_rsa_start()
751 task->src[0].len = bitwidth_word_len; in ce_rsa_start()
753 task->dst[0].addr = (uint32_t)__va_to_pa((uint32_t)p_dst); in ce_rsa_start()
754 task->dst[0].len = bitwidth_word_len; in ce_rsa_start()
755 task->next = 0; in ce_rsa_start()
757 hal_dcache_clean((uint32_t)task, sizeof(ce_task_desc_t)); in ce_rsa_start()
768 hal_ce_set_task((uint32_t)task); in ce_rsa_start()
769 hal_ce_irq_enable(task->chan_id); in ce_rsa_start()
773 hal_ce_wait_finish(task->chan_id); in ce_rsa_start()
774 hal_ce_pending_clear(task->chan_id); in ce_rsa_start()
793 hal_ce_irq_disable(task->chan_id); in ce_rsa_start()
810 if (task) in ce_rsa_start()
811 hal_free(task); in ce_rsa_start()
876 ce_task_desc_t *task = NULL; in do_rng_gen() local
901 task = (ce_task_desc_t *)hal_malloc(sizeof(ce_task_desc_t)); in do_rng_gen()
902 if (task == NULL) { in do_rng_gen()
908 …CE_DBG("task addr = 0x%lx, rng_buf = 0x%lx, rng_len = %d\n", (uint32_t)task, req_ctx->rng_buf, req… in do_rng_gen()
910 ce_task_desc_init(task, chan_id); in do_rng_gen()
912 hal_ce_method_set(0, req_ctx->mode, task); in do_rng_gen()
913 hal_ce_data_len_set(dst_len, task); in do_rng_gen()
918 hal_ce_key_set(req_ctx->key, req_ctx->key_len, task); in do_rng_gen()
927 task->src[0].addr = 0; in do_rng_gen()
928 task->src[0].len = 0; in do_rng_gen()
930 task->dst[0].addr = (uint32_t)__va_to_pa((uint32_t)dst_buf); in do_rng_gen()
931 task->dst[0].len = dst_len >> 2; in do_rng_gen()
933 hal_dcache_clean((uint32_t)task, sizeof(ce_task_desc_t)); in do_rng_gen()
937 hal_ce_set_task((uint32_t)task); in do_rng_gen()
938 hal_ce_irq_enable(task->chan_id); in do_rng_gen()
942 hal_ce_wait_finish(task->chan_id); in do_rng_gen()
943 hal_ce_pending_clear(task->chan_id); in do_rng_gen()
968 hal_ce_irq_disable(task->chan_id); in do_rng_gen()
970 hal_free(task); in do_rng_gen()
975 if (task) { in do_rng_gen()
976 hal_free(task); in do_rng_gen()
980 hal_free(task); in do_rng_gen()