1*cda5da8dSAndroid Build Coastguard Worker /* 2*cda5da8dSAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*cda5da8dSAndroid Build Coastguard Worker * 4*cda5da8dSAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*cda5da8dSAndroid Build Coastguard Worker * for more information. 6*cda5da8dSAndroid Build Coastguard Worker */ 7*cda5da8dSAndroid Build Coastguard Worker #ifndef _USR_IDXD_H_ 8*cda5da8dSAndroid Build Coastguard Worker #define _USR_IDXD_H_ 9*cda5da8dSAndroid Build Coastguard Worker #include <stdint.h> 10*cda5da8dSAndroid Build Coastguard Worker enum idxd_scmd_stat { 11*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_DEV_ENABLED = 0x80000010, 12*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_DEV_NOT_ENABLED = 0x80000020, 13*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_ENABLED = 0x80000021, 14*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_DEV_DMA_ERR = 0x80020000, 15*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NO_GRP = 0x80030000, 16*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NO_NAME = 0x80040000, 17*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NO_SVM = 0x80050000, 18*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NO_THRESH = 0x80060000, 19*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_PORTAL_ERR = 0x80070000, 20*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_RES_ALLOC_ERR = 0x80080000, 21*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_PERCPU_ERR = 0x80090000, 22*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_DMA_CHAN_ERR = 0x800a0000, 23*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_CDEV_ERR = 0x800b0000, 24*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NO_SWQ_SUPPORT = 0x800c0000, 25*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NONE_CONFIGURED = 0x800d0000, 26*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NO_SIZE = 0x800e0000, 27*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NO_PRIV = 0x800f0000, 28*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_IRQ_ERR = 0x80100000, 29*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_USER_NO_IOMMU = 0x80110000, 30*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_DEV_EVL_ERR = 0x80120000, 31*cda5da8dSAndroid Build Coastguard Worker IDXD_SCMD_WQ_NO_DRV_NAME = 0x80200000, 32*cda5da8dSAndroid Build Coastguard Worker }; 33*cda5da8dSAndroid Build Coastguard Worker #define IDXD_SCMD_SOFTERR_MASK 0x80000000 34*cda5da8dSAndroid Build Coastguard Worker #define IDXD_SCMD_SOFTERR_SHIFT 16 35*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_FENCE 0x0001 36*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_BOF 0x0002 37*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_CRAV 0x0004 38*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_RCR 0x0008 39*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_RCI 0x0010 40*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_CRSTS 0x0020 41*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_CR 0x0080 42*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_CC 0x0100 43*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_ADDR1_TCS 0x0200 44*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_ADDR2_TCS 0x0400 45*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_ADDR3_TCS 0x0800 46*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_CR_TCS 0x1000 47*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_STORD 0x2000 48*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_DRDBK 0x4000 49*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_DSTS 0x8000 50*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_RD_SRC2_AECS 0x010000 51*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_RD_SRC2_2ND 0x020000 52*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_WR_SRC2_AECS_COMP 0x040000 53*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_WR_SRC2_AECS_OVFL 0x080000 54*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_SRC2_STS 0x100000 55*cda5da8dSAndroid Build Coastguard Worker #define IDXD_OP_FLAG_CRC_RFC3720 0x200000 56*cda5da8dSAndroid Build Coastguard Worker enum dsa_opcode { 57*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_NOOP = 0, 58*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_BATCH, 59*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_DRAIN, 60*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_MEMMOVE, 61*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_MEMFILL, 62*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_COMPARE, 63*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_COMPVAL, 64*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_CR_DELTA, 65*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_AP_DELTA, 66*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_DUALCAST, 67*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_TRANSL_FETCH, 68*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_CRCGEN = 0x10, 69*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_COPY_CRC, 70*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_DIF_CHECK, 71*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_DIF_INS, 72*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_DIF_STRP, 73*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_DIF_UPDT, 74*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_DIX_GEN = 0x17, 75*cda5da8dSAndroid Build Coastguard Worker DSA_OPCODE_CFLUSH = 0x20, 76*cda5da8dSAndroid Build Coastguard Worker }; 77*cda5da8dSAndroid Build Coastguard Worker enum iax_opcode { 78*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_NOOP = 0, 79*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_DRAIN = 2, 80*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_MEMMOVE, 81*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_DECOMPRESS = 0x42, 82*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_COMPRESS, 83*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_CRC64, 84*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_ZERO_DECOMP_32 = 0x48, 85*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_ZERO_DECOMP_16, 86*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_ZERO_COMP_32 = 0x4c, 87*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_ZERO_COMP_16, 88*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_SCAN = 0x50, 89*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_SET_MEMBER, 90*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_EXTRACT, 91*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_SELECT, 92*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_RLE_BURST, 93*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_FIND_UNIQUE, 94*cda5da8dSAndroid Build Coastguard Worker IAX_OPCODE_EXPAND, 95*cda5da8dSAndroid Build Coastguard Worker }; 96*cda5da8dSAndroid Build Coastguard Worker enum dsa_completion_status { 97*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_NONE = 0, 98*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_SUCCESS, 99*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_SUCCESS_PRED, 100*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_PAGE_FAULT_NOBOF, 101*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_PAGE_FAULT_IR, 102*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_BATCH_FAIL, 103*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_BATCH_PAGE_FAULT, 104*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_DR_OFFSET_NOINC, 105*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_DR_OFFSET_ERANGE, 106*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_DIF_ERR, 107*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_BAD_OPCODE = 0x10, 108*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_INVALID_FLAGS, 109*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_NOZERO_RESERVE, 110*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_XFER_ERANGE, 111*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_DESC_CNT_ERANGE, 112*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_DR_ERANGE, 113*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_OVERLAP_BUFFERS, 114*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_DCAST_ERR, 115*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_DESCLIST_ALIGN, 116*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_INT_HANDLE_INVAL, 117*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_CRA_XLAT, 118*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_CRA_ALIGN, 119*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_ADDR_ALIGN, 120*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_PRIV_BAD, 121*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_TRAFFIC_CLASS_CONF, 122*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_PFAULT_RDBA, 123*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_HW_ERR1, 124*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_HW_ERR_DRB, 125*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_TRANSLATION_FAIL, 126*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_DRAIN_EVL = 0x26, 127*cda5da8dSAndroid Build Coastguard Worker DSA_COMP_BATCH_EVL_ERR, 128*cda5da8dSAndroid Build Coastguard Worker }; 129*cda5da8dSAndroid Build Coastguard Worker enum iax_completion_status { 130*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_NONE = 0, 131*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_SUCCESS, 132*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_PAGE_FAULT_IR = 0x04, 133*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_ANALYTICS_ERROR = 0x0a, 134*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_OUTBUF_OVERFLOW, 135*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_BAD_OPCODE = 0x10, 136*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INVALID_FLAGS, 137*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_NOZERO_RESERVE, 138*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INVALID_SIZE, 139*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_OVERLAP_BUFFERS = 0x16, 140*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INT_HANDLE_INVAL = 0x19, 141*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_CRA_XLAT, 142*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_CRA_ALIGN, 143*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_ADDR_ALIGN, 144*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_PRIV_BAD, 145*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_TRAFFIC_CLASS_CONF, 146*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_PFAULT_RDBA, 147*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_HW_ERR1, 148*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_HW_ERR_DRB, 149*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_TRANSLATION_FAIL, 150*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_PRS_TIMEOUT, 151*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_WATCHDOG, 152*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INVALID_COMP_FLAG = 0x30, 153*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INVALID_FILTER_FLAG, 154*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INVALID_INPUT_SIZE, 155*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INVALID_NUM_ELEMS, 156*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INVALID_SRC1_WIDTH, 157*cda5da8dSAndroid Build Coastguard Worker IAX_COMP_INVALID_INVERT_OUT, 158*cda5da8dSAndroid Build Coastguard Worker }; 159*cda5da8dSAndroid Build Coastguard Worker #define DSA_COMP_STATUS_MASK 0x7f 160*cda5da8dSAndroid Build Coastguard Worker #define DSA_COMP_STATUS_WRITE 0x80 161*cda5da8dSAndroid Build Coastguard Worker #define DSA_COMP_STATUS(status) ((status) & DSA_COMP_STATUS_MASK) 162*cda5da8dSAndroid Build Coastguard Worker struct dsa_hw_desc { 163*cda5da8dSAndroid Build Coastguard Worker uint32_t pasid : 20; 164*cda5da8dSAndroid Build Coastguard Worker uint32_t rsvd : 11; 165*cda5da8dSAndroid Build Coastguard Worker uint32_t priv : 1; 166*cda5da8dSAndroid Build Coastguard Worker uint32_t flags : 24; 167*cda5da8dSAndroid Build Coastguard Worker uint32_t opcode : 8; 168*cda5da8dSAndroid Build Coastguard Worker uint64_t completion_addr; 169*cda5da8dSAndroid Build Coastguard Worker union { 170*cda5da8dSAndroid Build Coastguard Worker uint64_t src_addr; 171*cda5da8dSAndroid Build Coastguard Worker uint64_t rdback_addr; 172*cda5da8dSAndroid Build Coastguard Worker uint64_t pattern; 173*cda5da8dSAndroid Build Coastguard Worker uint64_t desc_list_addr; 174*cda5da8dSAndroid Build Coastguard Worker uint64_t pattern_lower; 175*cda5da8dSAndroid Build Coastguard Worker uint64_t transl_fetch_addr; 176*cda5da8dSAndroid Build Coastguard Worker }; 177*cda5da8dSAndroid Build Coastguard Worker union { 178*cda5da8dSAndroid Build Coastguard Worker uint64_t dst_addr; 179*cda5da8dSAndroid Build Coastguard Worker uint64_t rdback_addr2; 180*cda5da8dSAndroid Build Coastguard Worker uint64_t src2_addr; 181*cda5da8dSAndroid Build Coastguard Worker uint64_t comp_pattern; 182*cda5da8dSAndroid Build Coastguard Worker }; 183*cda5da8dSAndroid Build Coastguard Worker union { 184*cda5da8dSAndroid Build Coastguard Worker uint32_t xfer_size; 185*cda5da8dSAndroid Build Coastguard Worker uint32_t desc_count; 186*cda5da8dSAndroid Build Coastguard Worker uint32_t region_size; 187*cda5da8dSAndroid Build Coastguard Worker }; 188*cda5da8dSAndroid Build Coastguard Worker uint16_t int_handle; 189*cda5da8dSAndroid Build Coastguard Worker uint16_t rsvd1; 190*cda5da8dSAndroid Build Coastguard Worker union { 191*cda5da8dSAndroid Build Coastguard Worker uint8_t expected_res; 192*cda5da8dSAndroid Build Coastguard Worker struct { 193*cda5da8dSAndroid Build Coastguard Worker uint64_t delta_addr; 194*cda5da8dSAndroid Build Coastguard Worker uint32_t max_delta_size; 195*cda5da8dSAndroid Build Coastguard Worker uint32_t delt_rsvd; 196*cda5da8dSAndroid Build Coastguard Worker uint8_t expected_res_mask; 197*cda5da8dSAndroid Build Coastguard Worker }; 198*cda5da8dSAndroid Build Coastguard Worker uint32_t delta_rec_size; 199*cda5da8dSAndroid Build Coastguard Worker uint64_t dest2; 200*cda5da8dSAndroid Build Coastguard Worker struct { 201*cda5da8dSAndroid Build Coastguard Worker uint32_t crc_seed; 202*cda5da8dSAndroid Build Coastguard Worker uint32_t crc_rsvd; 203*cda5da8dSAndroid Build Coastguard Worker uint64_t seed_addr; 204*cda5da8dSAndroid Build Coastguard Worker }; 205*cda5da8dSAndroid Build Coastguard Worker struct { 206*cda5da8dSAndroid Build Coastguard Worker uint8_t src_dif_flags; 207*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_chk_res; 208*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_chk_flags; 209*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_chk_res2[5]; 210*cda5da8dSAndroid Build Coastguard Worker uint32_t chk_ref_tag_seed; 211*cda5da8dSAndroid Build Coastguard Worker uint16_t chk_app_tag_mask; 212*cda5da8dSAndroid Build Coastguard Worker uint16_t chk_app_tag_seed; 213*cda5da8dSAndroid Build Coastguard Worker }; 214*cda5da8dSAndroid Build Coastguard Worker struct { 215*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_ins_res; 216*cda5da8dSAndroid Build Coastguard Worker uint8_t dest_dif_flag; 217*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_ins_flags; 218*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_ins_res2[13]; 219*cda5da8dSAndroid Build Coastguard Worker uint32_t ins_ref_tag_seed; 220*cda5da8dSAndroid Build Coastguard Worker uint16_t ins_app_tag_mask; 221*cda5da8dSAndroid Build Coastguard Worker uint16_t ins_app_tag_seed; 222*cda5da8dSAndroid Build Coastguard Worker }; 223*cda5da8dSAndroid Build Coastguard Worker struct { 224*cda5da8dSAndroid Build Coastguard Worker uint8_t src_upd_flags; 225*cda5da8dSAndroid Build Coastguard Worker uint8_t upd_dest_flags; 226*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_upd_flags; 227*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_upd_res[5]; 228*cda5da8dSAndroid Build Coastguard Worker uint32_t src_ref_tag_seed; 229*cda5da8dSAndroid Build Coastguard Worker uint16_t src_app_tag_mask; 230*cda5da8dSAndroid Build Coastguard Worker uint16_t src_app_tag_seed; 231*cda5da8dSAndroid Build Coastguard Worker uint32_t dest_ref_tag_seed; 232*cda5da8dSAndroid Build Coastguard Worker uint16_t dest_app_tag_mask; 233*cda5da8dSAndroid Build Coastguard Worker uint16_t dest_app_tag_seed; 234*cda5da8dSAndroid Build Coastguard Worker }; 235*cda5da8dSAndroid Build Coastguard Worker uint64_t pattern_upper; 236*cda5da8dSAndroid Build Coastguard Worker struct { 237*cda5da8dSAndroid Build Coastguard Worker uint64_t transl_fetch_res; 238*cda5da8dSAndroid Build Coastguard Worker uint32_t region_stride; 239*cda5da8dSAndroid Build Coastguard Worker }; 240*cda5da8dSAndroid Build Coastguard Worker struct { 241*cda5da8dSAndroid Build Coastguard Worker uint8_t dix_gen_res; 242*cda5da8dSAndroid Build Coastguard Worker uint8_t dest_dif_flags; 243*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_flags; 244*cda5da8dSAndroid Build Coastguard Worker uint8_t dix_gen_res2[13]; 245*cda5da8dSAndroid Build Coastguard Worker uint32_t ref_tag_seed; 246*cda5da8dSAndroid Build Coastguard Worker uint16_t app_tag_mask; 247*cda5da8dSAndroid Build Coastguard Worker uint16_t app_tag_seed; 248*cda5da8dSAndroid Build Coastguard Worker }; 249*cda5da8dSAndroid Build Coastguard Worker uint8_t op_specific[24]; 250*cda5da8dSAndroid Build Coastguard Worker }; 251*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 252*cda5da8dSAndroid Build Coastguard Worker struct iax_hw_desc { 253*cda5da8dSAndroid Build Coastguard Worker uint32_t pasid : 20; 254*cda5da8dSAndroid Build Coastguard Worker uint32_t rsvd : 11; 255*cda5da8dSAndroid Build Coastguard Worker uint32_t priv : 1; 256*cda5da8dSAndroid Build Coastguard Worker uint32_t flags : 24; 257*cda5da8dSAndroid Build Coastguard Worker uint32_t opcode : 8; 258*cda5da8dSAndroid Build Coastguard Worker uint64_t completion_addr; 259*cda5da8dSAndroid Build Coastguard Worker uint64_t src1_addr; 260*cda5da8dSAndroid Build Coastguard Worker uint64_t dst_addr; 261*cda5da8dSAndroid Build Coastguard Worker uint32_t src1_size; 262*cda5da8dSAndroid Build Coastguard Worker uint16_t int_handle; 263*cda5da8dSAndroid Build Coastguard Worker union { 264*cda5da8dSAndroid Build Coastguard Worker uint16_t compr_flags; 265*cda5da8dSAndroid Build Coastguard Worker uint16_t decompr_flags; 266*cda5da8dSAndroid Build Coastguard Worker }; 267*cda5da8dSAndroid Build Coastguard Worker uint64_t src2_addr; 268*cda5da8dSAndroid Build Coastguard Worker uint32_t max_dst_size; 269*cda5da8dSAndroid Build Coastguard Worker uint32_t src2_size; 270*cda5da8dSAndroid Build Coastguard Worker uint32_t filter_flags; 271*cda5da8dSAndroid Build Coastguard Worker uint32_t num_inputs; 272*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 273*cda5da8dSAndroid Build Coastguard Worker struct dsa_raw_desc { 274*cda5da8dSAndroid Build Coastguard Worker uint64_t field[8]; 275*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 276*cda5da8dSAndroid Build Coastguard Worker struct dsa_completion_record { 277*cda5da8dSAndroid Build Coastguard Worker volatile uint8_t status; 278*cda5da8dSAndroid Build Coastguard Worker union { 279*cda5da8dSAndroid Build Coastguard Worker uint8_t result; 280*cda5da8dSAndroid Build Coastguard Worker uint8_t dif_status; 281*cda5da8dSAndroid Build Coastguard Worker }; 282*cda5da8dSAndroid Build Coastguard Worker uint8_t fault_info; 283*cda5da8dSAndroid Build Coastguard Worker uint8_t rsvd; 284*cda5da8dSAndroid Build Coastguard Worker union { 285*cda5da8dSAndroid Build Coastguard Worker uint32_t bytes_completed; 286*cda5da8dSAndroid Build Coastguard Worker uint32_t descs_completed; 287*cda5da8dSAndroid Build Coastguard Worker }; 288*cda5da8dSAndroid Build Coastguard Worker uint64_t fault_addr; 289*cda5da8dSAndroid Build Coastguard Worker union { 290*cda5da8dSAndroid Build Coastguard Worker struct { 291*cda5da8dSAndroid Build Coastguard Worker uint32_t invalid_flags : 24; 292*cda5da8dSAndroid Build Coastguard Worker uint32_t rsvd2 : 8; 293*cda5da8dSAndroid Build Coastguard Worker }; 294*cda5da8dSAndroid Build Coastguard Worker uint32_t delta_rec_size; 295*cda5da8dSAndroid Build Coastguard Worker uint64_t crc_val; 296*cda5da8dSAndroid Build Coastguard Worker struct { 297*cda5da8dSAndroid Build Coastguard Worker uint32_t dif_chk_ref_tag; 298*cda5da8dSAndroid Build Coastguard Worker uint16_t dif_chk_app_tag_mask; 299*cda5da8dSAndroid Build Coastguard Worker uint16_t dif_chk_app_tag; 300*cda5da8dSAndroid Build Coastguard Worker }; 301*cda5da8dSAndroid Build Coastguard Worker struct { 302*cda5da8dSAndroid Build Coastguard Worker uint64_t dif_ins_res; 303*cda5da8dSAndroid Build Coastguard Worker uint32_t dif_ins_ref_tag; 304*cda5da8dSAndroid Build Coastguard Worker uint16_t dif_ins_app_tag_mask; 305*cda5da8dSAndroid Build Coastguard Worker uint16_t dif_ins_app_tag; 306*cda5da8dSAndroid Build Coastguard Worker }; 307*cda5da8dSAndroid Build Coastguard Worker struct { 308*cda5da8dSAndroid Build Coastguard Worker uint32_t dif_upd_src_ref_tag; 309*cda5da8dSAndroid Build Coastguard Worker uint16_t dif_upd_src_app_tag_mask; 310*cda5da8dSAndroid Build Coastguard Worker uint16_t dif_upd_src_app_tag; 311*cda5da8dSAndroid Build Coastguard Worker uint32_t dif_upd_dest_ref_tag; 312*cda5da8dSAndroid Build Coastguard Worker uint16_t dif_upd_dest_app_tag_mask; 313*cda5da8dSAndroid Build Coastguard Worker uint16_t dif_upd_dest_app_tag; 314*cda5da8dSAndroid Build Coastguard Worker }; 315*cda5da8dSAndroid Build Coastguard Worker struct { 316*cda5da8dSAndroid Build Coastguard Worker uint64_t dix_gen_res; 317*cda5da8dSAndroid Build Coastguard Worker uint32_t dix_ref_tag; 318*cda5da8dSAndroid Build Coastguard Worker uint16_t dix_app_tag_mask; 319*cda5da8dSAndroid Build Coastguard Worker uint16_t dix_app_tag; 320*cda5da8dSAndroid Build Coastguard Worker }; 321*cda5da8dSAndroid Build Coastguard Worker uint8_t op_specific[16]; 322*cda5da8dSAndroid Build Coastguard Worker }; 323*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 324*cda5da8dSAndroid Build Coastguard Worker struct dsa_raw_completion_record { 325*cda5da8dSAndroid Build Coastguard Worker uint64_t field[4]; 326*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 327*cda5da8dSAndroid Build Coastguard Worker struct iax_completion_record { 328*cda5da8dSAndroid Build Coastguard Worker volatile uint8_t status; 329*cda5da8dSAndroid Build Coastguard Worker uint8_t error_code; 330*cda5da8dSAndroid Build Coastguard Worker uint8_t fault_info; 331*cda5da8dSAndroid Build Coastguard Worker uint8_t rsvd; 332*cda5da8dSAndroid Build Coastguard Worker uint32_t bytes_completed; 333*cda5da8dSAndroid Build Coastguard Worker uint64_t fault_addr; 334*cda5da8dSAndroid Build Coastguard Worker uint32_t invalid_flags; 335*cda5da8dSAndroid Build Coastguard Worker uint32_t rsvd2; 336*cda5da8dSAndroid Build Coastguard Worker uint32_t output_size; 337*cda5da8dSAndroid Build Coastguard Worker uint8_t output_bits; 338*cda5da8dSAndroid Build Coastguard Worker uint8_t rsvd3; 339*cda5da8dSAndroid Build Coastguard Worker uint16_t xor_csum; 340*cda5da8dSAndroid Build Coastguard Worker uint32_t crc; 341*cda5da8dSAndroid Build Coastguard Worker uint32_t min; 342*cda5da8dSAndroid Build Coastguard Worker uint32_t max; 343*cda5da8dSAndroid Build Coastguard Worker uint32_t sum; 344*cda5da8dSAndroid Build Coastguard Worker uint64_t rsvd4[2]; 345*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 346*cda5da8dSAndroid Build Coastguard Worker struct iax_raw_completion_record { 347*cda5da8dSAndroid Build Coastguard Worker uint64_t field[8]; 348*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 349*cda5da8dSAndroid Build Coastguard Worker #endif 350