178ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */ 278ee8d1cSJulian Grajkowski /* Copyright(c) 2007-2022 Intel Corporation */ 378ee8d1cSJulian Grajkowski /* $FreeBSD$ */ 478ee8d1cSJulian Grajkowski #ifndef ADF_CFG_DEVICE_H_ 578ee8d1cSJulian Grajkowski #define ADF_CFG_DEVICE_H_ 678ee8d1cSJulian Grajkowski 778ee8d1cSJulian Grajkowski #include "adf_cfg.h" 878ee8d1cSJulian Grajkowski #include "sal_statistics_strings.h" 978ee8d1cSJulian Grajkowski 1078ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_VER 2 1178ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_CY_ASYM_RING_SIZE 64 1278ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_CY_SYM_RING_SIZE 512 1378ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_DC_INTER_BUF_SIZE 64 1478ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_ENABLED 1 1578ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DC 1 1678ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DH 0 1778ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DRBG 0 1878ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_DSA 0 1978ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_ECC 0 2078ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_KEYGEN 0 2178ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_LN 0 2278ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_PRIME 0 2378ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_RSA 0 2478ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_SAL_STATS_CFG_SYM 1 2578ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_POLL 1 2678ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_IRQ 0 2778ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_AUTO_RESET 0 2878ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_NUM_DC_ACCEL_UNITS 2 2978ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_NUM_INLINE_ACCEL_UNITS 0 3078ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_INST_NUM_DC 2 31*a977168cSMichal Gulbicki #define ADF_CFG_STATIC_CONF_INST_NUM_CY_POLL 6 3278ee8d1cSJulian Grajkowski #define ADF_CFG_STATIC_CONF_INST_NUM_CY_IRQ 2 3378ee8d1cSJulian Grajkowski 3478ee8d1cSJulian Grajkowski #define ADF_CFG_FW_STRING_TO_ID(str, acc, id) \ 3578ee8d1cSJulian Grajkowski do { \ 3678ee8d1cSJulian Grajkowski typeof(id) id_ = (id); \ 3778ee8d1cSJulian Grajkowski typeof(str) str_; \ 3878ee8d1cSJulian Grajkowski memcpy(str_, (str), sizeof(str_)); \ 3978ee8d1cSJulian Grajkowski if (!strncmp(str_, \ 4078ee8d1cSJulian Grajkowski ADF_SERVICES_DEFAULT, \ 4178ee8d1cSJulian Grajkowski sizeof(ADF_SERVICES_DEFAULT))) \ 4278ee8d1cSJulian Grajkowski *id_ = ADF_FW_IMAGE_DEFAULT; \ 4378ee8d1cSJulian Grajkowski else if (!strncmp(str_, \ 4478ee8d1cSJulian Grajkowski ADF_SERVICES_CRYPTO, \ 4578ee8d1cSJulian Grajkowski sizeof(ADF_SERVICES_CRYPTO))) \ 4678ee8d1cSJulian Grajkowski *id_ = ADF_FW_IMAGE_CRYPTO; \ 4778ee8d1cSJulian Grajkowski else if (!strncmp(str_, \ 4878ee8d1cSJulian Grajkowski ADF_SERVICES_COMPRESSION, \ 4978ee8d1cSJulian Grajkowski sizeof(ADF_SERVICES_COMPRESSION))) \ 5078ee8d1cSJulian Grajkowski *id_ = ADF_FW_IMAGE_COMPRESSION; \ 5178ee8d1cSJulian Grajkowski else if (!strncmp(str_, \ 5278ee8d1cSJulian Grajkowski ADF_SERVICES_CUSTOM1, \ 5378ee8d1cSJulian Grajkowski sizeof(ADF_SERVICES_CUSTOM1))) \ 5478ee8d1cSJulian Grajkowski *id_ = ADF_FW_IMAGE_CUSTOM1; \ 5578ee8d1cSJulian Grajkowski else { \ 5678ee8d1cSJulian Grajkowski *id_ = ADF_FW_IMAGE_DEFAULT; \ 5778ee8d1cSJulian Grajkowski device_printf(GET_DEV(acc), \ 5878ee8d1cSJulian Grajkowski "Invalid SerivesProfile: %s," \ 5978ee8d1cSJulian Grajkowski "Using DEFAULT image\n", \ 6078ee8d1cSJulian Grajkowski str_); \ 6178ee8d1cSJulian Grajkowski } \ 6278ee8d1cSJulian Grajkowski } while (0) 6378ee8d1cSJulian Grajkowski 6478ee8d1cSJulian Grajkowski int adf_cfg_get_ring_pairs(struct adf_cfg_device *device, 6578ee8d1cSJulian Grajkowski struct adf_cfg_instance *inst, 6678ee8d1cSJulian Grajkowski const char *process_name, 6778ee8d1cSJulian Grajkowski struct adf_accel_dev *accel_dev); 6878ee8d1cSJulian Grajkowski 6978ee8d1cSJulian Grajkowski int adf_cfg_device_init(struct adf_cfg_device *device, 7078ee8d1cSJulian Grajkowski struct adf_accel_dev *accel_dev); 7178ee8d1cSJulian Grajkowski 7278ee8d1cSJulian Grajkowski void adf_cfg_device_clear(struct adf_cfg_device *device, 7378ee8d1cSJulian Grajkowski struct adf_accel_dev *accel_dev); 7478ee8d1cSJulian Grajkowski 7578ee8d1cSJulian Grajkowski #endif 76