| 1725 | } |
| 1726 | |
| 1727 | static int |
| 1728 | ccp_perform_sha(struct rte_crypto_op *op, |
| 1729 | struct ccp_queue *cmd_q) |
| 1730 | { |
| 1731 | struct ccp_session *session; |
| 1732 | union ccp_function function; |
| 1733 | struct ccp_desc *desc; |
| 1734 | uint32_t tail; |
| 1735 | phys_addr_t src_addr, dest_addr; |
| 1736 | struct ccp_passthru pst; |
| 1737 | void *append_ptr; |
| 1738 | uint64_t auth_msg_bits; |
| 1739 | |
| 1740 | session = CRYPTODEV_GET_SYM_SESS_PRIV(op->sym->session); |
| 1741 | |
| 1742 | src_addr = rte_pktmbuf_iova_offset(op->sym->m_src, |
| 1743 | op->sym->auth.data.offset); |
| 1744 | append_ptr = (void *)rte_pktmbuf_append(op->sym->m_src, |
| 1745 | session->auth.ctx_len); |
| 1746 | pst.src_addr = (phys_addr_t)rte_mem_virt2iova((void *)session->auth.ctx); |
| 1747 | dest_addr = (phys_addr_t)rte_mem_virt2iova(append_ptr); |
| 1748 | |
| 1749 | /** Passthru sha context*/ |
| 1750 | |
| 1751 | pst.dest_addr = (phys_addr_t)(cmd_q->sb_sha * CCP_SB_BYTES); |
| 1752 | pst.len = session->auth.ctx_len; |
| 1753 | pst.dir = 1; |
| 1754 | pst.bit_mod = CCP_PASSTHRU_BITWISE_NOOP; |
| 1755 | pst.byte_swap = CCP_PASSTHRU_BYTESWAP_NOOP; |
| 1756 | ccp_perform_passthru(&pst, cmd_q); |
| 1757 | |
| 1758 | /**prepare sha command descriptor*/ |
| 1759 | |
| 1760 | desc = &cmd_q->qbase_desc[cmd_q->qidx]; |
| 1761 | memset(desc, 0, Q_DESC_SIZE); |
| 1762 | |
| 1763 | CCP_CMD_ENGINE(desc) = CCP_ENGINE_SHA; |
| 1764 | |
| 1765 | CCP_CMD_SOC(desc) = 0; |
| 1766 | CCP_CMD_IOC(desc) = 0; |
| 1767 | CCP_CMD_INIT(desc) = 1; |
| 1768 | CCP_CMD_EOM(desc) = 1; |
| 1769 | CCP_CMD_PROT(desc) = 0; |
| 1770 | |
| 1771 | function.raw = 0; |
| 1772 | CCP_SHA_TYPE(&function) = session->auth.ut.sha_type; |
| 1773 | CCP_CMD_FUNCTION(desc) = function.raw; |
| 1774 | |
| 1775 | CCP_CMD_LEN(desc) = op->sym->auth.data.length; |
| 1776 | auth_msg_bits = op->sym->auth.data.length * 8; |
| 1777 | |
| 1778 | CCP_CMD_SRC_LO(desc) = ((uint32_t)src_addr); |
| 1779 | CCP_CMD_SRC_HI(desc) = high32_value(src_addr); |
| 1780 | CCP_CMD_SRC_MEM(desc) = CCP_MEMTYPE_SYSTEM; |
| 1781 | |
| 1782 | CCP_CMD_LSB_ID(desc) = cmd_q->sb_sha; |
| 1783 | CCP_CMD_SHA_LO(desc) = ((uint32_t)auth_msg_bits); |
| 1784 | CCP_CMD_SHA_HI(desc) = high32_value(auth_msg_bits); |
no test coverage detected