18c826816SGiovanni Cabiddu /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */ 28c826816SGiovanni Cabiddu /* Copyright(c) 2014 - 2020 Intel Corporation */ 38c826816SGiovanni Cabiddu #ifndef ADF_4XXX_HW_DATA_H_ 48c826816SGiovanni Cabiddu #define ADF_4XXX_HW_DATA_H_ 58c826816SGiovanni Cabiddu 6e2980ba5SDamian Muszynski #include <linux/units.h> 78c826816SGiovanni Cabiddu #include <adf_accel_devices.h> 88c826816SGiovanni Cabiddu 98c826816SGiovanni Cabiddu #define ADF_4XXX_MAX_ACCELENGINES 9 108c826816SGiovanni Cabiddu 118c826816SGiovanni Cabiddu #define ADF_4XXX_ACCELENGINES_MASK (0x1FF) 128c826816SGiovanni Cabiddu #define ADF_4XXX_ADMIN_AE_MASK (0x100) 138c826816SGiovanni Cabiddu 144926e89dSShashank Gupta #define ADF_4XXX_HICPPAGENTCMDPARERRLOG_MASK 0x1F 15895f7d53SShashank Gupta #define ADF_4XXX_PARITYERRORMASK_ATH_CPH_MASK 0xF000F 16895f7d53SShashank Gupta #define ADF_4XXX_PARITYERRORMASK_CPR_XLT_MASK 0x10001 17895f7d53SShashank Gupta #define ADF_4XXX_PARITYERRORMASK_DCPR_UCS_MASK 0x30007 18895f7d53SShashank Gupta #define ADF_4XXX_PARITYERRORMASK_PKE_MASK 0x3F 19895f7d53SShashank Gupta 20895f7d53SShashank Gupta /* 21895f7d53SShashank Gupta * SSMFEATREN bit mask 22895f7d53SShashank Gupta * BIT(4) - enables parity detection on CPP 23895f7d53SShashank Gupta * BIT(12) - enables the logging of push/pull data errors 24895f7d53SShashank Gupta * in pperr register 25895f7d53SShashank Gupta * BIT(16) - BIT(23) - enable parity detection on SPPs 26895f7d53SShashank Gupta */ 27895f7d53SShashank Gupta #define ADF_4XXX_SSMFEATREN_MASK \ 28895f7d53SShashank Gupta (BIT(4) | BIT(12) | BIT(16) | BIT(17) | BIT(18) | \ 29895f7d53SShashank Gupta BIT(19) | BIT(20) | BIT(21) | BIT(22) | BIT(23)) 304926e89dSShashank Gupta 318c826816SGiovanni Cabiddu /* Firmware Binaries */ 328c826816SGiovanni Cabiddu #define ADF_4XXX_FW "qat_4xxx.bin" 338c826816SGiovanni Cabiddu #define ADF_4XXX_MMP "qat_4xxx_mmp.bin" 348c826816SGiovanni Cabiddu #define ADF_4XXX_SYM_OBJ "qat_4xxx_sym.bin" 350cec19c7STomasz Kowalik #define ADF_4XXX_DC_OBJ "qat_4xxx_dc.bin" 368c826816SGiovanni Cabiddu #define ADF_4XXX_ASYM_OBJ "qat_4xxx_asym.bin" 378c826816SGiovanni Cabiddu #define ADF_4XXX_ADMIN_OBJ "qat_4xxx_admin.bin" 38a3e8c919SDamian Muszynski /* Firmware for 402XXX */ 39a3e8c919SDamian Muszynski #define ADF_402XX_FW "qat_402xx.bin" 40a3e8c919SDamian Muszynski #define ADF_402XX_MMP "qat_402xx_mmp.bin" 41a3e8c919SDamian Muszynski #define ADF_402XX_SYM_OBJ "qat_402xx_sym.bin" 42a3e8c919SDamian Muszynski #define ADF_402XX_DC_OBJ "qat_402xx_dc.bin" 43a3e8c919SDamian Muszynski #define ADF_402XX_ASYM_OBJ "qat_402xx_asym.bin" 44a3e8c919SDamian Muszynski #define ADF_402XX_ADMIN_OBJ "qat_402xx_admin.bin" 458c826816SGiovanni Cabiddu 46*d9fb8408SDamian Muszynski /* RL constants */ 47*d9fb8408SDamian Muszynski #define ADF_4XXX_RL_PCIE_SCALE_FACTOR_DIV 100 48*d9fb8408SDamian Muszynski #define ADF_4XXX_RL_PCIE_SCALE_FACTOR_MUL 102 49*d9fb8408SDamian Muszynski #define ADF_4XXX_RL_DCPR_CORRECTION 1 50*d9fb8408SDamian Muszynski #define ADF_4XXX_RL_SCANS_PER_SEC 954 51*d9fb8408SDamian Muszynski #define ADF_4XXX_RL_MAX_TP_ASYM 173750UL 52*d9fb8408SDamian Muszynski #define ADF_4XXX_RL_MAX_TP_SYM 95000UL 53*d9fb8408SDamian Muszynski #define ADF_4XXX_RL_MAX_TP_DC 45000UL 54*d9fb8408SDamian Muszynski #define ADF_4XXX_RL_SLICE_REF 1000UL 55*d9fb8408SDamian Muszynski 56e2980ba5SDamian Muszynski /* Clocks frequency */ 57*d9fb8408SDamian Muszynski #define ADF_4XXX_AE_FREQ (1000 * HZ_PER_MHZ) 58e2980ba5SDamian Muszynski 59a3e8c919SDamian Muszynski void adf_init_hw_data_4xxx(struct adf_hw_device_data *hw_data, u32 dev_id); 608c826816SGiovanni Cabiddu void adf_clean_hw_data_4xxx(struct adf_hw_device_data *hw_data); 618c826816SGiovanni Cabiddu 628c826816SGiovanni Cabiddu #endif 63