xref: /freebsd/sys/dev/qat/include/adf_cfg_device.h (revision 71625ec9ad2a9bc8c09784fbd23b759830e0ee5f)
178ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */
278ee8d1cSJulian Grajkowski /* Copyright(c) 2007-2022 Intel Corporation */
378ee8d1cSJulian Grajkowski #ifndef ADF_CFG_DEVICE_H_
478ee8d1cSJulian Grajkowski #define ADF_CFG_DEVICE_H_
578ee8d1cSJulian Grajkowski 
678ee8d1cSJulian Grajkowski #include "adf_cfg.h"
778ee8d1cSJulian Grajkowski #include "sal_statistics_strings.h"
878ee8d1cSJulian Grajkowski 
978ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_VER 2
1078ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_CY_ASYM_RING_SIZE 64
1178ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_CY_SYM_RING_SIZE 512
1278ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_DC_INTER_BUF_SIZE 64
1378ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_ENABLED 1
1478ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DC 1
15*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DH 1
16*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DRBG 1
17*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DSA 1
18*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_ECC 1
19*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_KEYGEN 1
20*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_LN 1
21*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_PRIME 1
22*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_RSA 1
2378ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_SYM 1
2478ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_POLL 1
2578ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_IRQ 0
2678ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_AUTO_RESET 0
2778ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_NUM_DC_ACCEL_UNITS 2
2878ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_NUM_INLINE_ACCEL_UNITS 0
2978ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_INST_NUM_DC 2
30a977168cSMichal Gulbicki #define ADF_CFG_STATIC_CONF_INST_NUM_CY_POLL 6
3178ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_INST_NUM_CY_IRQ 2
32*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_USER_PROCESSES_NUM 2
33*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_USER_INST_NUM_CY 6
34*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_USER_INST_NUM_DC 2
35*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_INST_NUM_CY_POLL_VF 1
36*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_INST_NUM_CY_IRQ_VF 1
37*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_INST_NUM_DC_VF 2
38*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_USER_INST_NUM_CY_VF 2
39*266b0663SKrzysztof Zdziarski #define ADF_CFG_STATIC_CONF_USER_INST_NUM_DC_VF 2
4078ee8d1cSJulian Grajkowski 
4178ee8d1cSJulian Grajkowski #define ADF_CFG_FW_STRING_TO_ID(str, acc, id)                                  \
4278ee8d1cSJulian Grajkowski 	do {                                                                   \
4378ee8d1cSJulian Grajkowski 		typeof(id) id_ = (id);                                         \
4478ee8d1cSJulian Grajkowski 		typeof(str) str_;                                              \
4578ee8d1cSJulian Grajkowski 		memcpy(str_, (str), sizeof(str_));                             \
4678ee8d1cSJulian Grajkowski 		if (!strncmp(str_,                                             \
4778ee8d1cSJulian Grajkowski 			     ADF_SERVICES_DEFAULT,                             \
4878ee8d1cSJulian Grajkowski 			     sizeof(ADF_SERVICES_DEFAULT)))                    \
4978ee8d1cSJulian Grajkowski 			*id_ = ADF_FW_IMAGE_DEFAULT;                           \
5078ee8d1cSJulian Grajkowski 		else if (!strncmp(str_,                                        \
5178ee8d1cSJulian Grajkowski 				  ADF_SERVICES_CRYPTO,                         \
5278ee8d1cSJulian Grajkowski 				  sizeof(ADF_SERVICES_CRYPTO)))                \
5378ee8d1cSJulian Grajkowski 			*id_ = ADF_FW_IMAGE_CRYPTO;                            \
5478ee8d1cSJulian Grajkowski 		else if (!strncmp(str_,                                        \
5578ee8d1cSJulian Grajkowski 				  ADF_SERVICES_COMPRESSION,                    \
5678ee8d1cSJulian Grajkowski 				  sizeof(ADF_SERVICES_COMPRESSION)))           \
5778ee8d1cSJulian Grajkowski 			*id_ = ADF_FW_IMAGE_COMPRESSION;                       \
5878ee8d1cSJulian Grajkowski 		else if (!strncmp(str_,                                        \
5978ee8d1cSJulian Grajkowski 				  ADF_SERVICES_CUSTOM1,                        \
6078ee8d1cSJulian Grajkowski 				  sizeof(ADF_SERVICES_CUSTOM1)))               \
6178ee8d1cSJulian Grajkowski 			*id_ = ADF_FW_IMAGE_CUSTOM1;                           \
6278ee8d1cSJulian Grajkowski 		else {                                                         \
6378ee8d1cSJulian Grajkowski 			*id_ = ADF_FW_IMAGE_DEFAULT;                           \
6478ee8d1cSJulian Grajkowski 			device_printf(GET_DEV(acc),                            \
6578ee8d1cSJulian Grajkowski 				      "Invalid SerivesProfile: %s,"            \
6678ee8d1cSJulian Grajkowski 				      "Using DEFAULT image\n",                 \
6778ee8d1cSJulian Grajkowski 				      str_);                                   \
6878ee8d1cSJulian Grajkowski 		}                                                              \
6978ee8d1cSJulian Grajkowski 	} while (0)
7078ee8d1cSJulian Grajkowski 
7178ee8d1cSJulian Grajkowski int adf_cfg_get_ring_pairs(struct adf_cfg_device *device,
7278ee8d1cSJulian Grajkowski 			   struct adf_cfg_instance *inst,
7378ee8d1cSJulian Grajkowski 			   const char *process_name,
7478ee8d1cSJulian Grajkowski 			   struct adf_accel_dev *accel_dev);
7578ee8d1cSJulian Grajkowski 
7678ee8d1cSJulian Grajkowski int adf_cfg_device_init(struct adf_cfg_device *device,
7778ee8d1cSJulian Grajkowski 			struct adf_accel_dev *accel_dev);
7878ee8d1cSJulian Grajkowski 
7978ee8d1cSJulian Grajkowski void adf_cfg_device_clear(struct adf_cfg_device *device,
8078ee8d1cSJulian Grajkowski 			  struct adf_accel_dev *accel_dev);
8178ee8d1cSJulian Grajkowski 
8278ee8d1cSJulian Grajkowski #endif
83