1 /* SPDX-License-Identifier: BSD-3-Clause */ 2 /* Copyright(c) 2007-2022 Intel Corporation */ 3 /** 4 ***************************************************************************** 5 * @file icp_qat_fw_comp.h 6 * @defgroup icp_qat_fw_comp ICP QAT FW Compression Service 7 * Interface Definitions 8 * @ingroup icp_qat_fw 9 * @description 10 * This file documents structs used to provide the interface to the 11 * Compression QAT FW service 12 * 13 *****************************************************************************/ 14 15 #ifndef _ICP_QAT_FW_COMP_H_ 16 #define _ICP_QAT_FW_COMP_H_ 17 18 /* 19 ****************************************************************************** 20 * Include local header files 21 ****************************************************************************** 22 */ 23 #include "icp_qat_fw.h" 24 25 /** 26 ***************************************************************************** 27 * @ingroup icp_qat_fw_comp 28 * Definition of the Compression command types 29 * @description 30 * Enumeration which is used to indicate the ids of functions 31 * that are exposed by the Compression QAT FW service 32 * 33 *****************************************************************************/ 34 35 typedef enum { 36 ICP_QAT_FW_COMP_CMD_STATIC = 0, 37 /*!< Static Compress Request */ 38 39 ICP_QAT_FW_COMP_CMD_DYNAMIC = 1, 40 /*!< Dynamic Compress Request */ 41 42 ICP_QAT_FW_COMP_CMD_DECOMPRESS = 2, 43 /*!< Decompress Request */ 44 45 ICP_QAT_FW_COMP_CMD_DELIMITER 46 /**< Delimiter type */ 47 48 } icp_qat_fw_comp_cmd_id_t; 49 50 51 /* 52 * REQUEST FLAGS IN COMMON COMPRESSION 53 * In common message it is named as SERVICE SPECIFIC FLAGS. 54 * 55 * + ===== + ------ + ------ + --- + ----- + ----- + ----- + -- + ---- + --- + 56 * | Bit | 15 - 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 57 * + ===== + ------ + ----- + --- + ----- + ----- + ----- + -- + ---- + --- + 58 * | Flags | Rsvd | Dis. |Resvd| Dis. | Enh. |Auto |Sess| Rsvd | Rsvd| 59 * | | Bits | secure | =0 | Type0 | ASB |Select |Type| = 0 | = 0 | 60 * | | = 0 |RAM use | | Header | |Best | | | | 61 * | | |as intmd| | | | | | | | 62 * | | | buf | | | | | | | | 63 * + ===== + ------ + ----- + --- + ------ + ----- + ----- + -- + ---- + --- + 64 * Note: For QAT 2.0 Disable Secure Ram, DisType0 Header and Enhanced ASB bits 65 * are don't care. i.e., these features are removed from QAT 2.0. 66 */ 67 68 69 /**< Flag usage */ 70 71 #define ICP_QAT_FW_COMP_STATELESS_SESSION 0 72 /**< @ingroup icp_qat_fw_comp 73 * Flag representing that session is stateless */ 74 75 #define ICP_QAT_FW_COMP_STATEFUL_SESSION 1 76 /**< @ingroup icp_qat_fw_comp 77 * Flag representing that session is stateful */ 78 79 #define ICP_QAT_FW_COMP_NOT_AUTO_SELECT_BEST 0 80 /**< @ingroup icp_qat_fw_comp 81 * Flag representing that autoselectbest is NOT used */ 82 83 #define ICP_QAT_FW_COMP_AUTO_SELECT_BEST 1 84 /**< @ingroup icp_qat_fw_comp 85 * Flag representing that autoselectbest is used */ 86 87 #define ICP_QAT_FW_COMP_NOT_ENH_AUTO_SELECT_BEST 0 88 /**< @ingroup icp_qat_fw_comp 89 * Flag representing that enhanced autoselectbest is NOT used */ 90 91 #define ICP_QAT_FW_COMP_ENH_AUTO_SELECT_BEST 1 92 /**< @ingroup icp_qat_fw_comp 93 * Flag representing that enhanced autoselectbest is used */ 94 95 #define ICP_QAT_FW_COMP_NOT_DISABLE_TYPE0_ENH_AUTO_SELECT_BEST 0 96 /**< @ingroup icp_qat_fw_comp 97 * Flag representing that enhanced autoselectbest is NOT used */ 98 99 #define ICP_QAT_FW_COMP_DISABLE_TYPE0_ENH_AUTO_SELECT_BEST 1 100 /**< @ingroup icp_qat_fw_comp 101 * Flag representing that enhanced autoselectbest is used */ 102 103 #define ICP_QAT_FW_COMP_DISABLE_SECURE_RAM_USED_AS_INTMD_BUF 1 104 /**< @ingroup icp_qat_fw_comp 105 * Flag representing secure RAM from being used as 106 * an intermediate buffer is DISABLED. */ 107 108 #define ICP_QAT_FW_COMP_ENABLE_SECURE_RAM_USED_AS_INTMD_BUF 0 109 /**< @ingroup icp_qat_fw_comp 110 * Flag representing secure RAM from being used as 111 * an intermediate buffer is ENABLED. */ 112 113 /**< Flag mask & bit position */ 114 115 #define ICP_QAT_FW_COMP_SESSION_TYPE_BITPOS 2 116 /**< @ingroup icp_qat_fw_comp 117 * Starting bit position for the session type */ 118 119 #define ICP_QAT_FW_COMP_SESSION_TYPE_MASK 0x1 120 /**< @ingroup icp_qat_fw_comp 121 * One bit mask used to determine the session type */ 122 123 #define ICP_QAT_FW_COMP_AUTO_SELECT_BEST_BITPOS 3 124 /**< @ingroup icp_qat_fw_comp 125 * Starting bit position for auto select best */ 126 127 #define ICP_QAT_FW_COMP_AUTO_SELECT_BEST_MASK 0x1 128 /**< @ingroup icp_qat_fw_comp 129 * One bit mask for auto select best */ 130 131 #define ICP_QAT_FW_COMP_ENHANCED_AUTO_SELECT_BEST_BITPOS 4 132 /**< @ingroup icp_qat_fw_comp 133 * Starting bit position for enhanced auto select best */ 134 135 #define ICP_QAT_FW_COMP_ENHANCED_AUTO_SELECT_BEST_MASK 0x1 136 /**< @ingroup icp_qat_fw_comp 137 * One bit mask for enhanced auto select best */ 138 139 #define ICP_QAT_FW_COMP_RET_DISABLE_TYPE0_HEADER_DATA_BITPOS 5 140 /**< @ingroup icp_qat_fw_comp 141 * Starting bit position for disabling type zero header write back 142 when Enhanced autoselect best is enabled. If set firmware does 143 not return type0 store block header, only copies src to dest. 144 (if best output is Type0) */ 145 146 #define ICP_QAT_FW_COMP_RET_DISABLE_TYPE0_HEADER_DATA_MASK 0x1 147 /**< @ingroup icp_qat_fw_comp 148 * One bit mask for auto select best */ 149 150 #define ICP_QAT_FW_COMP_DISABLE_SECURE_RAM_AS_INTMD_BUF_BITPOS 7 151 /**< @ingroup icp_qat_fw_comp 152 * Starting bit position for flag used to disable secure ram from 153 being used as an intermediate buffer. */ 154 155 #define ICP_QAT_FW_COMP_DISABLE_SECURE_RAM_AS_INTMD_BUF_MASK 0x1 156 /**< @ingroup icp_qat_fw_comp 157 * One bit mask for disable secure ram for use as an intermediate 158 buffer. */ 159 160 /** 161 ****************************************************************************** 162 * @ingroup icp_qat_fw_comp 163 * 164 * @description 165 * Macro used for the generation of the command flags for Compression Request. 166 * This should always be used for the generation of the flags. No direct sets or 167 * masks should be performed on the flags data 168 * 169 * @param sesstype Session Type 170 * @param autoselect AutoSelectBest 171 * @enhanced_asb Enhanced AutoSelectBest 172 * @ret_uncomp RetUnCompressed 173 * @secure_ram Secure Ram usage 174 * 175 ******************************************************************************/ 176 #define ICP_QAT_FW_COMP_FLAGS_BUILD( \ 177 sesstype, autoselect, enhanced_asb, ret_uncomp, secure_ram) \ 178 (((sesstype & ICP_QAT_FW_COMP_SESSION_TYPE_MASK) \ 179 << ICP_QAT_FW_COMP_SESSION_TYPE_BITPOS) | \ 180 ((autoselect & ICP_QAT_FW_COMP_AUTO_SELECT_BEST_MASK) \ 181 << ICP_QAT_FW_COMP_AUTO_SELECT_BEST_BITPOS) | \ 182 ((enhanced_asb & ICP_QAT_FW_COMP_ENHANCED_AUTO_SELECT_BEST_MASK) \ 183 << ICP_QAT_FW_COMP_ENHANCED_AUTO_SELECT_BEST_BITPOS) | \ 184 ((ret_uncomp & ICP_QAT_FW_COMP_RET_DISABLE_TYPE0_HEADER_DATA_MASK) \ 185 << ICP_QAT_FW_COMP_RET_DISABLE_TYPE0_HEADER_DATA_BITPOS) | \ 186 ((secure_ram & ICP_QAT_FW_COMP_DISABLE_SECURE_RAM_AS_INTMD_BUF_MASK) \ 187 << ICP_QAT_FW_COMP_DISABLE_SECURE_RAM_AS_INTMD_BUF_BITPOS)) 188 189 /** 190 ****************************************************************************** 191 * @ingroup icp_qat_fw_comp 192 * 193 * @description 194 * Macro used for the generation of the command flags for Compression Request. 195 * This should always be used for the generation of the flags. No direct sets or 196 * masks should be performed on the flags data 197 * 198 * @param sesstype Session Type 199 * @param autoselect AutoSelectBest 200 * Selects between compressed and uncompressed output. 201 * No distinction made between static and dynamic 202 * compressed data. 203 * 204 *********************************************************************************/ 205 #define ICP_QAT_FW_COMP_20_FLAGS_BUILD(sesstype, autoselect) \ 206 (((sesstype & ICP_QAT_FW_COMP_SESSION_TYPE_MASK) \ 207 << ICP_QAT_FW_COMP_SESSION_TYPE_BITPOS) | \ 208 ((autoselect & ICP_QAT_FW_COMP_AUTO_SELECT_BEST_MASK) \ 209 << ICP_QAT_FW_COMP_AUTO_SELECT_BEST_BITPOS)) 210 211 /** 212 ****************************************************************************** 213 * @ingroup icp_qat_fw_comp 214 * 215 * @description 216 * Macro for extraction of the session type bit 217 * 218 * @param flags Flags to extract the session type bit from 219 * 220 *****************************************************************************/ 221 #define ICP_QAT_FW_COMP_SESSION_TYPE_GET(flags) \ 222 QAT_FIELD_GET(flags, \ 223 ICP_QAT_FW_COMP_SESSION_TYPE_BITPOS, \ 224 ICP_QAT_FW_COMP_SESSION_TYPE_MASK) 225 226 /** 227 ****************************************************************************** 228 * @ingroup icp_qat_fw_comp 229 * 230 * @description 231 * Macro for extraction of the autoSelectBest bit 232 * 233 * @param flags Flags to extract the autoSelectBest bit from 234 * 235 *****************************************************************************/ 236 #define ICP_QAT_FW_COMP_AUTO_SELECT_BEST_GET(flags) \ 237 QAT_FIELD_GET(flags, \ 238 ICP_QAT_FW_COMP_AUTO_SELECT_BEST_BITPOS, \ 239 ICP_QAT_FW_COMP_AUTO_SELECT_BEST_MASK) 240 241 /** 242 ****************************************************************************** 243 * @ingroup icp_qat_fw_comp 244 * 245 * @description 246 * Macro for extraction of the enhanced asb bit 247 * 248 * @param flags Flags to extract the enhanced asb bit from 249 * 250 *****************************************************************************/ 251 #define ICP_QAT_FW_COMP_EN_ASB_GET(flags) \ 252 QAT_FIELD_GET(flags, \ 253 ICP_QAT_FW_COMP_ENHANCED_AUTO_SELECT_BEST_BITPOS, \ 254 ICP_QAT_FW_COMP_ENHANCED_AUTO_SELECT_BEST_MASK) 255 256 /** 257 ****************************************************************************** 258 * @ingroup icp_qat_fw_comp 259 * 260 * @description 261 * Macro for extraction of the RetUncomp bit 262 * 263 * @param flags Flags to extract the Ret Uncomp bit from 264 * 265 *****************************************************************************/ 266 #define ICP_QAT_FW_COMP_RET_UNCOMP_GET(flags) \ 267 QAT_FIELD_GET(flags, \ 268 ICP_QAT_FW_COMP_RET_DISABLE_TYPE0_HEADER_DATA_BITPOS, \ 269 ICP_QAT_FW_COMP_RET_DISABLE_TYPE0_HEADER_DATA_MASK) 270 271 /** 272 ****************************************************************************** 273 * @ingroup icp_qat_fw_comp 274 * 275 * @description 276 * Macro for extraction of the Secure Ram usage bit 277 * 278 * @param flags Flags to extract the Secure Ram usage from 279 * 280 *****************************************************************************/ 281 #define ICP_QAT_FW_COMP_SECURE_RAM_USE_GET(flags) \ 282 QAT_FIELD_GET(flags, \ 283 ICP_QAT_FW_COMP_DISABLE_SECURE_RAM_AS_INTMD_BUF_BITPOS, \ 284 ICP_QAT_FW_COMP_DISABLE_SECURE_RAM_AS_INTMD_BUF_MASK) 285 286 /** 287 ***************************************************************************** 288 * @ingroup icp_qat_fw_comp 289 * Definition of the compression header cd pars block 290 * @description 291 * Definition of the compression processing cd pars block. 292 * The structure is a service-specific implementation of the common 293 * structure. 294 *****************************************************************************/ 295 typedef union icp_qat_fw_comp_req_hdr_cd_pars_s { 296 /**< LWs 2-5 */ 297 struct { 298 uint64_t content_desc_addr; 299 /**< Address of the content descriptor */ 300 301 uint16_t content_desc_resrvd1; 302 /**< Content descriptor reserved field */ 303 304 uint8_t content_desc_params_sz; 305 /**< Size of the content descriptor parameters in quad words. 306 * These parameters describe the session setup configuration 307 * info for the slices that this request relies upon i.e. the 308 * configuration word and cipher key needed by the cipher slice 309 * if there is a request for cipher processing. */ 310 311 uint8_t content_desc_hdr_resrvd2; 312 /**< Content descriptor reserved field */ 313 314 uint32_t content_desc_resrvd3; 315 /**< Content descriptor reserved field */ 316 } s; 317 318 struct { 319 uint32_t comp_slice_cfg_word[ICP_QAT_FW_NUM_LONGWORDS_2]; 320 /* Compression Slice Config Word */ 321 322 uint32_t content_desc_resrvd4; 323 /**< Content descriptor reserved field */ 324 325 } sl; 326 327 } icp_qat_fw_comp_req_hdr_cd_pars_t; 328 329 /** 330 ***************************************************************************** 331 * @ingroup icp_qat_fw_comp 332 * Definition of the compression request parameters block 333 * @description 334 * Definition of the compression processing request parameters block. 335 * The structure below forms part of the Compression + Translation 336 * Parameters block spanning LWs 14-23, thus differing from the common 337 * base Parameters block structure. Unused fields must be set to 0. 338 * 339 *****************************************************************************/ 340 typedef struct icp_qat_fw_comp_req_params_s { 341 /**< LW 14 */ 342 uint32_t comp_len; 343 /**< Size of input to process in bytes Note: Only EOP requests can be 344 * odd for decompression. IA must set LSB to zero for odd sized 345 * intermediate inputs */ 346 347 /**< LW 15 */ 348 uint32_t out_buffer_sz; 349 /**< Size of output buffer in bytes */ 350 351 /**< LW 16 */ 352 union { 353 struct { 354 /** LW 16 */ 355 uint32_t initial_crc32; 356 /**< CRC for processed bytes (input byte count) */ 357 358 /** LW 17 */ 359 uint32_t initial_adler; 360 /**< Adler for processed bytes (input byte count) */ 361 } legacy; 362 363 /** LW 16-17 */ 364 uint64_t crc_data_addr; 365 /**< CRC data structure pointer */ 366 } crc; 367 368 /**< LW 18 */ 369 uint32_t req_par_flags; 370 371 /**< LW 19 */ 372 uint32_t rsrvd; 373 374 } icp_qat_fw_comp_req_params_t; 375 376 /** 377 ****************************************************************************** 378 * @ingroup icp_qat_fw_comp 379 * 380 * @description 381 * Macro used for the generation of the request parameter flags. 382 * This should always be used for the generation of the flags. No direct sets or 383 * masks should be performed on the flags data 384 * 385 * @param sop SOP Flag, 0 restore, 1 don't restore 386 * @param eop EOP Flag, 0 restore, 1 don't restore 387 * @param bfinal Set bfinal in this block or not 388 * @param cnv Whether internal CNV check is to be performed 389 * * ICP_QAT_FW_COMP_NO_CNV 390 * * ICP_QAT_FW_COMP_CNV 391 * @param cnvnr Whether internal CNV recovery is to be performed 392 * * ICP_QAT_FW_COMP_NO_CNV_RECOVERY 393 * * ICP_QAT_FW_COMP_CNV_RECOVERY 394 * @param cnvdfx Whether CNV error injection is to be performed 395 * * ICP_QAT_FW_COMP_NO_CNV_DFX 396 * * ICP_QAT_FW_COMP_CNV_DFX 397 * @param crc CRC Mode Flag - 0 legacy, 1 crc data struct 398 *****************************************************************************/ 399 #define ICP_QAT_FW_COMP_REQ_PARAM_FLAGS_BUILD( \ 400 sop, eop, bfinal, cnv, cnvnr, cnvdfx, crc) \ 401 (((sop & ICP_QAT_FW_COMP_SOP_MASK) << ICP_QAT_FW_COMP_SOP_BITPOS) | \ 402 ((eop & ICP_QAT_FW_COMP_EOP_MASK) << ICP_QAT_FW_COMP_EOP_BITPOS) | \ 403 ((bfinal & ICP_QAT_FW_COMP_BFINAL_MASK) \ 404 << ICP_QAT_FW_COMP_BFINAL_BITPOS) | \ 405 ((cnv & ICP_QAT_FW_COMP_CNV_MASK) << ICP_QAT_FW_COMP_CNV_BITPOS) | \ 406 ((cnvnr & ICP_QAT_FW_COMP_CNVNR_MASK) \ 407 << ICP_QAT_FW_COMP_CNVNR_BITPOS) | \ 408 ((cnvdfx & ICP_QAT_FW_COMP_CNV_DFX_MASK) \ 409 << ICP_QAT_FW_COMP_CNV_DFX_BITPOS) | \ 410 ((crc & ICP_QAT_FW_COMP_CRC_MODE_MASK) \ 411 << ICP_QAT_FW_COMP_CRC_MODE_BITPOS)) 412 413 414 /* 415 * REQUEST FLAGS IN REQUEST PARAMETERS COMPRESSION 416 * 417 * +=====+-----+----- + --- + --- +-----+ --- + ----- + --- + ---- + -- + -- + 418 * | Bit |31-24| 20 | 19 | 18 | 17 | 16 | 15-7 | 6 | 5-2 | 1 | 0 | 419 * +=====+-----+----- + --- + ----+-----+ --- + ----- + --- + ---- + -- + -- + 420 * |Flags|Resvd|xxHash| CRC | CNV |CNVNR| CNV | Resvd |BFin | Resvd|EOP |SOP | 421 * | |=0 |acc | MODE| DFX | | | =0 | | =0 | | | 422 * | | | | | | | | | | | | | 423 * +=====+-----+----- + --- + ----+-----+ --- + ----- + --- + ---- + -- + -- + 424 */ 425 426 427 /** 428 ***************************************************************************** 429 * @ingroup icp_qat_fw_comp 430 * Definition of the additional QAT2.0 Compression command types 431 * @description 432 * Enumeration which is used to indicate the ids of functions 433 * that are exposed by the Compression QAT FW service 434 * 435 *****************************************************************************/ 436 typedef enum { 437 ICP_QAT_FW_COMP_20_CMD_LZ4_COMPRESS = 3, 438 /*!< LZ4 Compress Request */ 439 440 ICP_QAT_FW_COMP_20_CMD_LZ4_DECOMPRESS = 4, 441 /*!< LZ4 Decompress Request */ 442 443 ICP_QAT_FW_COMP_20_CMD_LZ4S_COMPRESS = 5, 444 /*!< LZ4S Compress Request */ 445 446 ICP_QAT_FW_COMP_20_CMD_LZ4S_DECOMPRESS = 6, 447 /*!< LZ4S Decompress Request */ 448 449 ICP_QAT_FW_COMP_20_CMD_XP10_COMPRESS = 7, 450 /*!< XP10 Compress Request -- Placeholder */ 451 452 ICP_QAT_FW_COMP_20_CMD_XP10_DECOMPRESS = 8, 453 /*!< XP10 Decompress Request -- Placeholder */ 454 455 ICP_QAT_FW_COMP_20_CMD_DELIMITER 456 /**< Delimiter type */ 457 458 } icp_qat_fw_comp_20_cmd_id_t; 459 460 461 /* 462 * REQUEST FLAGS IN REQUEST PARAMETERS COMPRESSION 463 * 464 * + ===== + ----- + --- +-----+-------+ --- + ---------+ --- + ---- + --- + --- + 465 * | Bit | 31-20 | 19 | 18 | 17 | 16 | 15 - 7 | 6 | 5-2 | 1 | 0 | 466 * + ===== + ----- + --- +-----+-------+ --- + ---------+ --- | ---- + --- + --- + 467 * | Flags | Resvd | CRC | CNV | CNVNR | CNV |Resvd Bits|BFin |Resvd | EOP | SOP | 468 * | | =0 | Mode| DFX | | | =0 | | =0 | | | 469 * | | | | | | | | | | | | 470 * + ===== + ----- + --- +-----+-------+ --- + ---------+ --- | ---- + --- + --- + 471 */ 472 473 #define ICP_QAT_FW_COMP_NOT_SOP 0 474 /**< @ingroup icp_qat_fw_comp 475 * Flag representing that a request is NOT Start of Packet */ 476 477 #define ICP_QAT_FW_COMP_SOP 1 478 /**< @ingroup icp_qat_fw_comp 479 * * Flag representing that a request IS Start of Packet */ 480 481 #define ICP_QAT_FW_COMP_NOT_EOP 0 482 /**< @ingroup icp_qat_fw_comp 483 * Flag representing that a request is NOT Start of Packet */ 484 485 #define ICP_QAT_FW_COMP_EOP 1 486 /**< @ingroup icp_qat_fw_comp 487 * Flag representing that a request IS End of Packet */ 488 489 #define ICP_QAT_FW_COMP_NOT_BFINAL 0 490 /**< @ingroup icp_qat_fw_comp 491 * Flag representing to indicate firmware this is not the last block */ 492 493 #define ICP_QAT_FW_COMP_BFINAL 1 494 /**< @ingroup icp_qat_fw_comp 495 * Flag representing to indicate firmware this is the last block */ 496 497 #define ICP_QAT_FW_COMP_NO_CNV 0 498 /**< @ingroup icp_qat_fw_comp 499 * Flag indicating that NO cnv check is to be performed on the request */ 500 501 #define ICP_QAT_FW_COMP_CNV 1 502 /**< @ingroup icp_qat_fw_comp 503 * Flag indicating that a cnv check IS to be performed on the request */ 504 505 #define ICP_QAT_FW_COMP_NO_CNV_RECOVERY 0 506 /**< @ingroup icp_qat_fw_comp 507 * Flag indicating that NO cnv recovery is to be performed on the request */ 508 509 #define ICP_QAT_FW_COMP_CNV_RECOVERY 1 510 /**< @ingroup icp_qat_fw_comp 511 * Flag indicating that a cnv recovery is to be performed on the request */ 512 513 #define ICP_QAT_FW_COMP_NO_CNV_DFX 0 514 /**< @ingroup icp_qat_fw_comp 515 * Flag indicating that NO CNV inject error is to be performed on the request */ 516 517 #define ICP_QAT_FW_COMP_CNV_DFX 1 518 /**< @ingroup icp_qat_fw_comp 519 * Flag indicating that CNV inject error is to be performed on the request */ 520 521 #define ICP_QAT_FW_COMP_CRC_MODE_LEGACY 0 522 /**< @ingroup icp_qat_fw_comp 523 * Flag representing to use the legacy CRC mode */ 524 525 #define ICP_QAT_FW_COMP_CRC_MODE_E2E 1 526 /**< @ingroup icp_qat_fw_comp 527 * Flag representing to use the external CRC data struct */ 528 529 #define ICP_QAT_FW_COMP_NO_XXHASH_ACC 0 530 /**< @ingroup icp_qat_fw_comp 531 * * Flag indicating that xxHash will NOT be accumulated across requests */ 532 533 #define ICP_QAT_FW_COMP_XXHASH_ACC 1 534 /**< @ingroup icp_qat_fw_comp 535 * * Flag indicating that xxHash WILL be accumulated across requests */ 536 537 #define ICP_QAT_FW_COMP_PART_DECOMP 1 538 /**< @ingroup icp_qat_fw_comp 539 * * Flag indicating to perform partial de-compressing */ 540 541 #define ICP_QAT_FW_COMP_NO_PART_DECOMP 1 542 /**< @ingroup icp_qat_fw_comp 543 * * Flag indicating to not perform partial de-compressing */ 544 545 #define ICP_QAT_FW_COMP_ZEROPAD 1 546 /**< @ingroup icp_qat_fw_comp 547 * * Flag indicating to perform zero-padding in compression request */ 548 549 #define ICP_QAT_FW_COMP_NO_ZEROPAD 0 550 /**< @ingroup icp_qat_fw_comp 551 * * Flag indicating to not perform zero-padding in compression request */ 552 553 #define ICP_QAT_FW_COMP_SOP_BITPOS 0 554 /**< @ingroup icp_qat_fw_comp 555 * Starting bit position for SOP */ 556 557 #define ICP_QAT_FW_COMP_SOP_MASK 0x1 558 /**< @ingroup icp_qat_fw_comp 559 * One bit mask used to determine SOP */ 560 561 #define ICP_QAT_FW_COMP_EOP_BITPOS 1 562 /**< @ingroup icp_qat_fw_comp 563 * Starting bit position for EOP */ 564 565 #define ICP_QAT_FW_COMP_EOP_MASK 0x1 566 /**< @ingroup icp_qat_fw_comp 567 * One bit mask used to determine EOP */ 568 569 #define ICP_QAT_FW_COMP_BFINAL_MASK 0x1 570 /**< @ingroup icp_qat_fw_comp 571 * One bit mask for the bfinal bit */ 572 573 #define ICP_QAT_FW_COMP_BFINAL_BITPOS 6 574 /**< @ingroup icp_qat_fw_comp 575 * Starting bit position for the bfinal bit */ 576 577 #define ICP_QAT_FW_COMP_CNV_MASK 0x1 578 /**< @ingroup icp_qat_fw_comp 579 * One bit mask for the CNV bit */ 580 581 #define ICP_QAT_FW_COMP_CNV_BITPOS 16 582 /**< @ingroup icp_qat_fw_comp 583 * Starting bit position for the CNV bit */ 584 585 #define ICP_QAT_FW_COMP_CNVNR_MASK 0x1 586 /**< @ingroup icp_qat_fw_comp 587 * One bit mask for the CNV Recovery bit */ 588 589 #define ICP_QAT_FW_COMP_CNVNR_BITPOS 17 590 /**< @ingroup icp_qat_fw_comp 591 * Starting bit position for the CNV Recovery bit */ 592 593 #define ICP_QAT_FW_COMP_CNV_DFX_BITPOS 18 594 /**< @ingroup icp_qat_fw_comp 595 * Starting bit position for the CNV DFX bit */ 596 597 #define ICP_QAT_FW_COMP_CNV_DFX_MASK 0x1 598 /**< @ingroup icp_qat_fw_comp 599 * One bit mask for the CNV DFX bit */ 600 601 #define ICP_QAT_FW_COMP_CRC_MODE_BITPOS 19 602 /**< @ingroup icp_qat_fw_comp 603 * Starting bit position for CRC mode */ 604 605 #define ICP_QAT_FW_COMP_CRC_MODE_MASK 0x1 606 /**< @ingroup icp_qat_fw_comp 607 * One bit mask used to determine CRC mode */ 608 609 #define ICP_QAT_FW_COMP_XXHASH_ACC_MODE_BITPOS 20 610 /**< @ingroup icp_qat_fw_comp 611 * Starting bit position for xxHash accumulate mode */ 612 613 #define ICP_QAT_FW_COMP_XXHASH_ACC_MODE_MASK 0x1 614 /**< @ingroup icp_qat_fw_comp 615 * One bit mask used to determine xxHash accumulate mode */ 616 617 #define ICP_QAT_FW_COMP_PART_DECOMP_BITPOS 27 618 /**< @ingroup icp_qat_fw_comp 619 * Starting bit position for the partial de-compress bit */ 620 621 #define ICP_QAT_FW_COMP_PART_DECOMP_MASK 0x1 622 /**< @ingroup icp_qat_fw_comp 623 * Starting bit position for the partial de-compress mask */ 624 625 #define ICP_QAT_FW_COMP_ZEROPAD_BITPOS 26 626 /**< @ingroup icp_qat_fw_comp 627 * Starting bit position for the partial zero-pad bit */ 628 629 #define ICP_QAT_FW_COMP_ZEROPAD_MASK 0x1 630 /**< @ingroup icp_qat_fw_comp 631 * Starting bit position for the partial zero-pad mask */ 632 633 /** 634 ****************************************************************************** 635 * @ingroup icp_qat_fw_comp 636 * 637 * @description 638 * Macro for extraction of the SOP bit 639 * 640 * @param flags Flags to extract the SOP bit from 641 * 642 *****************************************************************************/ 643 #define ICP_QAT_FW_COMP_SOP_GET(flags) \ 644 QAT_FIELD_GET(flags, \ 645 ICP_QAT_FW_COMP_SOP_BITPOS, \ 646 ICP_QAT_FW_COMP_SOP_MASK) 647 648 /** 649 ****************************************************************************** 650 * @ingroup icp_qat_fw_comp 651 * 652 * @description 653 * Macro for extraction of the EOP bit 654 * 655 * @param flags Flags to extract the EOP bit from 656 * 657 *****************************************************************************/ 658 #define ICP_QAT_FW_COMP_EOP_GET(flags) \ 659 QAT_FIELD_GET(flags, \ 660 ICP_QAT_FW_COMP_EOP_BITPOS, \ 661 ICP_QAT_FW_COMP_EOP_MASK) 662 /** 663 664 665 ****************************************************************************** 666 * @ingroup icp_qat_fw_comp 667 * 668 * @description 669 * Macro for extraction of the bfinal bit 670 * 671 * @param flags Flags to extract the bfinal bit from 672 * 673 *****************************************************************************/ 674 #define ICP_QAT_FW_COMP_BFINAL_GET(flags) \ 675 QAT_FIELD_GET(flags, \ 676 ICP_QAT_FW_COMP_BFINAL_BITPOS, \ 677 ICP_QAT_FW_COMP_BFINAL_MASK) 678 679 /** 680 ****************************************************************************** 681 * @ingroup icp_qat_fw_comp 682 * 683 * @description 684 * Macro for extraction of the CNV bit 685 * 686 * @param flags Flag set containing the CNV flag 687 * 688 *****************************************************************************/ 689 #define ICP_QAT_FW_COMP_CNV_GET(flags) \ 690 QAT_FIELD_GET(flags, \ 691 ICP_QAT_FW_COMP_CNV_BITPOS, \ 692 ICP_QAT_FW_COMP_CNV_MASK) 693 694 /** 695 ****************************************************************************** 696 * @ingroup icp_qat_fw_comp 697 * 698 * @description 699 * Macro for extraction of the crc mode bit 700 * 701 * @param flags Flags to extract the crc mode bit from 702 * 703 ******************************************************************************/ 704 #define ICP_QAT_FW_COMP_CRC_MODE_GET(flags) \ 705 QAT_FIELD_GET(flags, \ 706 ICP_QAT_FW_COMP_CRC_MODE_BITPOS, \ 707 ICP_QAT_FW_COMP_CRC_MODE_MASK) 708 709 /** 710 ****************************************************************************** 711 * @ingroup icp_qat_fw_comp 712 * 713 * @description 714 * Macro for extraction of the xxHash accumulate mode bit 715 * 716 * @param flags Flags to extract the xxHash accumulate mode bit from 717 * 718 *****************************************************************************/ 719 #define ICP_QAT_FW_COMP_XXHASH_ACC_MODE_GET(flags) \ 720 QAT_FIELD_GET(flags, \ 721 ICP_QAT_FW_COMP_XXHASH_ACC_MODE_BITPOS, \ 722 ICP_QAT_FW_COMP_XXHASH_ACC_MODE_MASK) 723 724 /** 725 ****************************************************************************** 726 * @ingroup icp_qat_fw_comp 727 * 728 * @description 729 * Macro for setting of the xxHash accumulate mode bit 730 * 731 * @param flags Flags to set the xxHash accumulate mode bit to 732 * @param val xxHash accumulate mode to set 733 * 734 *****************************************************************************/ 735 #define ICP_QAT_FW_COMP_XXHASH_ACC_MODE_SET(flags, val) \ 736 QAT_FIELD_SET(flags, \ 737 val, \ 738 ICP_QAT_FW_COMP_XXHASH_ACC_MODE_BITPOS, \ 739 ICP_QAT_FW_COMP_XXHASH_ACC_MODE_MASK) 740 741 /** 742 ****************************************************************************** 743 * @ingroup icp_qat_fw_comp 744 * 745 * @description 746 * Macro for extraction of the partial de-compress on/off bit 747 * 748 * @param flags Flags to extract the partial de-compress on/off bit from 749 * 750 ******************************************************************************/ 751 #define ICP_QAT_FW_COMP_PART_DECOMP_GET(flags) \ 752 QAT_FIELD_GET(flags, \ 753 ICP_QAT_FW_COMP_PART_DECOMP_BITPOS, \ 754 ICP_QAT_FW_COMP_PART_DECOMP_MASK) 755 756 /** 757 ****************************************************************************** 758 * @ingroup icp_qat_fw_comp 759 * 760 * @description 761 * Macro for setting of the partial de-compress on/off bit 762 * 763 * @param flags Flags to set the partial de-compress on/off bit to 764 * @param val partial de-compress on/off bit 765 * 766 *****************************************************************************/ 767 #define ICP_QAT_FW_COMP_PART_DECOMP_SET(flags, val) \ 768 QAT_FIELD_SET(flags, \ 769 val, \ 770 ICP_QAT_FW_COMP_PART_DECOMP_BITPOS, \ 771 ICP_QAT_FW_COMP_PART_DECOMP_MASK) 772 773 /** 774 ****************************************************************************** 775 * @ingroup icp_qat_fw_comp 776 * 777 * @description 778 * Macro for extraction of the zero padding on/off bit 779 * 780 * @param flags Flags to extract the zero padding on/off bit from 781 * 782 ******************************************************************************/ 783 #define ICP_QAT_FW_COMP_ZEROPAD_GET(flags) \ 784 QAT_FIELD_GET(flags, \ 785 ICP_QAT_FW_COMP_ZEROPAD_BITPOS, \ 786 ICP_QAT_FW_COMP_ZEROPAD_MASK) 787 788 /** 789 ****************************************************************************** 790 * @ingroup icp_qat_fw_comp 791 * 792 * @description 793 * Macro for setting of the zero-padding on/off bit 794 * 795 * @param flags Flags to set the zero-padding on/off bit to 796 * @param val zero-padding on/off bit 797 * 798 *****************************************************************************/ 799 #define ICP_QAT_FW_COMP_ZEROPAD_SET(flags, val) \ 800 QAT_FIELD_SET(flags, \ 801 val, \ 802 ICP_QAT_FW_COMP_ZEROPAD_BITPOS, \ 803 ICP_QAT_FW_COMP_ZEROPAD_MASK) 804 805 /** 806 ****************************************************************************** 807 * @ingroup icp_qat_fw_comp 808 * Definition of the translator request parameters block 809 * @description 810 * Definition of the translator processing request parameters block 811 * The structure below forms part of the Compression + Translation 812 * Parameters block spanning LWs 14-23, thus differing from the common 813 * base Parameters block structure. Unused fields must be set to 0. 814 * 815 *****************************************************************************/ 816 typedef struct icp_qat_fw_xlt_req_params_s { 817 /**< LWs 20-21 */ 818 uint64_t inter_buff_ptr; 819 /**< This field specifies the physical address of an intermediate 820 * buffer SGL array. The array contains a pair of 64-bit 821 * intermediate buffer pointers to SGL buffer descriptors, one pair 822 * per CPM. Please refer to the CPM1.6 Firmware Interface HLD 823 * specification for more details. */ 824 825 } icp_qat_fw_xlt_req_params_t; 826 827 /** 828 ***************************************************************************** 829 * @ingroup icp_qat_fw_comp 830 * Compression header of the content descriptor block 831 * @description 832 * Definition of the service-specific compression control block header 833 * structure. The compression parameters are defined per algorithm 834 * and are located in the icp_qat_hw.h file. This compression 835 * cd block spans LWs 24-29, forming part of the compression + translation 836 * cd block, thus differing from the common base content descriptor 837 * structure. 838 * 839 *****************************************************************************/ 840 typedef struct icp_qat_fw_comp_cd_hdr_s { 841 /**< LW 24 */ 842 uint16_t ram_bank_flags; 843 /**< Flags to show which ram banks to access */ 844 845 uint8_t comp_cfg_offset; 846 /**< Quad word offset from the content descriptor parameters address to 847 * the parameters for the compression processing */ 848 849 uint8_t next_curr_id; 850 /**< This field combines the next and current id (each four bits) - 851 * the next id is the most significant nibble. 852 * Next Id: Set to the next slice to pass the compressed data through. 853 * Set to ICP_QAT_FW_SLICE_DRAM_WR if the data is not to go through 854 * anymore slices after compression 855 * Current Id: Initialised with the compression slice type */ 856 857 /**< LW 25 */ 858 uint32_t resrvd; 859 860 /**< LWs 26-27 */ 861 uint64_t comp_state_addr; 862 /**< Pointer to compression state */ 863 864 /**< LWs 28-29 */ 865 uint64_t ram_banks_addr; 866 /**< Pointer to banks */ 867 868 } icp_qat_fw_comp_cd_hdr_t; 869 870 #define COMP_CPR_INITIAL_CRC 0 871 #define COMP_CPR_INITIAL_ADLER 1 872 873 /** 874 ***************************************************************************** 875 * @ingroup icp_qat_fw_comp 876 * Translator content descriptor header block 877 * @description 878 * Definition of the structure used to describe the translation processing 879 * to perform on data. The translator parameters are defined per algorithm 880 * and are located in the icp_qat_hw.h file. This translation cd block 881 * spans LWs 30-31, forming part of the compression + translation cd block, 882 * thus differing from the common base content descriptor structure. 883 * 884 *****************************************************************************/ 885 typedef struct icp_qat_fw_xlt_cd_hdr_s { 886 /**< LW 30 */ 887 uint16_t resrvd1; 888 /**< Reserved field and assumed set to 0 */ 889 890 uint8_t resrvd2; 891 /**< Reserved field and assumed set to 0 */ 892 893 uint8_t next_curr_id; 894 /**< This field combines the next and current id (each four bits) - 895 * the next id is the most significant nibble. 896 * Next Id: Set to the next slice to pass the translated data through. 897 * Set to ICP_QAT_FW_SLICE_DRAM_WR if the data is not to go through 898 * any more slices after compression 899 * Current Id: Initialised with the translation slice type */ 900 901 /**< LW 31 */ 902 uint32_t resrvd3; 903 /**< Reserved and should be set to zero, needed for quadword alignment 904 */ 905 906 } icp_qat_fw_xlt_cd_hdr_t; 907 908 /** 909 ***************************************************************************** 910 * @ingroup icp_qat_fw_comp 911 * Definition of the common Compression QAT FW request 912 * @description 913 * This is a definition of the full request structure for 914 * compression and translation. 915 * 916 *****************************************************************************/ 917 typedef struct icp_qat_fw_comp_req_s { 918 /**< LWs 0-1 */ 919 icp_qat_fw_comn_req_hdr_t comn_hdr; 920 /**< Common request header - for Service Command Id, 921 * use service-specific Compression Command Id. 922 * Service Specific Flags - use Compression Command Flags */ 923 924 /**< LWs 2-5 */ 925 icp_qat_fw_comp_req_hdr_cd_pars_t cd_pars; 926 /**< Compression service-specific content descriptor field which points 927 * either to a content descriptor parameter block or contains the 928 * compression slice config word. */ 929 930 /**< LWs 6-13 */ 931 icp_qat_fw_comn_req_mid_t comn_mid; 932 /**< Common request middle section */ 933 934 /**< LWs 14-19 */ 935 icp_qat_fw_comp_req_params_t comp_pars; 936 /**< Compression request Parameters block */ 937 938 /**< LWs 20-21 */ 939 union { 940 icp_qat_fw_xlt_req_params_t xlt_pars; 941 /**< Translation request Parameters block */ 942 943 uint32_t resrvd1[ICP_QAT_FW_NUM_LONGWORDS_2]; 944 /**< Reserved if not used for translation */ 945 946 struct { 947 uint32_t partial_decompress_length; 948 /**< LW 20 \n Length of the decompressed data to return 949 */ 950 951 uint32_t partial_decompress_offset; 952 /**< LW 21 \n Offset of the decompressed data at which 953 * to return */ 954 955 } partial_decompress; 956 957 } u1; 958 959 /**< LWs 22-23 */ 960 union { 961 uint32_t resrvd2[ICP_QAT_FW_NUM_LONGWORDS_2]; 962 /**< Reserved - not used if Batch and Pack is disabled.*/ 963 964 uint64_t resrvd3; 965 /**< Reserved - not used if Batch and Pack is disabled.*/ 966 } u3; 967 968 /**< LWs 24-29 */ 969 icp_qat_fw_comp_cd_hdr_t comp_cd_ctrl; 970 /**< Compression request content descriptor control 971 * block header */ 972 973 /**< LWs 30-31 */ 974 union { 975 icp_qat_fw_xlt_cd_hdr_t xlt_cd_ctrl; 976 /**< Translation request content descriptor 977 * control block header */ 978 979 uint32_t resrvd3[ICP_QAT_FW_NUM_LONGWORDS_2]; 980 /**< Reserved if not used for translation */ 981 982 } u2; 983 984 } icp_qat_fw_comp_req_t; 985 986 /** 987 ***************************************************************************** 988 * @ingroup icp_qat_fw_comp 989 * Definition of the compression QAT FW response descriptor parameters 990 * @description 991 * This part of the response is specific to the compression response. 992 * 993 *****************************************************************************/ 994 typedef struct icp_qat_fw_resp_comp_pars_s { 995 /**< LW 4 */ 996 uint32_t input_byte_counter; 997 /**< Input byte counter */ 998 999 /**< LW 5 */ 1000 uint32_t output_byte_counter; 1001 /**< Output byte counter */ 1002 1003 /** LW 6-7 */ 1004 union { 1005 struct { 1006 /** LW 6 */ 1007 uint32_t curr_crc32; 1008 /**< Current CRC32 */ 1009 1010 /** LW 7 */ 1011 uint32_t curr_adler_32; 1012 /**< Current Adler32 */ 1013 } legacy; 1014 1015 uint32_t resrvd[ICP_QAT_FW_NUM_LONGWORDS_2]; 1016 /**< Reserved if not in legacy mode */ 1017 } crc; 1018 1019 } icp_qat_fw_resp_comp_pars_t; 1020 1021 /** 1022 ***************************************************************************** 1023 * @ingroup icp_qat_fw_comp 1024 * Definition of the Compression Eagle Tail Response 1025 * @description 1026 * This is the response delivered to the ET rings by the Compression 1027 * QAT FW service for all commands 1028 * 1029 *****************************************************************************/ 1030 typedef struct icp_qat_fw_comp_resp_s { 1031 /**< LWs 0-1 */ 1032 icp_qat_fw_comn_resp_hdr_t comn_resp; 1033 /**< Common interface response format see icp_qat_fw.h */ 1034 1035 /**< LWs 2-3 */ 1036 uint64_t opaque_data; 1037 /**< Opaque data passed from the request to the response message */ 1038 1039 /**< LWs 4-7 */ 1040 icp_qat_fw_resp_comp_pars_t comp_resp_pars; 1041 /**< Common response params (checksums and byte counts) */ 1042 1043 } icp_qat_fw_comp_resp_t; 1044 1045 /* RAM Bank defines */ 1046 #define QAT_FW_COMP_BANK_FLAG_MASK 0x1 1047 1048 #define QAT_FW_COMP_BANK_I_BITPOS 8 1049 #define QAT_FW_COMP_BANK_H_BITPOS 7 1050 #define QAT_FW_COMP_BANK_G_BITPOS 6 1051 #define QAT_FW_COMP_BANK_F_BITPOS 5 1052 #define QAT_FW_COMP_BANK_E_BITPOS 4 1053 #define QAT_FW_COMP_BANK_D_BITPOS 3 1054 #define QAT_FW_COMP_BANK_C_BITPOS 2 1055 #define QAT_FW_COMP_BANK_B_BITPOS 1 1056 #define QAT_FW_COMP_BANK_A_BITPOS 0 1057 1058 /** 1059 ***************************************************************************** 1060 * @ingroup icp_qat_fw_comp 1061 * Definition of the ram bank enabled values 1062 * @description 1063 * Enumeration used to define whether a ram bank is enabled or not 1064 * 1065 *****************************************************************************/ 1066 typedef enum { 1067 ICP_QAT_FW_COMP_BANK_DISABLED = 0, /*!< BANK DISABLED */ 1068 ICP_QAT_FW_COMP_BANK_ENABLED = 1, /*!< BANK ENABLED */ 1069 ICP_QAT_FW_COMP_BANK_DELIMITER = 2 /**< Delimiter type */ 1070 1071 } icp_qat_fw_comp_bank_enabled_t; 1072 1073 /** 1074 ****************************************************************************** 1075 * @ingroup icp_qat_fw_comp 1076 * 1077 * @description 1078 * Build the ram bank flags in the compression content descriptor 1079 * which specify which banks are used to save history 1080 * 1081 * @param bank_i_enable 1082 * @param bank_h_enable 1083 * @param bank_g_enable 1084 * @param bank_f_enable 1085 * @param bank_e_enable 1086 * @param bank_d_enable 1087 * @param bank_c_enable 1088 * @param bank_b_enable 1089 * @param bank_a_enable 1090 *****************************************************************************/ 1091 #define ICP_QAT_FW_COMP_RAM_FLAGS_BUILD(bank_i_enable, \ 1092 bank_h_enable, \ 1093 bank_g_enable, \ 1094 bank_f_enable, \ 1095 bank_e_enable, \ 1096 bank_d_enable, \ 1097 bank_c_enable, \ 1098 bank_b_enable, \ 1099 bank_a_enable) \ 1100 ((((bank_i_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1101 << QAT_FW_COMP_BANK_I_BITPOS) | \ 1102 (((bank_h_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1103 << QAT_FW_COMP_BANK_H_BITPOS) | \ 1104 (((bank_g_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1105 << QAT_FW_COMP_BANK_G_BITPOS) | \ 1106 (((bank_f_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1107 << QAT_FW_COMP_BANK_F_BITPOS) | \ 1108 (((bank_e_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1109 << QAT_FW_COMP_BANK_E_BITPOS) | \ 1110 (((bank_d_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1111 << QAT_FW_COMP_BANK_D_BITPOS) | \ 1112 (((bank_c_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1113 << QAT_FW_COMP_BANK_C_BITPOS) | \ 1114 (((bank_b_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1115 << QAT_FW_COMP_BANK_B_BITPOS) | \ 1116 (((bank_a_enable)&QAT_FW_COMP_BANK_FLAG_MASK) \ 1117 << QAT_FW_COMP_BANK_A_BITPOS)) 1118 1119 /** 1120 ***************************************************************************** 1121 * @ingroup icp_qat_fw_comp 1122 * Definition of the xxhash32 acc state buffer 1123 * @description 1124 * This is data structure used in stateful lite for xxhash32 1125 * 1126 *****************************************************************************/ 1127 typedef struct xxhash_acc_state_buff_s { 1128 /**< LW 0 */ 1129 uint32_t in_counter; 1130 /**< Accumulated (total) consumed bytes. As oppose to the per request 1131 * IBC in the response.*/ 1132 1133 /**< LW 1 */ 1134 uint32_t out_counter; 1135 /**< OBC as in the response.*/ 1136 1137 /**< LW 2-5 */ 1138 uint32_t xxhash_state[4]; 1139 /**< Initial value is set by IA to the values stated in HAS.*/ 1140 1141 /**< LW 6-9 */ 1142 uint32_t clear_txt[4]; 1143 /**< Set to 0 for the first request.*/ 1144 } xxhash_acc_state_buff_t; 1145 1146 #endif /* _ICP_QAT_FW_COMP_H_ */ 1147