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