xref: /linux/drivers/crypto/intel/qat/qat_common/icp_qat_uclo.h (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */
2 /* Copyright(c) 2014 - 2020 Intel Corporation */
3 #ifndef __ICP_QAT_UCLO_H__
4 #define __ICP_QAT_UCLO_H__
5 
6 #define ICP_QAT_AC_895XCC_DEV_TYPE 0x00400000
7 #define ICP_QAT_AC_C62X_DEV_TYPE   0x01000000
8 #define ICP_QAT_AC_C3XXX_DEV_TYPE  0x02000000
9 #define ICP_QAT_AC_4XXX_A_DEV_TYPE 0x08000000
10 #define ICP_QAT_AC_6XXX_DEV_TYPE   0x80000000
11 #define ICP_QAT_UCLO_MAX_AE       17
12 #define ICP_QAT_UCLO_MAX_CTX      8
13 #define ICP_QAT_UCLO_MAX_UIMAGE   (ICP_QAT_UCLO_MAX_AE * ICP_QAT_UCLO_MAX_CTX)
14 #define ICP_QAT_UCLO_MAX_USTORE   0x4000
15 #define ICP_QAT_UCLO_MAX_XFER_REG 128
16 #define ICP_QAT_UCLO_MAX_GPR_REG  128
17 #define ICP_QAT_UCLO_MAX_LMEM_REG 1024
18 #define ICP_QAT_UCLO_MAX_LMEM_REG_2X 1280
19 #define ICP_QAT_UCLO_AE_ALL_CTX   0xff
20 #define ICP_QAT_UOF_OBJID_LEN     8
21 #define ICP_QAT_UOF_FID 0xc6c2
22 #define ICP_QAT_UOF_MAJVER 0x4
23 #define ICP_QAT_UOF_MINVER 0x11
24 #define ICP_QAT_UOF_OBJS        "UOF_OBJS"
25 #define ICP_QAT_UOF_STRT        "UOF_STRT"
26 #define ICP_QAT_UOF_IMAG        "UOF_IMAG"
27 #define ICP_QAT_UOF_IMEM        "UOF_IMEM"
28 #define ICP_QAT_UOF_LOCAL_SCOPE     1
29 #define ICP_QAT_UOF_INIT_EXPR               0
30 #define ICP_QAT_UOF_INIT_REG                1
31 #define ICP_QAT_UOF_INIT_REG_CTX            2
32 #define ICP_QAT_UOF_INIT_EXPR_ENDIAN_SWAP   3
33 #define ICP_QAT_SUOF_OBJ_ID_LEN             8
34 #define ICP_QAT_SUOF_FID  0x53554f46
35 #define ICP_QAT_SUOF_MAJVER 0x0
36 #define ICP_QAT_SUOF_MINVER 0x1
37 #define ICP_QAT_SUOF_OBJ_NAME_LEN 128
38 #define ICP_QAT_MOF_OBJ_ID_LEN 8
39 #define ICP_QAT_MOF_OBJ_CHUNKID_LEN 8
40 #define ICP_QAT_MOF_FID 0x00666f6d
41 #define ICP_QAT_MOF_MAJVER 0x0
42 #define ICP_QAT_MOF_MINVER 0x1
43 #define ICP_QAT_MOF_SYM_OBJS "SYM_OBJS"
44 #define ICP_QAT_SUOF_OBJS "SUF_OBJS"
45 #define ICP_QAT_SUOF_IMAG "SUF_IMAG"
46 #define ICP_QAT_SIMG_AE_INIT_SEQ_LEN    (50 * sizeof(unsigned long long))
47 
48 #define DSS_FWSK_MODULUS_LEN    384 /* RSA3K */
49 #define DSS_FWSK_EXPONENT_LEN   4
50 #define DSS_FWSK_PADDING_LEN    380
51 #define DSS_SIGNATURE_LEN       384 /* RSA3K */
52 
53 #define CSS_FWSK_MODULUS_LEN    256 /* RSA2K */
54 #define CSS_FWSK_EXPONENT_LEN   4
55 #define CSS_FWSK_PADDING_LEN    252
56 #define CSS_SIGNATURE_LEN       256 /* RSA2K */
57 
58 #define ICP_QAT_CSS_FWSK_MODULUS_LEN(handle)	((handle)->chip_info->css_3k ? \
59 						DSS_FWSK_MODULUS_LEN  : \
60 						CSS_FWSK_MODULUS_LEN)
61 
62 #define ICP_QAT_CSS_FWSK_EXPONENT_LEN(handle)	((handle)->chip_info->css_3k ? \
63 						DSS_FWSK_EXPONENT_LEN : \
64 						CSS_FWSK_EXPONENT_LEN)
65 
66 #define ICP_QAT_CSS_FWSK_PAD_LEN(handle)	((handle)->chip_info->css_3k ? \
67 						DSS_FWSK_PADDING_LEN : \
68 						CSS_FWSK_PADDING_LEN)
69 
70 #define ICP_QAT_CSS_FWSK_PUB_LEN(handle)	(ICP_QAT_CSS_FWSK_MODULUS_LEN(handle) + \
71 						ICP_QAT_CSS_FWSK_EXPONENT_LEN(handle) + \
72 						ICP_QAT_CSS_FWSK_PAD_LEN(handle))
73 
74 #define ICP_QAT_CSS_SIGNATURE_LEN(handle)	((handle)->chip_info->css_3k ? \
75 						DSS_SIGNATURE_LEN : \
76 						CSS_SIGNATURE_LEN)
77 
78 #define ICP_QAT_AE_IMG_OFFSET(handle) (sizeof(struct icp_qat_css_hdr) + \
79 					ICP_QAT_CSS_FWSK_MODULUS_LEN(handle) + \
80 					ICP_QAT_CSS_FWSK_EXPONENT_LEN(handle) + \
81 					ICP_QAT_CSS_SIGNATURE_LEN(handle))
82 #define ICP_QAT_CSS_RSA4K_MAX_IMAGE_LEN    0x40000
83 #define ICP_QAT_CSS_RSA3K_MAX_IMAGE_LEN    0x30000
84 
85 /* All lengths below are in bytes */
86 #define ICP_QAT_DUALSIGN_OPAQUE_HDR_LEN		12
87 #define ICP_QAT_DUALSIGN_OPAQUE_HDR_ALIGN_LEN	16
88 #define ICP_QAT_DUALSIGN_OPAQUE_DATA_LEN	3540
89 #define ICP_QAT_DUALSIGN_XMSS_PUBKEY_LEN	64
90 #define ICP_QAT_DUALSIGN_XMSS_SIG_LEN		2692
91 #define ICP_QAT_DUALSIGN_XMSS_SIG_ALIGN_LEN	2696
92 #define ICP_QAT_DUALSIGN_MISC_INFO_LEN		16
93 #define ICP_QAT_DUALSIGN_FW_TYPE_LEN		7
94 #define ICP_QAT_DUALSIGN_MODULE_TYPE		0x14
95 #define ICP_QAT_DUALSIGN_HDR_LEN		0x375
96 #define ICP_QAT_DUALSIGN_HDR_VER		0x40001
97 #define ICP_QAT_DUALSIGN_HDR_LEN_OFFSET		4
98 #define ICP_QAT_DUALSIGN_HDR_VER_OFFSET		8
99 
100 #define ICP_QAT_CTX_MODE(ae_mode) ((ae_mode) & 0xf)
101 #define ICP_QAT_NN_MODE(ae_mode) (((ae_mode) >> 0x4) & 0xf)
102 #define ICP_QAT_SHARED_USTORE_MODE(ae_mode) (((ae_mode) >> 0xb) & 0x1)
103 #define RELOADABLE_CTX_SHARED_MODE(ae_mode) (((ae_mode) >> 0xc) & 0x1)
104 
105 #define ICP_QAT_LOC_MEM0_MODE(ae_mode) (((ae_mode) >> 0x8) & 0x1)
106 #define ICP_QAT_LOC_MEM1_MODE(ae_mode) (((ae_mode) >> 0x9) & 0x1)
107 #define ICP_QAT_LOC_MEM2_MODE(ae_mode) (((ae_mode) >> 0x6) & 0x1)
108 #define ICP_QAT_LOC_MEM3_MODE(ae_mode) (((ae_mode) >> 0x7) & 0x1)
109 #define ICP_QAT_LOC_TINDEX_MODE(ae_mode) (((ae_mode) >> 0xe) & 0x1)
110 
111 enum icp_qat_uof_mem_region {
112 	ICP_QAT_UOF_SRAM_REGION = 0x0,
113 	ICP_QAT_UOF_LMEM_REGION = 0x3,
114 	ICP_QAT_UOF_UMEM_REGION = 0x5
115 };
116 
117 enum icp_qat_uof_regtype {
118 	ICP_NO_DEST	= 0,
119 	ICP_GPA_REL	= 1,
120 	ICP_GPA_ABS	= 2,
121 	ICP_GPB_REL	= 3,
122 	ICP_GPB_ABS	= 4,
123 	ICP_SR_REL	= 5,
124 	ICP_SR_RD_REL	= 6,
125 	ICP_SR_WR_REL	= 7,
126 	ICP_SR_ABS	= 8,
127 	ICP_SR_RD_ABS	= 9,
128 	ICP_SR_WR_ABS	= 10,
129 	ICP_DR_REL	= 19,
130 	ICP_DR_RD_REL	= 20,
131 	ICP_DR_WR_REL	= 21,
132 	ICP_DR_ABS	= 22,
133 	ICP_DR_RD_ABS	= 23,
134 	ICP_DR_WR_ABS	= 24,
135 	ICP_LMEM	= 26,
136 	ICP_LMEM0	= 27,
137 	ICP_LMEM1	= 28,
138 	ICP_NEIGH_REL	= 31,
139 	ICP_LMEM2	= 61,
140 	ICP_LMEM3	= 62,
141 };
142 
143 enum icp_qat_css_fwtype {
144 	CSS_AE_FIRMWARE = 0,
145 	CSS_MMP_FIRMWARE = 1
146 };
147 
148 struct icp_qat_uclo_page {
149 	struct icp_qat_uclo_encap_page *encap_page;
150 	struct icp_qat_uclo_region *region;
151 	unsigned int flags;
152 };
153 
154 struct icp_qat_uclo_region {
155 	struct icp_qat_uclo_page *loaded;
156 	struct icp_qat_uclo_page *page;
157 };
158 
159 struct icp_qat_uclo_aeslice {
160 	struct icp_qat_uclo_region *region;
161 	struct icp_qat_uclo_page *page;
162 	struct icp_qat_uclo_page *cur_page[ICP_QAT_UCLO_MAX_CTX];
163 	struct icp_qat_uclo_encapme *encap_image;
164 	unsigned int ctx_mask_assigned;
165 	unsigned int new_uaddr[ICP_QAT_UCLO_MAX_CTX];
166 };
167 
168 struct icp_qat_uclo_aedata {
169 	unsigned int slice_num;
170 	unsigned int eff_ustore_size;
171 	struct icp_qat_uclo_aeslice ae_slices[ICP_QAT_UCLO_MAX_CTX];
172 };
173 
174 struct icp_qat_uof_encap_obj {
175 	char *beg_uof;
176 	struct icp_qat_uof_objhdr *obj_hdr;
177 	struct icp_qat_uof_chunkhdr *chunk_hdr;
178 	struct icp_qat_uof_varmem_seg *var_mem_seg;
179 };
180 
181 struct icp_qat_uclo_encap_uwblock {
182 	unsigned int start_addr;
183 	unsigned int words_num;
184 	u64 micro_words;
185 };
186 
187 struct icp_qat_uclo_encap_page {
188 	unsigned int def_page;
189 	unsigned int page_region;
190 	unsigned int beg_addr_v;
191 	unsigned int beg_addr_p;
192 	unsigned int micro_words_num;
193 	unsigned int uwblock_num;
194 	struct icp_qat_uclo_encap_uwblock *uwblock;
195 };
196 
197 struct icp_qat_uclo_encapme {
198 	struct icp_qat_uof_image *img_ptr;
199 	struct icp_qat_uclo_encap_page *page;
200 	unsigned int ae_reg_num;
201 	struct icp_qat_uof_ae_reg *ae_reg;
202 	unsigned int init_regsym_num;
203 	struct icp_qat_uof_init_regsym *init_regsym;
204 	unsigned int sbreak_num;
205 	struct icp_qat_uof_sbreak *sbreak;
206 	unsigned int uwords_num;
207 };
208 
209 struct icp_qat_uclo_init_mem_table {
210 	unsigned int entry_num;
211 	struct icp_qat_uof_initmem *init_mem;
212 };
213 
214 struct icp_qat_uclo_objhdr {
215 	char *file_buff;
216 	unsigned int checksum;
217 	unsigned int size;
218 };
219 
220 struct icp_qat_uof_strtable {
221 	unsigned int table_len;
222 	unsigned int reserved;
223 	u64 strings;
224 };
225 
226 struct icp_qat_uclo_objhandle {
227 	unsigned int prod_type;
228 	unsigned int prod_rev;
229 	struct icp_qat_uclo_objhdr *obj_hdr;
230 	struct icp_qat_uof_encap_obj encap_uof_obj;
231 	struct icp_qat_uof_strtable str_table;
232 	struct icp_qat_uclo_encapme ae_uimage[ICP_QAT_UCLO_MAX_UIMAGE];
233 	struct icp_qat_uclo_aedata ae_data[ICP_QAT_UCLO_MAX_AE];
234 	struct icp_qat_uclo_init_mem_table init_mem_tab;
235 	struct icp_qat_uof_batch_init *lm_init_tab[ICP_QAT_UCLO_MAX_AE];
236 	struct icp_qat_uof_batch_init *umem_init_tab[ICP_QAT_UCLO_MAX_AE];
237 	int uimage_num;
238 	int uword_in_bytes;
239 	int global_inited;
240 	unsigned int ae_num;
241 	unsigned int ustore_phy_size;
242 	void *obj_buf;
243 	u64 *uword_buf;
244 };
245 
246 struct icp_qat_uof_uword_block {
247 	unsigned int start_addr;
248 	unsigned int words_num;
249 	unsigned int uword_offset;
250 	unsigned int reserved;
251 };
252 
253 struct icp_qat_uof_filehdr {
254 	unsigned short file_id;
255 	unsigned short reserved1;
256 	char min_ver;
257 	char maj_ver;
258 	unsigned short reserved2;
259 	unsigned short max_chunks;
260 	unsigned short num_chunks;
261 };
262 
263 struct icp_qat_uof_filechunkhdr {
264 	char chunk_id[ICP_QAT_UOF_OBJID_LEN];
265 	unsigned int checksum;
266 	unsigned int offset;
267 	unsigned int size;
268 };
269 
270 struct icp_qat_uof_objhdr {
271 	unsigned int ac_dev_type;
272 	unsigned short min_cpu_ver;
273 	unsigned short max_cpu_ver;
274 	short max_chunks;
275 	short num_chunks;
276 	unsigned int reserved1;
277 	unsigned int reserved2;
278 };
279 
280 struct icp_qat_uof_chunkhdr {
281 	char chunk_id[ICP_QAT_UOF_OBJID_LEN];
282 	unsigned int offset;
283 	unsigned int size;
284 };
285 
286 struct icp_qat_uof_memvar_attr {
287 	unsigned int offset_in_byte;
288 	unsigned int value;
289 };
290 
291 struct icp_qat_uof_initmem {
292 	unsigned int sym_name;
293 	char region;
294 	char scope;
295 	unsigned short reserved1;
296 	unsigned int addr;
297 	unsigned int num_in_bytes;
298 	unsigned int val_attr_num;
299 };
300 
301 struct icp_qat_uof_init_regsym {
302 	unsigned int sym_name;
303 	char init_type;
304 	char value_type;
305 	char reg_type;
306 	unsigned char ctx;
307 	unsigned int reg_addr;
308 	unsigned int value;
309 };
310 
311 struct icp_qat_uof_varmem_seg {
312 	unsigned int sram_base;
313 	unsigned int sram_size;
314 	unsigned int sram_alignment;
315 	unsigned int sdram_base;
316 	unsigned int sdram_size;
317 	unsigned int sdram_alignment;
318 	unsigned int sdram1_base;
319 	unsigned int sdram1_size;
320 	unsigned int sdram1_alignment;
321 	unsigned int scratch_base;
322 	unsigned int scratch_size;
323 	unsigned int scratch_alignment;
324 };
325 
326 struct icp_qat_uof_gtid {
327 	char tool_id[ICP_QAT_UOF_OBJID_LEN];
328 	int tool_ver;
329 	unsigned int reserved1;
330 	unsigned int reserved2;
331 };
332 
333 struct icp_qat_uof_sbreak {
334 	unsigned int page_num;
335 	unsigned int virt_uaddr;
336 	unsigned char sbreak_type;
337 	unsigned char reg_type;
338 	unsigned short reserved1;
339 	unsigned int addr_offset;
340 	unsigned int reg_addr;
341 };
342 
343 struct icp_qat_uof_code_page {
344 	unsigned int page_region;
345 	unsigned int page_num;
346 	unsigned char def_page;
347 	unsigned char reserved2;
348 	unsigned short reserved1;
349 	unsigned int beg_addr_v;
350 	unsigned int beg_addr_p;
351 	unsigned int neigh_reg_tab_offset;
352 	unsigned int uc_var_tab_offset;
353 	unsigned int imp_var_tab_offset;
354 	unsigned int imp_expr_tab_offset;
355 	unsigned int code_area_offset;
356 };
357 
358 struct icp_qat_uof_image {
359 	unsigned int img_name;
360 	unsigned int ae_assigned;
361 	unsigned int ctx_assigned;
362 	unsigned int ac_dev_type;
363 	unsigned int entry_address;
364 	unsigned int fill_pattern[2];
365 	unsigned int reloadable_size;
366 	unsigned char sensitivity;
367 	unsigned char reserved;
368 	unsigned short ae_mode;
369 	unsigned short max_ver;
370 	unsigned short min_ver;
371 	unsigned short image_attrib;
372 	unsigned short reserved2;
373 	unsigned short page_region_num;
374 	unsigned short numpages;
375 	unsigned int reg_tab_offset;
376 	unsigned int init_reg_sym_tab;
377 	unsigned int sbreak_tab;
378 	unsigned int app_metadata;
379 };
380 
381 struct icp_qat_uof_objtable {
382 	unsigned int entry_num;
383 };
384 
385 struct icp_qat_uof_ae_reg {
386 	unsigned int name;
387 	unsigned int vis_name;
388 	unsigned short type;
389 	unsigned short addr;
390 	unsigned short access_mode;
391 	unsigned char visible;
392 	unsigned char reserved1;
393 	unsigned short ref_count;
394 	unsigned short reserved2;
395 	unsigned int xo_id;
396 };
397 
398 struct icp_qat_uof_code_area {
399 	unsigned int micro_words_num;
400 	unsigned int uword_block_tab;
401 };
402 
403 struct icp_qat_uof_batch_init {
404 	unsigned int ae;
405 	unsigned int addr;
406 	unsigned int *value;
407 	unsigned int size;
408 	struct icp_qat_uof_batch_init *next;
409 };
410 
411 struct icp_qat_suof_img_hdr {
412 	char          *simg_buf;
413 	unsigned long simg_len;
414 	char          *css_header;
415 	char          *css_simg;
416 	unsigned long simg_size;
417 	unsigned int  ae_num;
418 	unsigned int  ae_mask;
419 	unsigned int  fw_type;
420 	unsigned long simg_name;
421 	unsigned long appmeta_data;
422 };
423 
424 struct icp_qat_suof_img_tbl {
425 	unsigned int num_simgs;
426 	struct icp_qat_suof_img_hdr *simg_hdr;
427 };
428 
429 struct icp_qat_suof_handle {
430 	unsigned int  file_id;
431 	unsigned int  check_sum;
432 	char          min_ver;
433 	char          maj_ver;
434 	char          fw_type;
435 	char          *suof_buf;
436 	unsigned int  suof_size;
437 	char          *sym_str;
438 	unsigned int  sym_size;
439 	struct icp_qat_suof_img_tbl img_table;
440 };
441 
442 struct icp_qat_fw_auth_desc {
443 	unsigned int   img_len;
444 	unsigned int   ae_mask;
445 	unsigned int   css_hdr_high;
446 	unsigned int   css_hdr_low;
447 	unsigned int   img_high;
448 	unsigned int   img_low;
449 	unsigned int   signature_high;
450 	unsigned int   signature_low;
451 	unsigned int   fwsk_pub_high;
452 	unsigned int   fwsk_pub_low;
453 	unsigned int   img_ae_mode_data_high;
454 	unsigned int   img_ae_mode_data_low;
455 	unsigned int   img_ae_init_data_high;
456 	unsigned int   img_ae_init_data_low;
457 	unsigned int   img_ae_insts_high;
458 	unsigned int   img_ae_insts_low;
459 	unsigned int   cpp_mask;
460 	unsigned int   reserved;
461 	unsigned int   xmss_pubkey_high;
462 	unsigned int   xmss_pubkey_low;
463 	unsigned int   xmss_sig_high;
464 	unsigned int   xmss_sig_low;
465 	unsigned int   reserved2[2];
466 };
467 
468 struct icp_qat_auth_chunk {
469 	struct icp_qat_fw_auth_desc fw_auth_desc;
470 	u64 chunk_size;
471 	u64 chunk_bus_addr;
472 };
473 
474 struct icp_qat_css_hdr {
475 	unsigned int module_type;
476 	unsigned int header_len;
477 	unsigned int header_ver;
478 	unsigned int module_id;
479 	unsigned int module_vendor;
480 	unsigned int date;
481 	unsigned int size;
482 	unsigned int key_size;
483 	unsigned int module_size;
484 	unsigned int exponent_size;
485 	unsigned int fw_type;
486 	unsigned int reserved[21];
487 };
488 
489 struct icp_qat_simg_ae_mode {
490 	unsigned int     file_id;
491 	unsigned short   maj_ver;
492 	unsigned short   min_ver;
493 	unsigned int     dev_type;
494 	unsigned short   devmax_ver;
495 	unsigned short   devmin_ver;
496 	unsigned int     ae_mask;
497 	unsigned int     ctx_enables;
498 	char             fw_type;
499 	char             ctx_mode;
500 	char             nn_mode;
501 	char             lm0_mode;
502 	char             lm1_mode;
503 	char             scs_mode;
504 	char             lm2_mode;
505 	char             lm3_mode;
506 	char             tindex_mode;
507 	unsigned char    reserved[7];
508 	char             simg_name[256];
509 	char             appmeta_data[256];
510 };
511 
512 struct icp_qat_suof_filehdr {
513 	unsigned int     file_id;
514 	unsigned int     check_sum;
515 	char             min_ver;
516 	char             maj_ver;
517 	char             fw_type;
518 	char             reserved;
519 	unsigned short   max_chunks;
520 	unsigned short   num_chunks;
521 };
522 
523 struct icp_qat_suof_chunk_hdr {
524 	char chunk_id[ICP_QAT_SUOF_OBJ_ID_LEN];
525 	u64 offset;
526 	u64 size;
527 };
528 
529 struct icp_qat_suof_strtable {
530 	unsigned int tab_length;
531 	unsigned int strings;
532 };
533 
534 struct icp_qat_suof_objhdr {
535 	unsigned int img_length;
536 	unsigned int reserved;
537 };
538 
539 struct icp_qat_mof_file_hdr {
540 	unsigned int file_id;
541 	unsigned int checksum;
542 	char min_ver;
543 	char maj_ver;
544 	unsigned short reserved;
545 	unsigned short max_chunks;
546 	unsigned short num_chunks;
547 };
548 
549 struct icp_qat_mof_chunkhdr {
550 	char chunk_id[ICP_QAT_MOF_OBJ_ID_LEN];
551 	u64 offset;
552 	u64 size;
553 };
554 
555 struct icp_qat_mof_str_table {
556 	unsigned int tab_len;
557 	unsigned int strings;
558 };
559 
560 struct icp_qat_mof_obj_hdr {
561 	unsigned short max_chunks;
562 	unsigned short num_chunks;
563 	unsigned int reserved;
564 };
565 
566 struct icp_qat_mof_obj_chunkhdr {
567 	char chunk_id[ICP_QAT_MOF_OBJ_CHUNKID_LEN];
568 	u64 offset;
569 	u64 size;
570 	unsigned int name;
571 	unsigned int reserved;
572 };
573 
574 struct icp_qat_mof_objhdr {
575 	char *obj_name;
576 	char *obj_buf;
577 	unsigned int obj_size;
578 };
579 
580 struct icp_qat_mof_table {
581 	unsigned int num_objs;
582 	struct icp_qat_mof_objhdr *obj_hdr;
583 };
584 
585 struct icp_qat_mof_handle {
586 	unsigned int file_id;
587 	unsigned int checksum;
588 	char min_ver;
589 	char maj_ver;
590 	char *mof_buf;
591 	u32 mof_size;
592 	char *sym_str;
593 	unsigned int sym_size;
594 	char *uobjs_hdr;
595 	char *sobjs_hdr;
596 	struct icp_qat_mof_table obj_table;
597 };
598 #endif
599