xref: /aosp_15_r20/prebuilts/build-tools/sysroots/aarch64-unknown-linux-musl/include/linux/idxd.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
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