Lines Matching refs:desc
260 static unsigned int xcbc_setkey(struct cc_hw_desc *desc, in xcbc_setkey() argument
264 hw_desc_init(&desc[0]); in xcbc_setkey()
269 set_din_type(&desc[0], DMA_DLLI, in xcbc_setkey()
272 set_cipher_mode(&desc[0], DRV_CIPHER_ECB); in xcbc_setkey()
273 set_cipher_config0(&desc[0], DRV_CRYPTO_DIRECTION_ENCRYPT); in xcbc_setkey()
274 set_key_size_aes(&desc[0], ctx->auth_keylen); in xcbc_setkey()
275 set_flow_mode(&desc[0], S_DIN_to_AES); in xcbc_setkey()
276 set_setup_mode(&desc[0], SETUP_LOAD_KEY0); in xcbc_setkey()
278 hw_desc_init(&desc[1]); in xcbc_setkey()
279 set_din_const(&desc[1], 0x01010101, CC_AES_128_BIT_KEY_SIZE); in xcbc_setkey()
280 set_flow_mode(&desc[1], DIN_AES_DOUT); in xcbc_setkey()
281 set_dout_dlli(&desc[1], ctx->auth_state.xcbc.xcbc_keys_dma_addr, in xcbc_setkey()
284 hw_desc_init(&desc[2]); in xcbc_setkey()
285 set_din_const(&desc[2], 0x02020202, CC_AES_128_BIT_KEY_SIZE); in xcbc_setkey()
286 set_flow_mode(&desc[2], DIN_AES_DOUT); in xcbc_setkey()
287 set_dout_dlli(&desc[2], (ctx->auth_state.xcbc.xcbc_keys_dma_addr in xcbc_setkey()
291 hw_desc_init(&desc[3]); in xcbc_setkey()
292 set_din_const(&desc[3], 0x03030303, CC_AES_128_BIT_KEY_SIZE); in xcbc_setkey()
293 set_flow_mode(&desc[3], DIN_AES_DOUT); in xcbc_setkey()
294 set_dout_dlli(&desc[3], (ctx->auth_state.xcbc.xcbc_keys_dma_addr in xcbc_setkey()
301 static int hmac_setkey(struct cc_hw_desc *desc, struct cc_aead_ctx *ctx) in hmac_setkey() argument
317 hw_desc_init(&desc[idx]); in hmac_setkey()
318 set_cipher_mode(&desc[idx], hash_mode); in hmac_setkey()
319 set_din_sram(&desc[idx], in hmac_setkey()
323 set_flow_mode(&desc[idx], S_DIN_to_HASH); in hmac_setkey()
324 set_setup_mode(&desc[idx], SETUP_LOAD_STATE0); in hmac_setkey()
328 hw_desc_init(&desc[idx]); in hmac_setkey()
329 set_cipher_mode(&desc[idx], hash_mode); in hmac_setkey()
330 set_din_const(&desc[idx], 0, ctx->drvdata->hash_len_sz); in hmac_setkey()
331 set_flow_mode(&desc[idx], S_DIN_to_HASH); in hmac_setkey()
332 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in hmac_setkey()
336 hw_desc_init(&desc[idx]); in hmac_setkey()
337 set_xor_val(&desc[idx], hmac_pad_const[i]); in hmac_setkey()
338 set_cipher_mode(&desc[idx], hash_mode); in hmac_setkey()
339 set_flow_mode(&desc[idx], S_DIN_to_HASH); in hmac_setkey()
340 set_setup_mode(&desc[idx], SETUP_LOAD_STATE1); in hmac_setkey()
344 hw_desc_init(&desc[idx]); in hmac_setkey()
345 set_din_type(&desc[idx], DMA_DLLI, in hmac_setkey()
348 set_cipher_mode(&desc[idx], hash_mode); in hmac_setkey()
349 set_xor_active(&desc[idx]); in hmac_setkey()
350 set_flow_mode(&desc[idx], DIN_HASH); in hmac_setkey()
354 hw_desc_init(&desc[idx]); in hmac_setkey()
355 set_cipher_mode(&desc[idx], hash_mode); in hmac_setkey()
356 set_dout_dlli(&desc[idx], in hmac_setkey()
359 set_flow_mode(&desc[idx], S_HASH_to_DOUT); in hmac_setkey()
360 set_setup_mode(&desc[idx], SETUP_WRITE_STATE0); in hmac_setkey()
361 set_cipher_config1(&desc[idx], HASH_PADDING_DISABLED); in hmac_setkey()
431 struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ]; in cc_get_plain_hmac_key() local
458 hw_desc_init(&desc[idx]); in cc_get_plain_hmac_key()
459 set_cipher_mode(&desc[idx], hashmode); in cc_get_plain_hmac_key()
460 set_din_sram(&desc[idx], larval_addr, digestsize); in cc_get_plain_hmac_key()
461 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_get_plain_hmac_key()
462 set_setup_mode(&desc[idx], SETUP_LOAD_STATE0); in cc_get_plain_hmac_key()
466 hw_desc_init(&desc[idx]); in cc_get_plain_hmac_key()
467 set_cipher_mode(&desc[idx], hashmode); in cc_get_plain_hmac_key()
468 set_din_const(&desc[idx], 0, ctx->drvdata->hash_len_sz); in cc_get_plain_hmac_key()
469 set_cipher_config1(&desc[idx], HASH_PADDING_ENABLED); in cc_get_plain_hmac_key()
470 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_get_plain_hmac_key()
471 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_get_plain_hmac_key()
474 hw_desc_init(&desc[idx]); in cc_get_plain_hmac_key()
475 set_din_type(&desc[idx], DMA_DLLI, in cc_get_plain_hmac_key()
477 set_flow_mode(&desc[idx], DIN_HASH); in cc_get_plain_hmac_key()
481 hw_desc_init(&desc[idx]); in cc_get_plain_hmac_key()
482 set_cipher_mode(&desc[idx], hashmode); in cc_get_plain_hmac_key()
483 set_dout_dlli(&desc[idx], padded_authkey_dma_addr, in cc_get_plain_hmac_key()
485 set_flow_mode(&desc[idx], S_HASH_to_DOUT); in cc_get_plain_hmac_key()
486 set_setup_mode(&desc[idx], SETUP_WRITE_STATE0); in cc_get_plain_hmac_key()
487 set_cipher_config1(&desc[idx], HASH_PADDING_DISABLED); in cc_get_plain_hmac_key()
488 set_cipher_config0(&desc[idx], in cc_get_plain_hmac_key()
492 hw_desc_init(&desc[idx]); in cc_get_plain_hmac_key()
493 set_din_const(&desc[idx], 0, (blocksize - digestsize)); in cc_get_plain_hmac_key()
494 set_flow_mode(&desc[idx], BYPASS); in cc_get_plain_hmac_key()
495 set_dout_dlli(&desc[idx], (padded_authkey_dma_addr + in cc_get_plain_hmac_key()
500 hw_desc_init(&desc[idx]); in cc_get_plain_hmac_key()
501 set_din_type(&desc[idx], DMA_DLLI, key_dma_addr, in cc_get_plain_hmac_key()
503 set_flow_mode(&desc[idx], BYPASS); in cc_get_plain_hmac_key()
504 set_dout_dlli(&desc[idx], padded_authkey_dma_addr, in cc_get_plain_hmac_key()
509 hw_desc_init(&desc[idx]); in cc_get_plain_hmac_key()
510 set_din_const(&desc[idx], 0, in cc_get_plain_hmac_key()
512 set_flow_mode(&desc[idx], BYPASS); in cc_get_plain_hmac_key()
513 set_dout_dlli(&desc[idx], in cc_get_plain_hmac_key()
521 hw_desc_init(&desc[idx]); in cc_get_plain_hmac_key()
522 set_din_const(&desc[idx], 0, (blocksize - keylen)); in cc_get_plain_hmac_key()
523 set_flow_mode(&desc[idx], BYPASS); in cc_get_plain_hmac_key()
524 set_dout_dlli(&desc[idx], padded_authkey_dma_addr, in cc_get_plain_hmac_key()
529 rc = cc_send_sync_request(ctx->drvdata, &cc_req, desc, idx); in cc_get_plain_hmac_key()
546 struct cc_hw_desc desc[MAX_AEAD_SETKEY_SEQ]; in cc_aead_setkey() local
613 seq_len = hmac_setkey(desc, ctx); in cc_aead_setkey()
616 seq_len = xcbc_setkey(desc, ctx); in cc_aead_setkey()
629 rc = cc_send_sync_request(ctx->drvdata, &cc_req, desc, seq_len); in cc_aead_setkey()
713 struct cc_hw_desc desc[], unsigned int *seq_size) in cc_set_assoc_desc() argument
725 hw_desc_init(&desc[idx]); in cc_set_assoc_desc()
726 set_din_type(&desc[idx], DMA_DLLI, sg_dma_address(areq->src), in cc_set_assoc_desc()
728 set_flow_mode(&desc[idx], flow_mode); in cc_set_assoc_desc()
731 set_din_not_last_indication(&desc[idx]); in cc_set_assoc_desc()
735 hw_desc_init(&desc[idx]); in cc_set_assoc_desc()
736 set_din_type(&desc[idx], DMA_MLLI, areq_ctx->assoc.sram_addr, in cc_set_assoc_desc()
738 set_flow_mode(&desc[idx], flow_mode); in cc_set_assoc_desc()
741 set_din_not_last_indication(&desc[idx]); in cc_set_assoc_desc()
753 struct cc_hw_desc desc[], in cc_proc_authen_desc() argument
774 hw_desc_init(&desc[idx]); in cc_proc_authen_desc()
775 set_din_type(&desc[idx], DMA_DLLI, in cc_proc_authen_desc()
778 set_flow_mode(&desc[idx], flow_mode); in cc_proc_authen_desc()
801 hw_desc_init(&desc[idx]); in cc_proc_authen_desc()
802 set_din_type(&desc[idx], DMA_MLLI, mlli_addr, mlli_nents, in cc_proc_authen_desc()
804 set_flow_mode(&desc[idx], flow_mode); in cc_proc_authen_desc()
817 struct cc_hw_desc desc[], in cc_proc_cipher_desc() argument
833 hw_desc_init(&desc[idx]); in cc_proc_cipher_desc()
834 set_din_type(&desc[idx], DMA_DLLI, in cc_proc_cipher_desc()
838 set_dout_dlli(&desc[idx], in cc_proc_cipher_desc()
842 set_flow_mode(&desc[idx], flow_mode); in cc_proc_cipher_desc()
846 hw_desc_init(&desc[idx]); in cc_proc_cipher_desc()
847 set_din_type(&desc[idx], DMA_MLLI, areq_ctx->src.sram_addr, in cc_proc_cipher_desc()
849 set_dout_mlli(&desc[idx], areq_ctx->dst.sram_addr, in cc_proc_cipher_desc()
851 set_flow_mode(&desc[idx], flow_mode); in cc_proc_cipher_desc()
862 struct cc_hw_desc desc[], in cc_proc_digest_desc() argument
875 hw_desc_init(&desc[idx]); in cc_proc_digest_desc()
876 set_flow_mode(&desc[idx], S_HASH_to_DOUT); in cc_proc_digest_desc()
877 set_setup_mode(&desc[idx], SETUP_WRITE_STATE0); in cc_proc_digest_desc()
878 set_dout_dlli(&desc[idx], req_ctx->icv_dma_addr, ctx->authsize, in cc_proc_digest_desc()
880 set_queue_last_ind(ctx->drvdata, &desc[idx]); in cc_proc_digest_desc()
882 set_aes_not_hash_mode(&desc[idx]); in cc_proc_digest_desc()
883 set_cipher_mode(&desc[idx], DRV_CIPHER_XCBC_MAC); in cc_proc_digest_desc()
885 set_cipher_config0(&desc[idx], in cc_proc_digest_desc()
887 set_cipher_mode(&desc[idx], hash_mode); in cc_proc_digest_desc()
891 hw_desc_init(&desc[idx]); in cc_proc_digest_desc()
892 set_setup_mode(&desc[idx], SETUP_WRITE_STATE0); in cc_proc_digest_desc()
893 set_flow_mode(&desc[idx], S_HASH_to_DOUT); in cc_proc_digest_desc()
894 set_dout_dlli(&desc[idx], req_ctx->mac_buf_dma_addr, in cc_proc_digest_desc()
896 set_queue_last_ind(ctx->drvdata, &desc[idx]); in cc_proc_digest_desc()
897 set_cipher_config0(&desc[idx], in cc_proc_digest_desc()
899 set_cipher_config1(&desc[idx], HASH_PADDING_DISABLED); in cc_proc_digest_desc()
901 set_cipher_mode(&desc[idx], DRV_CIPHER_XCBC_MAC); in cc_proc_digest_desc()
902 set_aes_not_hash_mode(&desc[idx]); in cc_proc_digest_desc()
904 set_cipher_mode(&desc[idx], hash_mode); in cc_proc_digest_desc()
912 struct cc_hw_desc desc[], in cc_set_cipher_desc() argument
923 hw_desc_init(&desc[idx]); in cc_set_cipher_desc()
924 set_cipher_config0(&desc[idx], direct); in cc_set_cipher_desc()
925 set_flow_mode(&desc[idx], ctx->flow_mode); in cc_set_cipher_desc()
926 set_din_type(&desc[idx], DMA_DLLI, req_ctx->gen_ctx.iv_dma_addr, in cc_set_cipher_desc()
929 set_setup_mode(&desc[idx], SETUP_LOAD_STATE1); in cc_set_cipher_desc()
931 set_setup_mode(&desc[idx], SETUP_LOAD_STATE0); in cc_set_cipher_desc()
932 set_cipher_mode(&desc[idx], ctx->cipher_mode); in cc_set_cipher_desc()
936 hw_desc_init(&desc[idx]); in cc_set_cipher_desc()
937 set_cipher_config0(&desc[idx], direct); in cc_set_cipher_desc()
938 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_set_cipher_desc()
939 set_flow_mode(&desc[idx], ctx->flow_mode); in cc_set_cipher_desc()
941 set_din_type(&desc[idx], DMA_DLLI, ctx->enckey_dma_addr, in cc_set_cipher_desc()
944 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_set_cipher_desc()
946 set_din_type(&desc[idx], DMA_DLLI, ctx->enckey_dma_addr, in cc_set_cipher_desc()
948 set_key_size_des(&desc[idx], ctx->enc_keylen); in cc_set_cipher_desc()
950 set_cipher_mode(&desc[idx], ctx->cipher_mode); in cc_set_cipher_desc()
956 static void cc_proc_cipher(struct aead_request *req, struct cc_hw_desc desc[], in cc_proc_cipher() argument
966 cc_set_cipher_desc(req, desc, &idx); in cc_proc_cipher()
967 cc_proc_cipher_desc(req, data_flow_mode, desc, &idx); in cc_proc_cipher()
970 hw_desc_init(&desc[idx]); in cc_proc_cipher()
971 set_din_no_dma(&desc[idx], 0, 0xfffff0); in cc_proc_cipher()
972 set_dout_no_dma(&desc[idx], 0, 0, 1); in cc_proc_cipher()
979 static void cc_set_hmac_desc(struct aead_request *req, struct cc_hw_desc desc[], in cc_set_hmac_desc() argument
991 hw_desc_init(&desc[idx]); in cc_set_hmac_desc()
992 set_cipher_mode(&desc[idx], hash_mode); in cc_set_hmac_desc()
993 set_din_type(&desc[idx], DMA_DLLI, in cc_set_hmac_desc()
996 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_hmac_desc()
997 set_setup_mode(&desc[idx], SETUP_LOAD_STATE0); in cc_set_hmac_desc()
1001 hw_desc_init(&desc[idx]); in cc_set_hmac_desc()
1002 set_cipher_mode(&desc[idx], hash_mode); in cc_set_hmac_desc()
1003 set_din_sram(&desc[idx], cc_digest_len_addr(ctx->drvdata, hash_mode), in cc_set_hmac_desc()
1005 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_hmac_desc()
1006 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_set_hmac_desc()
1012 static void cc_set_xcbc_desc(struct aead_request *req, struct cc_hw_desc desc[], in cc_set_xcbc_desc() argument
1020 hw_desc_init(&desc[idx]); in cc_set_xcbc_desc()
1021 set_din_const(&desc[idx], 0, CC_AES_BLOCK_SIZE); in cc_set_xcbc_desc()
1022 set_setup_mode(&desc[idx], SETUP_LOAD_STATE0); in cc_set_xcbc_desc()
1023 set_cipher_mode(&desc[idx], DRV_CIPHER_XCBC_MAC); in cc_set_xcbc_desc()
1024 set_cipher_config0(&desc[idx], DESC_DIRECTION_ENCRYPT_ENCRYPT); in cc_set_xcbc_desc()
1025 set_key_size_aes(&desc[idx], CC_AES_128_BIT_KEY_SIZE); in cc_set_xcbc_desc()
1026 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_xcbc_desc()
1027 set_aes_not_hash_mode(&desc[idx]); in cc_set_xcbc_desc()
1031 hw_desc_init(&desc[idx]); in cc_set_xcbc_desc()
1032 set_din_type(&desc[idx], DMA_DLLI, in cc_set_xcbc_desc()
1035 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_set_xcbc_desc()
1036 set_cipher_mode(&desc[idx], DRV_CIPHER_XCBC_MAC); in cc_set_xcbc_desc()
1037 set_cipher_config0(&desc[idx], DESC_DIRECTION_ENCRYPT_ENCRYPT); in cc_set_xcbc_desc()
1038 set_key_size_aes(&desc[idx], CC_AES_128_BIT_KEY_SIZE); in cc_set_xcbc_desc()
1039 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_xcbc_desc()
1040 set_aes_not_hash_mode(&desc[idx]); in cc_set_xcbc_desc()
1044 hw_desc_init(&desc[idx]); in cc_set_xcbc_desc()
1045 set_din_type(&desc[idx], DMA_DLLI, in cc_set_xcbc_desc()
1048 set_setup_mode(&desc[idx], SETUP_LOAD_STATE1); in cc_set_xcbc_desc()
1049 set_cipher_mode(&desc[idx], DRV_CIPHER_XCBC_MAC); in cc_set_xcbc_desc()
1050 set_cipher_config0(&desc[idx], DESC_DIRECTION_ENCRYPT_ENCRYPT); in cc_set_xcbc_desc()
1051 set_key_size_aes(&desc[idx], CC_AES_128_BIT_KEY_SIZE); in cc_set_xcbc_desc()
1052 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_xcbc_desc()
1053 set_aes_not_hash_mode(&desc[idx]); in cc_set_xcbc_desc()
1057 hw_desc_init(&desc[idx]); in cc_set_xcbc_desc()
1058 set_din_type(&desc[idx], DMA_DLLI, in cc_set_xcbc_desc()
1061 set_setup_mode(&desc[idx], SETUP_LOAD_STATE2); in cc_set_xcbc_desc()
1062 set_cipher_mode(&desc[idx], DRV_CIPHER_XCBC_MAC); in cc_set_xcbc_desc()
1063 set_cipher_config0(&desc[idx], DESC_DIRECTION_ENCRYPT_ENCRYPT); in cc_set_xcbc_desc()
1064 set_key_size_aes(&desc[idx], CC_AES_128_BIT_KEY_SIZE); in cc_set_xcbc_desc()
1065 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_xcbc_desc()
1066 set_aes_not_hash_mode(&desc[idx]); in cc_set_xcbc_desc()
1073 struct cc_hw_desc desc[], in cc_proc_header_desc() argument
1079 cc_set_assoc_desc(req, DIN_HASH, desc, &idx); in cc_proc_header_desc()
1086 struct cc_hw_desc desc[], in cc_proc_scheme_desc() argument
1098 hw_desc_init(&desc[idx]); in cc_proc_scheme_desc()
1099 set_cipher_mode(&desc[idx], hash_mode); in cc_proc_scheme_desc()
1100 set_dout_sram(&desc[idx], aead_handle->sram_workspace_addr, in cc_proc_scheme_desc()
1102 set_flow_mode(&desc[idx], S_HASH_to_DOUT); in cc_proc_scheme_desc()
1103 set_setup_mode(&desc[idx], SETUP_WRITE_STATE1); in cc_proc_scheme_desc()
1104 set_cipher_do(&desc[idx], DO_PAD); in cc_proc_scheme_desc()
1108 hw_desc_init(&desc[idx]); in cc_proc_scheme_desc()
1109 set_dout_sram(&desc[idx], aead_handle->sram_workspace_addr, in cc_proc_scheme_desc()
1111 set_flow_mode(&desc[idx], S_HASH_to_DOUT); in cc_proc_scheme_desc()
1112 set_setup_mode(&desc[idx], SETUP_WRITE_STATE0); in cc_proc_scheme_desc()
1113 set_cipher_config0(&desc[idx], HASH_DIGEST_RESULT_LITTLE_ENDIAN); in cc_proc_scheme_desc()
1114 set_cipher_mode(&desc[idx], hash_mode); in cc_proc_scheme_desc()
1118 hw_desc_init(&desc[idx]); in cc_proc_scheme_desc()
1119 set_cipher_mode(&desc[idx], hash_mode); in cc_proc_scheme_desc()
1120 set_din_type(&desc[idx], DMA_DLLI, in cc_proc_scheme_desc()
1123 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_proc_scheme_desc()
1124 set_setup_mode(&desc[idx], SETUP_LOAD_STATE0); in cc_proc_scheme_desc()
1128 hw_desc_init(&desc[idx]); in cc_proc_scheme_desc()
1129 set_cipher_mode(&desc[idx], hash_mode); in cc_proc_scheme_desc()
1130 set_din_sram(&desc[idx], cc_digest_len_addr(ctx->drvdata, hash_mode), in cc_proc_scheme_desc()
1132 set_cipher_config1(&desc[idx], HASH_PADDING_ENABLED); in cc_proc_scheme_desc()
1133 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_proc_scheme_desc()
1134 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_proc_scheme_desc()
1138 hw_desc_init(&desc[idx]); in cc_proc_scheme_desc()
1139 set_din_sram(&desc[idx], aead_handle->sram_workspace_addr, in cc_proc_scheme_desc()
1141 set_flow_mode(&desc[idx], DIN_HASH); in cc_proc_scheme_desc()
1148 struct cc_hw_desc desc[], unsigned int *seq_size) in cc_mlli_to_sram() argument
1162 hw_desc_init(&desc[*seq_size]); in cc_mlli_to_sram()
1163 set_din_type(&desc[*seq_size], DMA_DLLI, in cc_mlli_to_sram()
1166 set_dout_sram(&desc[*seq_size], in cc_mlli_to_sram()
1169 set_flow_mode(&desc[*seq_size], BYPASS); in cc_mlli_to_sram()
1199 static void cc_hmac_authenc(struct aead_request *req, struct cc_hw_desc desc[], in cc_hmac_authenc() argument
1214 cc_set_hmac_desc(req, desc, seq_size); in cc_hmac_authenc()
1215 cc_set_cipher_desc(req, desc, seq_size); in cc_hmac_authenc()
1216 cc_proc_header_desc(req, desc, seq_size); in cc_hmac_authenc()
1217 cc_proc_cipher_desc(req, data_flow_mode, desc, seq_size); in cc_hmac_authenc()
1218 cc_proc_scheme_desc(req, desc, seq_size); in cc_hmac_authenc()
1219 cc_proc_digest_desc(req, desc, seq_size); in cc_hmac_authenc()
1230 cc_proc_cipher(req, desc, seq_size, data_flow_mode); in cc_hmac_authenc()
1232 cc_set_hmac_desc(req, desc, seq_size); in cc_hmac_authenc()
1233 cc_proc_authen_desc(req, DIN_HASH, desc, seq_size, direct); in cc_hmac_authenc()
1234 cc_proc_scheme_desc(req, desc, seq_size); in cc_hmac_authenc()
1235 cc_proc_digest_desc(req, desc, seq_size); in cc_hmac_authenc()
1239 cc_set_hmac_desc(req, desc, seq_size); in cc_hmac_authenc()
1240 cc_proc_authen_desc(req, DIN_HASH, desc, seq_size, direct); in cc_hmac_authenc()
1241 cc_proc_scheme_desc(req, desc, seq_size); in cc_hmac_authenc()
1243 cc_proc_cipher(req, desc, seq_size, data_flow_mode); in cc_hmac_authenc()
1247 cc_proc_digest_desc(req, desc, seq_size); in cc_hmac_authenc()
1252 cc_xcbc_authenc(struct aead_request *req, struct cc_hw_desc desc[], in cc_xcbc_authenc() argument
1267 cc_set_xcbc_desc(req, desc, seq_size); in cc_xcbc_authenc()
1268 cc_set_cipher_desc(req, desc, seq_size); in cc_xcbc_authenc()
1269 cc_proc_header_desc(req, desc, seq_size); in cc_xcbc_authenc()
1270 cc_proc_cipher_desc(req, data_flow_mode, desc, seq_size); in cc_xcbc_authenc()
1271 cc_proc_digest_desc(req, desc, seq_size); in cc_xcbc_authenc()
1282 cc_proc_cipher(req, desc, seq_size, data_flow_mode); in cc_xcbc_authenc()
1284 cc_set_xcbc_desc(req, desc, seq_size); in cc_xcbc_authenc()
1285 cc_proc_authen_desc(req, DIN_HASH, desc, seq_size, direct); in cc_xcbc_authenc()
1286 cc_proc_digest_desc(req, desc, seq_size); in cc_xcbc_authenc()
1289 cc_set_xcbc_desc(req, desc, seq_size); in cc_xcbc_authenc()
1290 cc_proc_authen_desc(req, DIN_HASH, desc, seq_size, direct); in cc_xcbc_authenc()
1292 cc_proc_cipher(req, desc, seq_size, data_flow_mode); in cc_xcbc_authenc()
1296 cc_proc_digest_desc(req, desc, seq_size); in cc_xcbc_authenc()
1398 static int cc_ccm(struct aead_request *req, struct cc_hw_desc desc[], in cc_ccm() argument
1417 hw_desc_init(&desc[idx]); in cc_ccm()
1418 set_cipher_mode(&desc[idx], DRV_CIPHER_CTR); in cc_ccm()
1419 set_din_type(&desc[idx], DMA_DLLI, ctx->enckey_dma_addr, in cc_ccm()
1422 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_ccm()
1423 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_ccm()
1424 set_cipher_config0(&desc[idx], DESC_DIRECTION_ENCRYPT_ENCRYPT); in cc_ccm()
1425 set_flow_mode(&desc[idx], S_DIN_to_AES); in cc_ccm()
1429 hw_desc_init(&desc[idx]); in cc_ccm()
1430 set_cipher_mode(&desc[idx], DRV_CIPHER_CTR); in cc_ccm()
1431 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_ccm()
1432 set_din_type(&desc[idx], DMA_DLLI, in cc_ccm()
1434 set_cipher_config0(&desc[idx], DESC_DIRECTION_ENCRYPT_ENCRYPT); in cc_ccm()
1435 set_setup_mode(&desc[idx], SETUP_LOAD_STATE1); in cc_ccm()
1436 set_flow_mode(&desc[idx], S_DIN_to_AES); in cc_ccm()
1440 hw_desc_init(&desc[idx]); in cc_ccm()
1441 set_cipher_mode(&desc[idx], DRV_CIPHER_CBC_MAC); in cc_ccm()
1442 set_din_type(&desc[idx], DMA_DLLI, ctx->enckey_dma_addr, in cc_ccm()
1445 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_ccm()
1446 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_ccm()
1447 set_cipher_config0(&desc[idx], DESC_DIRECTION_ENCRYPT_ENCRYPT); in cc_ccm()
1448 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_ccm()
1449 set_aes_not_hash_mode(&desc[idx]); in cc_ccm()
1453 hw_desc_init(&desc[idx]); in cc_ccm()
1454 set_cipher_mode(&desc[idx], DRV_CIPHER_CBC_MAC); in cc_ccm()
1455 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_ccm()
1456 set_din_type(&desc[idx], DMA_DLLI, req_ctx->mac_buf_dma_addr, in cc_ccm()
1458 set_cipher_config0(&desc[idx], DESC_DIRECTION_ENCRYPT_ENCRYPT); in cc_ccm()
1459 set_setup_mode(&desc[idx], SETUP_LOAD_STATE0); in cc_ccm()
1460 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_ccm()
1461 set_aes_not_hash_mode(&desc[idx]); in cc_ccm()
1466 cc_set_assoc_desc(req, DIN_HASH, desc, &idx); in cc_ccm()
1468 hw_desc_init(&desc[idx]); in cc_ccm()
1469 set_din_type(&desc[idx], DMA_DLLI, in cc_ccm()
1472 set_flow_mode(&desc[idx], DIN_HASH); in cc_ccm()
1478 cc_proc_cipher_desc(req, cipher_flow_mode, desc, &idx); in cc_ccm()
1481 hw_desc_init(&desc[idx]); in cc_ccm()
1482 set_cipher_mode(&desc[idx], DRV_CIPHER_CBC_MAC); in cc_ccm()
1483 set_dout_dlli(&desc[idx], req_ctx->mac_buf_dma_addr, ctx->authsize, in cc_ccm()
1485 set_setup_mode(&desc[idx], SETUP_WRITE_STATE0); in cc_ccm()
1486 set_cipher_config0(&desc[idx], HASH_DIGEST_RESULT_LITTLE_ENDIAN); in cc_ccm()
1487 set_flow_mode(&desc[idx], S_HASH_to_DOUT); in cc_ccm()
1488 set_aes_not_hash_mode(&desc[idx]); in cc_ccm()
1492 hw_desc_init(&desc[idx]); in cc_ccm()
1493 set_cipher_mode(&desc[idx], DRV_CIPHER_CTR); in cc_ccm()
1494 set_cipher_config0(&desc[idx], DRV_CRYPTO_DIRECTION_ENCRYPT); in cc_ccm()
1495 set_din_type(&desc[idx], DMA_DLLI, req_ctx->ccm_iv0_dma_addr, in cc_ccm()
1497 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_ccm()
1498 set_setup_mode(&desc[idx], SETUP_LOAD_STATE1); in cc_ccm()
1499 set_flow_mode(&desc[idx], S_DIN_to_AES); in cc_ccm()
1502 hw_desc_init(&desc[idx]); in cc_ccm()
1503 set_din_no_dma(&desc[idx], 0, 0xfffff0); in cc_ccm()
1504 set_dout_no_dma(&desc[idx], 0, 0, 1); in cc_ccm()
1508 hw_desc_init(&desc[idx]); in cc_ccm()
1509 set_din_type(&desc[idx], DMA_DLLI, req_ctx->mac_buf_dma_addr, in cc_ccm()
1511 set_dout_dlli(&desc[idx], mac_result, ctx->authsize, NS_BIT, 1); in cc_ccm()
1512 set_queue_last_ind(ctx->drvdata, &desc[idx]); in cc_ccm()
1513 set_flow_mode(&desc[idx], DIN_AES_DOUT); in cc_ccm()
1604 struct cc_hw_desc desc[], unsigned int *seq_size) in cc_set_ghash_desc() argument
1612 hw_desc_init(&desc[idx]); in cc_set_ghash_desc()
1613 set_cipher_mode(&desc[idx], DRV_CIPHER_ECB); in cc_set_ghash_desc()
1614 set_cipher_config0(&desc[idx], DRV_CRYPTO_DIRECTION_ENCRYPT); in cc_set_ghash_desc()
1615 set_din_type(&desc[idx], DMA_DLLI, ctx->enckey_dma_addr, in cc_set_ghash_desc()
1617 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_set_ghash_desc()
1618 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_set_ghash_desc()
1619 set_flow_mode(&desc[idx], S_DIN_to_AES); in cc_set_ghash_desc()
1623 hw_desc_init(&desc[idx]); in cc_set_ghash_desc()
1624 set_din_const(&desc[idx], 0x0, AES_BLOCK_SIZE); in cc_set_ghash_desc()
1625 set_dout_dlli(&desc[idx], req_ctx->hkey_dma_addr, AES_BLOCK_SIZE, in cc_set_ghash_desc()
1627 set_flow_mode(&desc[idx], DIN_AES_DOUT); in cc_set_ghash_desc()
1631 hw_desc_init(&desc[idx]); in cc_set_ghash_desc()
1632 set_din_no_dma(&desc[idx], 0, 0xfffff0); in cc_set_ghash_desc()
1633 set_dout_no_dma(&desc[idx], 0, 0, 1); in cc_set_ghash_desc()
1637 hw_desc_init(&desc[idx]); in cc_set_ghash_desc()
1638 set_din_type(&desc[idx], DMA_DLLI, req_ctx->hkey_dma_addr, in cc_set_ghash_desc()
1640 set_dout_no_dma(&desc[idx], 0, 0, 1); in cc_set_ghash_desc()
1641 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_ghash_desc()
1642 set_aes_not_hash_mode(&desc[idx]); in cc_set_ghash_desc()
1643 set_cipher_mode(&desc[idx], DRV_HASH_HW_GHASH); in cc_set_ghash_desc()
1644 set_cipher_config1(&desc[idx], HASH_PADDING_ENABLED); in cc_set_ghash_desc()
1645 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_set_ghash_desc()
1653 hw_desc_init(&desc[idx]); in cc_set_ghash_desc()
1654 set_din_no_dma(&desc[idx], 0, 0xfffff0); in cc_set_ghash_desc()
1655 set_dout_no_dma(&desc[idx], 0, 0, 1); in cc_set_ghash_desc()
1656 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_ghash_desc()
1657 set_aes_not_hash_mode(&desc[idx]); in cc_set_ghash_desc()
1658 set_cipher_mode(&desc[idx], DRV_HASH_HW_GHASH); in cc_set_ghash_desc()
1659 set_cipher_do(&desc[idx], 1); //1=AES_SK RKEK in cc_set_ghash_desc()
1660 set_cipher_config0(&desc[idx], DRV_CRYPTO_DIRECTION_ENCRYPT); in cc_set_ghash_desc()
1661 set_cipher_config1(&desc[idx], HASH_PADDING_ENABLED); in cc_set_ghash_desc()
1662 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_set_ghash_desc()
1668 hw_desc_init(&desc[idx]); in cc_set_ghash_desc()
1669 set_din_const(&desc[idx], 0x0, AES_BLOCK_SIZE); in cc_set_ghash_desc()
1670 set_dout_no_dma(&desc[idx], 0, 0, 1); in cc_set_ghash_desc()
1671 set_flow_mode(&desc[idx], S_DIN_to_HASH); in cc_set_ghash_desc()
1672 set_aes_not_hash_mode(&desc[idx]); in cc_set_ghash_desc()
1673 set_cipher_mode(&desc[idx], DRV_HASH_HW_GHASH); in cc_set_ghash_desc()
1674 set_cipher_config1(&desc[idx], HASH_PADDING_ENABLED); in cc_set_ghash_desc()
1675 set_setup_mode(&desc[idx], SETUP_LOAD_STATE0); in cc_set_ghash_desc()
1681 static void cc_set_gctr_desc(struct aead_request *req, struct cc_hw_desc desc[], in cc_set_gctr_desc() argument
1690 hw_desc_init(&desc[idx]); in cc_set_gctr_desc()
1691 set_cipher_mode(&desc[idx], DRV_CIPHER_GCTR); in cc_set_gctr_desc()
1692 set_cipher_config0(&desc[idx], DRV_CRYPTO_DIRECTION_ENCRYPT); in cc_set_gctr_desc()
1693 set_din_type(&desc[idx], DMA_DLLI, ctx->enckey_dma_addr, in cc_set_gctr_desc()
1695 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_set_gctr_desc()
1696 set_setup_mode(&desc[idx], SETUP_LOAD_KEY0); in cc_set_gctr_desc()
1697 set_flow_mode(&desc[idx], S_DIN_to_AES); in cc_set_gctr_desc()
1702 hw_desc_init(&desc[idx]); in cc_set_gctr_desc()
1703 set_cipher_mode(&desc[idx], DRV_CIPHER_GCTR); in cc_set_gctr_desc()
1704 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_set_gctr_desc()
1705 set_din_type(&desc[idx], DMA_DLLI, in cc_set_gctr_desc()
1708 set_cipher_config0(&desc[idx], DRV_CRYPTO_DIRECTION_ENCRYPT); in cc_set_gctr_desc()
1709 set_setup_mode(&desc[idx], SETUP_LOAD_STATE1); in cc_set_gctr_desc()
1710 set_flow_mode(&desc[idx], S_DIN_to_AES); in cc_set_gctr_desc()
1718 struct cc_hw_desc desc[], in cc_proc_gcm_result() argument
1734 hw_desc_init(&desc[idx]); in cc_proc_gcm_result()
1735 set_din_type(&desc[idx], DMA_DLLI, req_ctx->gcm_block_len_dma_addr, in cc_proc_gcm_result()
1737 set_flow_mode(&desc[idx], DIN_HASH); in cc_proc_gcm_result()
1741 hw_desc_init(&desc[idx]); in cc_proc_gcm_result()
1742 set_cipher_mode(&desc[idx], DRV_HASH_HW_GHASH); in cc_proc_gcm_result()
1743 set_din_no_dma(&desc[idx], 0, 0xfffff0); in cc_proc_gcm_result()
1744 set_dout_dlli(&desc[idx], req_ctx->mac_buf_dma_addr, AES_BLOCK_SIZE, in cc_proc_gcm_result()
1746 set_setup_mode(&desc[idx], SETUP_WRITE_STATE0); in cc_proc_gcm_result()
1747 set_flow_mode(&desc[idx], S_HASH_to_DOUT); in cc_proc_gcm_result()
1748 set_aes_not_hash_mode(&desc[idx]); in cc_proc_gcm_result()
1753 hw_desc_init(&desc[idx]); in cc_proc_gcm_result()
1754 set_cipher_mode(&desc[idx], DRV_CIPHER_GCTR); in cc_proc_gcm_result()
1755 set_key_size_aes(&desc[idx], ctx->enc_keylen); in cc_proc_gcm_result()
1756 set_din_type(&desc[idx], DMA_DLLI, req_ctx->gcm_iv_inc1_dma_addr, in cc_proc_gcm_result()
1758 set_cipher_config0(&desc[idx], DRV_CRYPTO_DIRECTION_ENCRYPT); in cc_proc_gcm_result()
1759 set_setup_mode(&desc[idx], SETUP_LOAD_STATE1); in cc_proc_gcm_result()
1760 set_flow_mode(&desc[idx], S_DIN_to_AES); in cc_proc_gcm_result()
1764 hw_desc_init(&desc[idx]); in cc_proc_gcm_result()
1765 set_din_no_dma(&desc[idx], 0, 0xfffff0); in cc_proc_gcm_result()
1766 set_dout_no_dma(&desc[idx], 0, 0, 1); in cc_proc_gcm_result()
1770 hw_desc_init(&desc[idx]); in cc_proc_gcm_result()
1771 set_cipher_mode(&desc[idx], DRV_CIPHER_GCTR); in cc_proc_gcm_result()
1772 set_din_type(&desc[idx], DMA_DLLI, req_ctx->mac_buf_dma_addr, in cc_proc_gcm_result()
1774 set_dout_dlli(&desc[idx], mac_result, ctx->authsize, NS_BIT, 1); in cc_proc_gcm_result()
1775 set_queue_last_ind(ctx->drvdata, &desc[idx]); in cc_proc_gcm_result()
1776 set_flow_mode(&desc[idx], DIN_AES_DOUT); in cc_proc_gcm_result()
1782 static int cc_gcm(struct aead_request *req, struct cc_hw_desc desc[], in cc_gcm() argument
1796 cc_proc_cipher_desc(req, BYPASS, desc, seq_size); in cc_gcm()
1797 cc_set_ghash_desc(req, desc, seq_size); in cc_gcm()
1799 cc_set_assoc_desc(req, DIN_HASH, desc, seq_size); in cc_gcm()
1800 cc_set_gctr_desc(req, desc, seq_size); in cc_gcm()
1801 cc_proc_gcm_result(req, desc, seq_size); in cc_gcm()
1806 cc_set_ghash_desc(req, desc, seq_size); in cc_gcm()
1809 cc_set_assoc_desc(req, DIN_HASH, desc, seq_size); in cc_gcm()
1810 cc_set_gctr_desc(req, desc, seq_size); in cc_gcm()
1813 cc_proc_cipher_desc(req, cipher_flow_mode, desc, seq_size); in cc_gcm()
1814 cc_proc_gcm_result(req, desc, seq_size); in cc_gcm()
1888 struct cc_hw_desc desc[MAX_AEAD_PROCESS_SEQ]; in cc_proc_aead() local
2012 cc_mlli_to_sram(req, desc, &seq_len); in cc_proc_aead()
2018 cc_hmac_authenc(req, desc, &seq_len); in cc_proc_aead()
2021 cc_xcbc_authenc(req, desc, &seq_len); in cc_proc_aead()
2025 cc_ccm(req, desc, &seq_len); in cc_proc_aead()
2027 cc_gcm(req, desc, &seq_len); in cc_proc_aead()
2038 rc = cc_send_request(ctx->drvdata, &cc_req, desc, seq_len, &req->base); in cc_proc_aead()