xref: /linux/drivers/crypto/intel/qat/qat_4xxx/adf_4xxx_hw_data.h (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
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