File Index
Files and directories
Sign in
FILE

icp_qat_fw_init_admin.h

File preview with syntax highlighting.

linux-6.19.14/drivers/crypto/intel/qat/qat_common/icp_qat_fw_init_admin.h C
  1/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */
  2/* Copyright(c) 2014 - 2020 Intel Corporation */
  3#ifndef _ICP_QAT_FW_INIT_ADMIN_H_
  4#define _ICP_QAT_FW_INIT_ADMIN_H_
  5
  6#include "icp_qat_fw.h"
  7
  8#define RL_MAX_RP_IDS 16
  9
 10enum icp_qat_fw_init_admin_cmd_id {
 11	ICP_QAT_FW_INIT_AE = 0,
 12	ICP_QAT_FW_TRNG_ENABLE = 1,
 13	ICP_QAT_FW_TRNG_DISABLE = 2,
 14	ICP_QAT_FW_CONSTANTS_CFG = 3,
 15	ICP_QAT_FW_STATUS_GET = 4,
 16	ICP_QAT_FW_COUNTERS_GET = 5,
 17	ICP_QAT_FW_LOOPBACK = 6,
 18	ICP_QAT_FW_HEARTBEAT_SYNC = 7,
 19	ICP_QAT_FW_HEARTBEAT_GET = 8,
 20	ICP_QAT_FW_COMP_CAPABILITY_GET = 9,
 21	ICP_QAT_FW_CRYPTO_CAPABILITY_GET = 10,
 22	ICP_QAT_FW_DC_CHAIN_INIT = 11,
 23	ICP_QAT_FW_HEARTBEAT_TIMER_SET = 13,
 24	ICP_QAT_FW_RL_INIT = 15,
 25	ICP_QAT_FW_TIMER_GET = 19,
 26	ICP_QAT_FW_CNV_STATS_GET = 20,
 27	ICP_QAT_FW_PM_STATE_CONFIG = 128,
 28	ICP_QAT_FW_PM_INFO = 129,
 29	ICP_QAT_FW_RL_ADD = 134,
 30	ICP_QAT_FW_RL_UPDATE = 135,
 31	ICP_QAT_FW_RL_REMOVE = 136,
 32	ICP_QAT_FW_TL_START = 137,
 33	ICP_QAT_FW_TL_STOP = 138,
 34};
 35
 36enum icp_qat_fw_init_admin_resp_status {
 37	ICP_QAT_FW_INIT_RESP_STATUS_SUCCESS = 0,
 38	ICP_QAT_FW_INIT_RESP_STATUS_FAIL
 39};
 40
 41struct icp_qat_fw_init_admin_tl_rp_indexes {
 42	__u8 rp_num_index_0;
 43	__u8 rp_num_index_1;
 44	__u8 rp_num_index_2;
 45	__u8 rp_num_index_3;
 46};
 47
 48struct icp_qat_fw_init_admin_slice_cnt {
 49	__u8 cpr_cnt;
 50	__u8 xlt_cnt;
 51	__u8 dcpr_cnt;
 52	__u8 pke_cnt;
 53	__u8 wat_cnt;
 54	__u8 wcp_cnt;
 55	__u8 ucs_cnt;
 56	__u8 cph_cnt;
 57	__u8 ath_cnt;
 58};
 59
 60struct icp_qat_fw_init_admin_sla_config_params {
 61	__u32 pcie_in_cir;
 62	__u32 pcie_in_pir;
 63	__u32 pcie_out_cir;
 64	__u32 pcie_out_pir;
 65	__u32 slice_util_cir;
 66	__u32 slice_util_pir;
 67	__u32 ae_util_cir;
 68	__u32 ae_util_pir;
 69	__u16 rp_ids[RL_MAX_RP_IDS];
 70};
 71
 72struct icp_qat_fw_init_admin_req {
 73	__u16 init_cfg_sz;
 74	__u8 resrvd1;
 75	__u8 cmd_id;
 76	__u32 resrvd2;
 77	__u64 opaque_data;
 78	__u64 init_cfg_ptr;
 79
 80	union {
 81		struct {
 82			__u16 ibuf_size_in_kb;
 83			__u16 resrvd3;
 84		};
 85		struct {
 86			__u32 int_timer_ticks;
 87		};
 88		struct {
 89			__u32 heartbeat_ticks;
 90		};
 91		struct {
 92			__u16 node_id;
 93			__u8 node_type;
 94			__u8 svc_type;
 95			__u8 resrvd5[3];
 96			__u8 rp_count;
 97		};
 98		__u32 idle_filter;
 99		struct icp_qat_fw_init_admin_tl_rp_indexes rp_indexes;
100	};
101
102	__u32 resrvd4;
103} __packed;
104
105struct icp_qat_fw_init_admin_resp {
106	__u8 flags;
107	__u8 resrvd1;
108	__u8 status;
109	__u8 cmd_id;
110	union {
111		__u32 resrvd2;
112		struct {
113			__u16 version_minor_num;
114			__u16 version_major_num;
115		};
116		__u32 extended_features;
117		struct {
118			__u16 error_count;
119			__u16 latest_error;
120		};
121	};
122	__u64 opaque_data;
123	union {
124		__u32 resrvd3[ICP_QAT_FW_NUM_LONGWORDS_4];
125		struct {
126			__u32 version_patch_num;
127			__u8 context_id;
128			__u8 ae_id;
129			__u16 resrvd4;
130			__u64 resrvd5;
131		};
132		struct {
133			__u64 req_rec_count;
134			__u64 resp_sent_count;
135		};
136		struct {
137			__u16 compression_algos;
138			__u16 checksum_algos;
139			__u32 deflate_capabilities;
140			__u32 resrvd6;
141			__u32 lzs_capabilities;
142		};
143		struct {
144			__u32 cipher_algos;
145			__u32 hash_algos;
146			__u16 keygen_algos;
147			__u16 other;
148			__u16 public_key_algos;
149			__u16 prime_algos;
150		};
151		struct {
152			__u64 timestamp;
153			__u64 resrvd7;
154		};
155		struct {
156			__u32 successful_count;
157			__u32 unsuccessful_count;
158			__u64 resrvd8;
159		};
160		struct icp_qat_fw_init_admin_slice_cnt slices;
161		__u16 fw_capabilities;
162	};
163} __packed;
164
165#define ICP_QAT_FW_SYNC ICP_QAT_FW_HEARTBEAT_SYNC
166#define ICP_QAT_FW_CAPABILITIES_GET ICP_QAT_FW_CRYPTO_CAPABILITY_GET
167
168#define ICP_QAT_NUMBER_OF_PM_EVENTS 8
169
170struct icp_qat_fw_init_admin_pm_info {
171	__u16 max_pwrreq;
172	__u16 min_pwrreq;
173	__u16 resvrd1;
174	__u8 pwr_state;
175	__u8 resvrd2;
176	__u32 fusectl0;
177	struct_group(event_counters,
178		__u32 sys_pm;
179		__u32 host_msg;
180		__u32 unknown;
181		__u32 local_ssm;
182		__u32 timer;
183	);
184	__u32 event_log[ICP_QAT_NUMBER_OF_PM_EVENTS];
185	struct_group(pm,
186		__u32 fw_init;
187		__u32 pwrreq;
188		__u32 status;
189		__u32 main;
190		__u32 thread;
191	);
192	struct_group(ssm,
193		__u32 pm_enable;
194		__u32 pm_active_status;
195		__u32 pm_managed_status;
196		__u32 pm_domain_status;
197		__u32 active_constraint;
198	);
199	__u32 resvrd3[6];
200};
201
202#endif
~/ Read-only file preview.