File Index
Files and directories
Sign in
FILE

adf_gen6_ras.h

File preview with syntax highlighting.

linux-6.19.14/drivers/crypto/intel/qat/qat_common/adf_gen6_ras.h C
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/* Copyright(c) 2025 Intel Corporation */
  3#ifndef ADF_GEN6_RAS_H_
  4#define ADF_GEN6_RAS_H_
  5
  6#include <linux/bits.h>
  7
  8struct adf_ras_ops;
  9
 10/* Error source registers */
 11#define ADF_GEN6_ERRSOU0	0x41A200
 12#define ADF_GEN6_ERRSOU1	0x41A204
 13#define ADF_GEN6_ERRSOU2	0x41A208
 14#define ADF_GEN6_ERRSOU3	0x41A20C
 15
 16/* Error source mask registers */
 17#define ADF_GEN6_ERRMSK0	0x41A210
 18#define ADF_GEN6_ERRMSK1	0x41A214
 19#define ADF_GEN6_ERRMSK2	0x41A218
 20#define ADF_GEN6_ERRMSK3	0x41A21C
 21
 22/* ERRSOU0 Correctable error mask */
 23#define ADF_GEN6_ERRSOU0_MASK				BIT(0)
 24
 25#define ADF_GEN6_ERRSOU1_CPP0_MEUNC_BIT			BIT(0)
 26#define ADF_GEN6_ERRSOU1_CPP_CMDPARERR_BIT		BIT(1)
 27#define ADF_GEN6_ERRSOU1_RIMEM_PARERR_STS_BIT		BIT(2)
 28#define ADF_GEN6_ERRSOU1_TIMEM_PARERR_STS_BIT		BIT(3)
 29#define ADF_GEN6_ERRSOU1_SFICMD_PARERR_BIT	        BIT(4)
 30
 31#define ADF_GEN6_ERRSOU1_MASK ( \
 32	(ADF_GEN6_ERRSOU1_CPP0_MEUNC_BIT)	| \
 33	(ADF_GEN6_ERRSOU1_CPP_CMDPARERR_BIT)	| \
 34	(ADF_GEN6_ERRSOU1_RIMEM_PARERR_STS_BIT)	| \
 35	(ADF_GEN6_ERRSOU1_TIMEM_PARERR_STS_BIT)	| \
 36	(ADF_GEN6_ERRSOU1_SFICMD_PARERR_BIT))
 37
 38#define ADF_GEN6_ERRMSK1_CPP0_MEUNC_BIT			BIT(0)
 39#define ADF_GEN6_ERRMSK1_CPP_CMDPARERR_BIT		BIT(1)
 40#define ADF_GEN6_ERRMSK1_RIMEM_PARERR_STS_BIT		BIT(2)
 41#define ADF_GEN6_ERRMSK1_TIMEM_PARERR_STS_BIT		BIT(3)
 42#define ADF_GEN6_ERRMSK1_IOSFCMD_PARERR_BIT	        BIT(4)
 43
 44#define ADF_GEN6_ERRMSK1_MASK ( \
 45	(ADF_GEN6_ERRMSK1_CPP0_MEUNC_BIT)	| \
 46	(ADF_GEN6_ERRMSK1_CPP_CMDPARERR_BIT)	| \
 47	(ADF_GEN6_ERRMSK1_RIMEM_PARERR_STS_BIT)	| \
 48	(ADF_GEN6_ERRMSK1_TIMEM_PARERR_STS_BIT)	| \
 49	(ADF_GEN6_ERRMSK1_IOSFCMD_PARERR_BIT))
 50
 51/* HI AE Uncorrectable error log */
 52#define ADF_GEN6_HIAEUNCERRLOG_CPP0			0x41A300
 53
 54/* HI AE Uncorrectable error log enable */
 55#define ADF_GEN6_HIAEUNCERRLOGENABLE_CPP0		0x41A320
 56
 57/* HI AE Correctable error log */
 58#define ADF_GEN6_HIAECORERRLOG_CPP0			0x41A308
 59
 60/* HI AE Correctable error log enable */
 61#define ADF_GEN6_HIAECORERRLOGENABLE_CPP0		0x41A318
 62
 63/* HI CPP Agent Command parity error log */
 64#define ADF_GEN6_HICPPAGENTCMDPARERRLOG			0x41A310
 65
 66/* HI CPP Agent command parity error logging enable */
 67#define ADF_GEN6_HICPPAGENTCMDPARERRLOGENABLE		0x41A314
 68
 69#define ADF_6XXX_HICPPAGENTCMDPARERRLOG_MASK		0x1B
 70
 71/* RI Memory parity error status register */
 72#define ADF_GEN6_RIMEM_PARERR_STS			0x41B128
 73
 74/* RI Memory parity error reporting enable */
 75#define ADF_GEN6_RI_MEM_PAR_ERR_EN0			0x41B12C
 76
 77/*
 78 * RI Memory parity error mask
 79 * BIT(4) - ri_tlq_phdr parity error
 80 * BIT(5) - ri_tlq_pdata parity error
 81 * BIT(6) - ri_tlq_nphdr parity error
 82 * BIT(7) - ri_tlq_npdata parity error
 83 * BIT(8) - ri_tlq_cplhdr parity error
 84 * BIT(10) - BIT(13) - ri_tlq_cpldata[0:3] parity error
 85 * BIT(19) - ri_cds_cmd_fifo parity error
 86 * BIT(20) - ri_obc_ricpl_fifo parity error
 87 * BIT(21) - ri_obc_tiricpl_fifo parity error
 88 * BIT(22) - ri_obc_cppcpl_fifo parity error
 89 * BIT(23) - ri_obc_pendcpl_fifo parity error
 90 * BIT(24) - ri_cpp_cmd_fifo parity error
 91 * BIT(25) - ri_cds_ticmd_fifo parity error
 92 * BIT(26) - riti_cmd_fifo parity error
 93 * BIT(27) - ri_int_msixtbl parity error
 94 * BIT(28) - ri_int_imstbl parity error
 95 * BIT(30) - ri_kpt_fuses parity error
 96 */
 97#define ADF_GEN6_RIMEM_PARERR_FATAL_MASK \
 98	(BIT(0) | BIT(1) | BIT(2) | BIT(4) | BIT(5) | BIT(6) | \
 99	 BIT(7) | BIT(8) | BIT(18) | BIT(19) | BIT(20) | BIT(21) | \
100	 BIT(22) | BIT(23) | BIT(24) | BIT(25) | BIT(26) | BIT(27) | \
101	 BIT(28) | BIT(30))
102
103#define ADF_GEN6_RIMEM_PARERR_CERR_MASK \
104	(BIT(10) | BIT(11) | BIT(12) | BIT(13))
105
106/* TI CI parity status */
107#define ADF_GEN6_TI_CI_PAR_STS				0x50060C
108
109/* TI CI parity reporting mask */
110#define ADF_GEN6_TI_CI_PAR_ERR_MASK			0x500608
111
112/*
113 * TI CI parity status mask
114 * BIT(0) - CdCmdQ_sts patiry error status
115 * BIT(1) - CdDataQ_sts parity error status
116 * BIT(3) - CPP_SkidQ_sts parity error status
117 */
118#define ADF_GEN6_TI_CI_PAR_STS_MASK \
119	(BIT(0) | BIT(1) | BIT(3))
120
121/* TI PULLFUB parity status */
122#define ADF_GEN6_TI_PULL0FUB_PAR_STS			0x500618
123
124/* TI PULLFUB parity error reporting mask */
125#define ADF_GEN6_TI_PULL0FUB_PAR_ERR_MASK		0x500614
126
127/*
128 * TI PULLFUB parity status mask
129 * BIT(0) - TrnPullReqQ_sts parity status
130 * BIT(1) - TrnSharedDataQ_sts parity status
131 * BIT(2) - TrnPullReqDataQ_sts parity status
132 * BIT(4) - CPP_CiPullReqQ_sts parity status
133 * BIT(5) - CPP_TrnPullReqQ_sts parity status
134 * BIT(6) - CPP_PullidQ_sts parity status
135 * BIT(7) - CPP_WaitDataQ_sts parity status
136 * BIT(8) - CPP_CdDataQ_sts parity status
137 * BIT(9) - CPP_TrnDataQP0_sts parity status
138 * BIT(10) - BIT(11) - CPP_TrnDataQRF[00:01]_sts parity status
139 * BIT(12) - CPP_TrnDataQP1_sts parity status
140 * BIT(13) - BIT(14) - CPP_TrnDataQRF[10:11]_sts parity status
141 */
142#define ADF_GEN6_TI_PULL0FUB_PAR_STS_MASK \
143	(BIT(0) | BIT(1) | BIT(2) | BIT(4) | BIT(5) | BIT(6) | BIT(7) | \
144	 BIT(8) | BIT(9) | BIT(10) | BIT(11) | BIT(12) | BIT(13) | BIT(14))
145
146/* TI PUSHUB parity status */
147#define ADF_GEN6_TI_PUSHFUB_PAR_STS			0x500630
148
149/* TI PUSHFUB parity error reporting mask */
150#define ADF_GEN6_TI_PUSHFUB_PAR_ERR_MASK		0x50062C
151
152/*
153 * TI PUSHUB parity status mask
154 * BIT(0) - SbPushReqQ_sts parity status
155 * BIT(1) - BIT(2) - SbPushDataQ[0:1]_sts parity status
156 * BIT(4) - CPP_CdPushReqQ_sts parity status
157 * BIT(5) - BIT(6) - CPP_CdPushDataQ[0:1]_sts parity status
158 * BIT(7) - CPP_SbPushReqQ_sts parity status
159 * BIT(8) - CPP_SbPushDataQP_sts parity status
160 * BIT(9) - BIT(10) - CPP_SbPushDataQRF[0:1]_sts parity status
161 */
162#define ADF_GEN6_TI_PUSHFUB_PAR_STS_MASK \
163	(BIT(0) | BIT(1) | BIT(2) | BIT(4) | BIT(5) | \
164	 BIT(6) | BIT(7) | BIT(8) | BIT(9) | BIT(10))
165
166/* TI CD parity status */
167#define ADF_GEN6_TI_CD_PAR_STS				0x50063C
168
169/* TI CD parity error mask */
170#define ADF_GEN6_TI_CD_PAR_ERR_MASK			0x500638
171
172/*
173 * TI CD parity status mask
174 * BIT(0) - BIT(15) - CtxMdRam[0:15]_sts parity status
175 * BIT(16) - Leaf2ClusterRam_sts parity status
176 * BIT(17) - BIT(18) - Ring2LeafRam[0:1]_sts parity status
177 * BIT(19) - VirtualQ_sts parity status
178 * BIT(20) - DtRdQ_sts parity status
179 * BIT(21) - DtWrQ_sts parity status
180 * BIT(22) - RiCmdQ_sts parity status
181 * BIT(23) - BypassQ_sts parity status
182 * BIT(24) - DtRdQ_sc_sts parity status
183 * BIT(25) - DtWrQ_sc_sts parity status
184 */
185#define ADF_GEN6_TI_CD_PAR_STS_MASK \
186	(BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | BIT(6) | \
187	 BIT(7) | BIT(8) | BIT(9) | BIT(10) | BIT(11) | BIT(12) | BIT(13) | \
188	 BIT(14) | BIT(15) | BIT(16) | BIT(17) | BIT(18) | BIT(19) | BIT(20) | \
189	 BIT(21) | BIT(22) | BIT(23) | BIT(24) | BIT(25))
190
191/* TI TRNSB parity status */
192#define ADF_GEN6_TI_TRNSB_PAR_STS			0x500648
193
194/* TI TRNSB parity error reporting mask */
195#define ADF_GEN6_TI_TRNSB_PAR_ERR_MASK			0x500644
196
197/*
198 * TI TRNSB parity status mask
199 * BIT(0) - TrnPHdrQP_sts parity status
200 * BIT(1) - TrnPHdrQRF_sts parity status
201 * BIT(2) - TrnPDataQP_sts parity status
202 * BIT(3) - BIT(6) - TrnPDataQRF[0:3]_sts parity status
203 * BIT(7) - TrnNpHdrQP_sts parity status
204 * BIT(8) - BIT(9) - TrnNpHdrQRF[0:1]_sts parity status
205 * BIT(10) - TrnCplHdrQ_sts parity status
206 * BIT(11) - TrnPutObsReqQ_sts parity status
207 * BIT(12) - TrnPushReqQ_sts parity status
208 * BIT(13) - SbSplitIdRam_sts parity status
209 * BIT(14) - SbReqCountQ_sts parity status
210 * BIT(15) - SbCplTrkRam_sts parity status
211 * BIT(16) - SbGetObsReqQ_sts parity status
212 * BIT(17) - SbEpochIdQ_sts parity status
213 * BIT(18) - SbAtCplHdrQ_sts parity status
214 * BIT(19) - SbAtCplDataQ_sts parity status
215 * BIT(20) - SbReqCountRam_sts parity status
216 * BIT(21) - SbAtCplHdrQ_sc_sts parity status
217 */
218#define ADF_GEN6_TI_TRNSB_PAR_STS_MASK \
219	(BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | BIT(6) | \
220	 BIT(7) | BIT(8) | BIT(9) | BIT(10) | BIT(11) | BIT(12) | \
221	 BIT(13) | BIT(14) | BIT(15) | BIT(16) | BIT(17) | BIT(18) | \
222	 BIT(19) | BIT(20) | BIT(21))
223
224/* Status register to log misc error on RI */
225#define ADF_GEN6_RIMISCSTS				0x41B1B8
226
227/* Status control register to log misc RI error */
228#define ADF_GEN6_RIMISCCTL				0x41B1BC
229
230/*
231 * ERRSOU2 bit mask
232 * BIT(0) - SSM Interrupt Mask
233 * BIT(1) - CFC on CPP. ORed of CFC Push error and Pull error
234 * BIT(2) - BIT(4) - CPP attention interrupts
235 * BIT(18) - PM interrupt
236 */
237#define ADF_GEN6_ERRSOU2_SSM_ERR_BIT			BIT(0)
238#define ADF_GEN6_ERRSOU2_CPP_CFC_ERR_STATUS_BIT	BIT(1)
239#define ADF_GEN6_ERRSOU2_CPP_CFC_ATT_INT_MASK \
240	(BIT(2) | BIT(3) | BIT(4))
241
242#define ADF_GEN6_ERRSOU2_PM_INT_BIT			BIT(18)
243
244#define ADF_GEN6_ERRSOU2_MASK \
245	(ADF_GEN6_ERRSOU2_SSM_ERR_BIT | \
246	 ADF_GEN6_ERRSOU2_CPP_CFC_ERR_STATUS_BIT)
247
248#define ADF_GEN6_ERRSOU2_DIS_MASK \
249	(ADF_GEN6_ERRSOU2_SSM_ERR_BIT | \
250	 ADF_GEN6_ERRSOU2_CPP_CFC_ERR_STATUS_BIT | \
251	 ADF_GEN6_ERRSOU2_CPP_CFC_ATT_INT_MASK)
252
253#define ADF_GEN6_IAINTSTATSSM				0x28
254
255/* IAINTSTATSSM error bit mask definitions */
256#define ADF_GEN6_IAINTSTATSSM_SH_ERR_BIT		BIT(0)
257#define ADF_GEN6_IAINTSTATSSM_PPERR_BIT			BIT(2)
258#define ADF_GEN6_IAINTSTATSSM_SCMPAR_ERR_BIT		BIT(4)
259#define ADF_GEN6_IAINTSTATSSM_CPPPAR_ERR_BIT		BIT(5)
260#define ADF_GEN6_IAINTSTATSSM_RFPAR_ERR_BIT		BIT(6)
261#define ADF_GEN6_IAINTSTATSSM_UNEXP_CPL_ERR_BIT		BIT(7)
262
263#define ADF_GEN6_IAINTSTATSSM_MASK \
264	(ADF_GEN6_IAINTSTATSSM_SH_ERR_BIT | \
265	 ADF_GEN6_IAINTSTATSSM_PPERR_BIT | \
266	 ADF_GEN6_IAINTSTATSSM_SCMPAR_ERR_BIT | \
267	 ADF_GEN6_IAINTSTATSSM_CPPPAR_ERR_BIT | \
268	 ADF_GEN6_IAINTSTATSSM_RFPAR_ERR_BIT | \
269	 ADF_GEN6_IAINTSTATSSM_UNEXP_CPL_ERR_BIT)
270
271#define ADF_GEN6_UERRSSMSH				0x18
272
273/*
274 * UERRSSMSH error bit mask definitions
275 *
276 * BIT(0) - Indicates one uncorrectable error
277 * BIT(15) - Indicates multiple uncorrectable errors
278 *	     in device shared memory
279 */
280#define ADF_GEN6_UERRSSMSH_MASK			(BIT(0) | BIT(15))
281
282/*
283 * CERRSSMSH error bit
284 * BIT(0) - Indicates one correctable error
285 */
286#define ADF_GEN6_CERRSSMSH_ERROR_BIT			(BIT(0) | BIT(15) | BIT(24))
287#define ADF_GEN6_CERRSSMSH				0x10
288
289#define ADF_GEN6_INTMASKSSM				0x0
290
291/*
292 * Error reporting mask in INTMASKSSM
293 * BIT(0) - Shared memory uncorrectable interrupt mask
294 * BIT(2) - PPERR interrupt mask
295 * BIT(4) - SCM parity error interrupt mask
296 * BIT(5) - CPP parity error interrupt mask
297 * BIT(6) - SHRAM RF parity error interrupt mask
298 * BIT(7) - AXI unexpected completion error mask
299 */
300#define ADF_GEN6_INTMASKSSM_MASK	\
301	(BIT(0) | BIT(2) | BIT(4) | BIT(5) | BIT(6) | BIT(7))
302
303/* CPP push or pull error */
304#define ADF_GEN6_PPERR					0x8
305
306#define ADF_GEN6_PPERR_MASK				(BIT(0) | BIT(1))
307
308/*
309 * SSM_FERR_STATUS error bit mask definitions
310 */
311#define ADF_GEN6_SCM_PAR_ERR_MASK			BIT(5)
312#define ADF_GEN6_CPP_PAR_ERR_MASK			(BIT(0) | BIT(1) | BIT(2))
313#define ADF_GEN6_UNEXP_CPL_ERR_MASK			(BIT(3) | BIT(4) | BIT(10) | BIT(11))
314#define ADF_GEN6_RF_PAR_ERR_MASK			BIT(16)
315
316#define ADF_GEN6_SSM_FERR_STATUS			0x9C
317
318#define ADF_GEN6_CPP_CFC_ERR_STATUS			0x640C04
319
320/*
321 * BIT(0) - Indicates one or more CPP CFC errors
322 * BIT(1) - Indicates multiple CPP CFC errors
323 * BIT(7) - Indicates CPP CFC command parity error type
324 * BIT(8) - Indicates CPP CFC data parity error type
325 */
326#define ADF_GEN6_CPP_CFC_ERR_STATUS_ERR_BIT		BIT(0)
327#define ADF_GEN6_CPP_CFC_ERR_STATUS_MERR_BIT		BIT(1)
328#define ADF_GEN6_CPP_CFC_ERR_STATUS_CMDPAR_BIT		BIT(7)
329#define ADF_GEN6_CPP_CFC_ERR_STATUS_DATAPAR_BIT		BIT(8)
330#define ADF_GEN6_CPP_CFC_FATAL_ERR_BIT		\
331	(ADF_GEN6_CPP_CFC_ERR_STATUS_ERR_BIT |	\
332	 ADF_GEN6_CPP_CFC_ERR_STATUS_MERR_BIT)
333
334/*
335 * BIT(0) - Enables CFC to detect and log a push/pull data error
336 * BIT(1) - Enables CFC to generate interrupt to PCIEP for a CPP error
337 * BIT(4) - When 1 parity detection is disabled
338 * BIT(5) - When 1 parity detection is disabled on CPP command bus
339 * BIT(6) - When 1 parity detection is disabled on CPP push/pull bus
340 * BIT(9) - When 1 RF parity error detection is disabled
341 */
342#define ADF_GEN6_CPP_CFC_ERR_CTRL_MASK		(BIT(0) | BIT(1))
343
344#define ADF_GEN6_CPP_CFC_ERR_CTRL_DIS_MASK \
345	(BIT(4) | BIT(5) | BIT(6) | BIT(9) | BIT(10))
346
347#define ADF_GEN6_CPP_CFC_ERR_CTRL			0x640C00
348
349/*
350 * BIT(0) - Clears bit(0) of ADF_GEN6_CPP_CFC_ERR_STATUS
351 *	    when an error is reported on CPP
352 * BIT(1) - Clears bit(1) of ADF_GEN6_CPP_CFC_ERR_STATUS
353 *	    when multiple errors are reported on CPP
354 * BIT(2) - Clears bit(2) of ADF_GEN6_CPP_CFC_ERR_STATUS
355 *	    when attention interrupt is reported
356 */
357#define ADF_GEN6_CPP_CFC_ERR_STATUS_CLR_MASK		(BIT(0) | BIT(1) | BIT(2))
358#define ADF_GEN6_CPP_CFC_ERR_STATUS_CLR			0x640C08
359
360/*
361 * ERRSOU3 bit masks
362 * BIT(0) - indicates error response order overflow and/or BME error
363 * BIT(1) - indicates RI push/pull error
364 * BIT(2) - indicates TI push/pull error
365 * BIT(5) - indicates TI pull parity error
366 * BIT(6) - indicates RI push parity error
367 * BIT(7) - indicates VFLR interrupt
368 * BIT(8) - indicates ring pair interrupts for ATU detected fault
369 * BIT(9) - indicates rate limiting error
370 */
371#define ADF_GEN6_ERRSOU3_TIMISCSTS_BIT			BIT(0)
372#define ADF_GEN6_ERRSOU3_RICPPINTSTS_MASK		(BIT(1) | BIT(6))
373#define ADF_GEN6_ERRSOU3_TICPPINTSTS_MASK		(BIT(2) | BIT(5))
374#define ADF_GEN6_ERRSOU3_VFLRNOTIFY_BIT			BIT(7)
375#define ADF_GEN6_ERRSOU3_ATUFAULTSTATUS_BIT		BIT(8)
376#define ADF_GEN6_ERRSOU3_RLTERROR_BIT			BIT(9)
377#define ADF_GEN6_ERRSOU3_TC_VC_MAP_ERROR_BIT		BIT(16)
378#define ADF_GEN6_ERRSOU3_PCIE_DEVHALT_BIT		BIT(17)
379#define ADF_GEN6_ERRSOU3_PG_REQ_DEVHALT_BIT		BIT(18)
380#define ADF_GEN6_ERRSOU3_XLT_CPL_DEVHALT_BIT		BIT(19)
381#define ADF_GEN6_ERRSOU3_TI_INT_ERR_DEVHALT_BIT		BIT(20)
382
383#define ADF_GEN6_ERRSOU3_MASK ( \
384	(ADF_GEN6_ERRSOU3_TIMISCSTS_BIT) | \
385	(ADF_GEN6_ERRSOU3_RICPPINTSTS_MASK) | \
386	(ADF_GEN6_ERRSOU3_TICPPINTSTS_MASK) | \
387	(ADF_GEN6_ERRSOU3_VFLRNOTIFY_BIT) | \
388	(ADF_GEN6_ERRSOU3_ATUFAULTSTATUS_BIT) | \
389	(ADF_GEN6_ERRSOU3_RLTERROR_BIT) | \
390	(ADF_GEN6_ERRSOU3_TC_VC_MAP_ERROR_BIT) | \
391	(ADF_GEN6_ERRSOU3_PCIE_DEVHALT_BIT) | \
392	(ADF_GEN6_ERRSOU3_PG_REQ_DEVHALT_BIT) | \
393	(ADF_GEN6_ERRSOU3_XLT_CPL_DEVHALT_BIT) | \
394	(ADF_GEN6_ERRSOU3_TI_INT_ERR_DEVHALT_BIT))
395
396#define ADF_GEN6_ERRSOU3_DIS_MASK ( \
397	(ADF_GEN6_ERRSOU3_TIMISCSTS_BIT) | \
398	(ADF_GEN6_ERRSOU3_RICPPINTSTS_MASK) | \
399	(ADF_GEN6_ERRSOU3_TICPPINTSTS_MASK) | \
400	(ADF_GEN6_ERRSOU3_VFLRNOTIFY_BIT) | \
401	(ADF_GEN6_ERRSOU3_ATUFAULTSTATUS_BIT) | \
402	(ADF_GEN6_ERRSOU3_RLTERROR_BIT) | \
403	(ADF_GEN6_ERRSOU3_TC_VC_MAP_ERROR_BIT))
404
405/* Rate limiting error log register */
406#define ADF_GEN6_RLT_ERRLOG				0x508814
407
408#define ADF_GEN6_RLT_ERRLOG_MASK	(BIT(0) | BIT(1) | BIT(2) | BIT(3))
409
410/* TI misc status register */
411#define ADF_GEN6_TIMISCSTS				0x50054C
412
413/* TI misc error reporting mask */
414#define ADF_GEN6_TIMISCCTL				0x500548
415
416/*
417 * TI Misc error reporting control mask
418 * BIT(0) - Enables error detection and logging in TIMISCSTS register
419 * BIT(1) - It has effect only when SRIOV enabled, this bit is 0 by default
420 * BIT(2) - Enables the D-F-x counter within the dispatch arbiter
421 *	    to start based on the command triggered from
422 * BIT(30) - Disables VFLR functionality
423 * bits 1, 2 and 30 value should be preserved and not meant to be changed
424 * within RAS.
425 */
426#define ADF_GEN6_TIMISCCTL_BIT				BIT(0)
427#define ADF_GEN6_TIMSCCTL_RELAY_MASK			(BIT(1) | BIT(2) | BIT(30))
428
429/* RI CPP interface status register */
430#define ADF_GEN6_RICPPINTSTS				0x41A330
431
432/*
433 * Uncorrectable error mask in RICPPINTSTS register
434 * BIT(0) - RI asserted the CPP error signal during a push
435 * BIT(1) - RI detected the CPP error signal asserted during a pull
436 * BIT(2) - RI detected a push data parity error
437 * BIT(3) - RI detected a push valid parity error
438 */
439#define ADF_GEN6_RICPPINTSTS_MASK			(BIT(0) | BIT(1) | BIT(2) | BIT(3))
440
441/* RI CPP interface register control */
442#define ADF_GEN6_RICPPINTCTL				0x41A32C
443
444/*
445 * Control bit mask for RICPPINTCTL register
446 * BIT(0) - value of 1 enables error detection and reporting
447 *	    on the RI CPP Push interface
448 * BIT(1) - value of 1 enables error detection and reporting
449 *	    on the RI CPP Pull interface
450 * BIT(2) - value of 1 enables error detection and reporting
451 *	    on the RI Parity
452 * BIT(3) - value of 1 enable checking parity on CPP
453 */
454#define ADF_GEN6_RICPPINTCTL_MASK \
455	(BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4))
456
457/* TI CPP interface status register */
458#define ADF_GEN6_TICPPINTSTS				0x50053C
459
460/*
461 * Uncorrectable error mask in TICPPINTSTS register
462 * BIT(0) - value of 1 indicates that the TI asserted
463 *	    the CPP error signal during a push
464 * BIT(1) - value of 1 indicates that the TI detected
465 *	    the CPP error signal asserted during a pull
466 * BIT(2) - value of 1 indicates that the TI detected
467 *	    a pull data parity error
468 */
469#define ADF_GEN6_TICPPINTSTS_MASK			(BIT(0) | BIT(1) | BIT(2))
470
471/* TI CPP interface status register control */
472#define ADF_GEN6_TICPPINTCTL				0x500538
473
474/*
475 * Control bit mask for TICPPINTCTL register
476 * BIT(0) - value of 1 enables error detection and reporting on
477 *	    the TI CPP Push interface
478 * BIT(1) - value of 1 enables error detection and reporting on
479 *	    the TI CPP Push interface
480 * BIT(2) - value of 1 enables parity error detection and logging on
481 *	    the TI CPP Pull interface
482 * BIT(3) - value of 1 enables CPP CMD and Pull Data parity checking
483 */
484#define ADF_GEN6_TICPPINTCTL_MASK	\
485	(BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4))
486
487/* ATU fault status register */
488#define ADF_GEN6_ATUFAULTSTATUS(i)			(0x506000 + ((i) * 0x4))
489
490#define ADF_GEN6_ATUFAULTSTATUS_BIT			BIT(0)
491
492/* Command parity error detected on IOSFP command to QAT */
493#define ADF_GEN6_RIMISCSTS_BIT				BIT(0)
494
495#define ADF_GEN6_GENSTS					0x41A220
496#define ADF_GEN6_GENSTS_DEVICE_STATE_MASK		GENMASK(1, 0)
497#define ADF_GEN6_GENSTS_RESET_TYPE_MASK			GENMASK(3, 2)
498#define ADF_GEN6_GENSTS_PFLR				0x1
499#define ADF_GEN6_GENSTS_COLD_RESET			0x3
500#define ADF_GEN6_GENSTS_DEVHALT				0x1
501
502void adf_gen6_init_ras_ops(struct adf_ras_ops *ras_ops);
503
504#endif /* ADF_GEN6_RAS_H_ */
~/ Read-only file preview.