1*a4b16dadSTom Zanussi /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */ 2*a4b16dadSTom Zanussi /* Copyright(c) 2014 - 2020 Intel Corporation */ 3*a4b16dadSTom Zanussi #ifndef _ICP_QAT_FW_PKE_ 4*a4b16dadSTom Zanussi #define _ICP_QAT_FW_PKE_ 5*a4b16dadSTom Zanussi 6*a4b16dadSTom Zanussi #include "icp_qat_fw.h" 7*a4b16dadSTom Zanussi 8*a4b16dadSTom Zanussi struct icp_qat_fw_req_hdr_pke_cd_pars { 9*a4b16dadSTom Zanussi __u64 content_desc_addr; 10*a4b16dadSTom Zanussi __u32 content_desc_resrvd; 11*a4b16dadSTom Zanussi __u32 func_id; 12*a4b16dadSTom Zanussi }; 13*a4b16dadSTom Zanussi 14*a4b16dadSTom Zanussi struct icp_qat_fw_req_pke_mid { 15*a4b16dadSTom Zanussi __u64 opaque; 16*a4b16dadSTom Zanussi __u64 src_data_addr; 17*a4b16dadSTom Zanussi __u64 dest_data_addr; 18*a4b16dadSTom Zanussi }; 19*a4b16dadSTom Zanussi 20*a4b16dadSTom Zanussi struct icp_qat_fw_req_pke_hdr { 21*a4b16dadSTom Zanussi __u8 resrvd1; 22*a4b16dadSTom Zanussi __u8 resrvd2; 23*a4b16dadSTom Zanussi __u8 service_type; 24*a4b16dadSTom Zanussi __u8 hdr_flags; 25*a4b16dadSTom Zanussi __u16 comn_req_flags; 26*a4b16dadSTom Zanussi __u16 resrvd4; 27*a4b16dadSTom Zanussi struct icp_qat_fw_req_hdr_pke_cd_pars cd_pars; 28*a4b16dadSTom Zanussi }; 29*a4b16dadSTom Zanussi 30*a4b16dadSTom Zanussi struct icp_qat_fw_pke_request { 31*a4b16dadSTom Zanussi struct icp_qat_fw_req_pke_hdr pke_hdr; 32*a4b16dadSTom Zanussi struct icp_qat_fw_req_pke_mid pke_mid; 33*a4b16dadSTom Zanussi __u8 output_param_count; 34*a4b16dadSTom Zanussi __u8 input_param_count; 35*a4b16dadSTom Zanussi __u16 resrvd1; 36*a4b16dadSTom Zanussi __u32 resrvd2; 37*a4b16dadSTom Zanussi __u64 next_req_adr; 38*a4b16dadSTom Zanussi }; 39*a4b16dadSTom Zanussi 40*a4b16dadSTom Zanussi struct icp_qat_fw_resp_pke_hdr { 41*a4b16dadSTom Zanussi __u8 resrvd1; 42*a4b16dadSTom Zanussi __u8 resrvd2; 43*a4b16dadSTom Zanussi __u8 response_type; 44*a4b16dadSTom Zanussi __u8 hdr_flags; 45*a4b16dadSTom Zanussi __u16 comn_resp_flags; 46*a4b16dadSTom Zanussi __u16 resrvd4; 47*a4b16dadSTom Zanussi }; 48*a4b16dadSTom Zanussi 49*a4b16dadSTom Zanussi struct icp_qat_fw_pke_resp { 50*a4b16dadSTom Zanussi struct icp_qat_fw_resp_pke_hdr pke_resp_hdr; 51*a4b16dadSTom Zanussi __u64 opaque; 52*a4b16dadSTom Zanussi __u64 src_data_addr; 53*a4b16dadSTom Zanussi __u64 dest_data_addr; 54*a4b16dadSTom Zanussi }; 55*a4b16dadSTom Zanussi 56*a4b16dadSTom Zanussi #define ICP_QAT_FW_PKE_HDR_VALID_FLAG_BITPOS 7 57*a4b16dadSTom Zanussi #define ICP_QAT_FW_PKE_HDR_VALID_FLAG_MASK 0x1 58*a4b16dadSTom Zanussi #define ICP_QAT_FW_PKE_RESP_PKE_STAT_GET(status_word) \ 59*a4b16dadSTom Zanussi QAT_FIELD_GET(((status_word >> ICP_QAT_FW_COMN_ONE_BYTE_SHIFT) & \ 60*a4b16dadSTom Zanussi ICP_QAT_FW_COMN_SINGLE_BYTE_MASK), \ 61*a4b16dadSTom Zanussi QAT_COMN_RESP_PKE_STATUS_BITPOS, \ 62*a4b16dadSTom Zanussi QAT_COMN_RESP_PKE_STATUS_MASK) 63*a4b16dadSTom Zanussi 64*a4b16dadSTom Zanussi #define ICP_QAT_FW_PKE_HDR_VALID_FLAG_SET(hdr_t, val) \ 65*a4b16dadSTom Zanussi QAT_FIELD_SET((hdr_t.hdr_flags), (val), \ 66*a4b16dadSTom Zanussi ICP_QAT_FW_PKE_HDR_VALID_FLAG_BITPOS, \ 67*a4b16dadSTom Zanussi ICP_QAT_FW_PKE_HDR_VALID_FLAG_MASK) 68*a4b16dadSTom Zanussi #endif 69