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