/* SPDX-License-Identifier: GPL-2.0-only */
/* Copyright(c) 2023 Intel Corporation */
#ifndef ADF_GEN4_RAS_H_
#define ADF_GEN4_RAS_H_
#include <linux/bits.h>
struct adf_ras_ops;
/* ERRSOU0 Correctable error mask*/
#define ADF_GEN4_ERRSOU0_BIT BIT(0 )
/* HI AE Correctable error log */
#define ADF_GEN4_HIAECORERRLOG_CPP0 0 x41A308
/* HI AE Correctable error log enable */
#define ADF_GEN4_HIAECORERRLOGENABLE_CPP0 0 x41A318
#define ADF_GEN4_ERRSOU1_HIAEUNCERRLOG_CPP0_BIT BIT(0 )
#define ADF_GEN4_ERRSOU1_HICPPAGENTCMDPARERRLOG_BIT BIT(1 )
#define ADF_GEN4_ERRSOU1_RIMEM_PARERR_STS_BIT BIT(2 )
#define ADF_GEN4_ERRSOU1_TIMEM_PARERR_STS_BIT BIT(3 )
#define ADF_GEN4_ERRSOU1_RIMISCSTS_BIT BIT(4 )
#define ADF_GEN4_ERRSOU1_BITMASK ( \
(ADF_GEN4_ERRSOU1_HIAEUNCERRLOG_CPP0_BIT) | \
(ADF_GEN4_ERRSOU1_HICPPAGENTCMDPARERRLOG_BIT) | \
(ADF_GEN4_ERRSOU1_RIMEM_PARERR_STS_BIT) | \
(ADF_GEN4_ERRSOU1_TIMEM_PARERR_STS_BIT) | \
(ADF_GEN4_ERRSOU1_RIMISCSTS_BIT))
/* HI AE Uncorrectable error log */
#define ADF_GEN4_HIAEUNCERRLOG_CPP0 0 x41A300
/* HI AE Uncorrectable error log enable */
#define ADF_GEN4_HIAEUNCERRLOGENABLE_CPP0 0 x41A320
/* HI CPP Agent Command parity error log */
#define ADF_GEN4_HICPPAGENTCMDPARERRLOG 0 x41A310
/* HI CPP Agent Command parity error logging enable */
#define ADF_GEN4_HICPPAGENTCMDPARERRLOGENABLE 0 x41A314
/* RI Memory parity error status register */
#define ADF_GEN4_RIMEM_PARERR_STS 0 x41B128
/* RI Memory parity error reporting enable */
#define ADF_GEN4_RI_MEM_PAR_ERR_EN0 0 x41B12C
/*
* RI Memory parity error mask
* BIT ( 0 ) - BIT ( 3 ) - ri_iosf_pdata_rxq [ 0 : 3 ] parity error
* BIT ( 4 ) - ri_tlq_phdr parity error
* BIT ( 5 ) - ri_tlq_pdata parity error
* BIT ( 6 ) - ri_tlq_nphdr parity error
* BIT ( 7 ) - ri_tlq_npdata parity error
* BIT ( 8 ) - BIT ( 9 ) - ri_tlq_cplhdr [ 0 : 1 ] parity error
* BIT ( 10 ) - BIT ( 17 ) - ri_tlq_cpldata [ 0 : 7 ] parity error
* BIT ( 18 ) - set this bit to 1 to enable logging status to ri_mem_par_err_sts0
* BIT ( 19 ) - ri_cds_cmd_fifo parity error
* BIT ( 20 ) - ri_obc_ricpl_fifo parity error
* BIT ( 21 ) - ri_obc_tiricpl_fifo parity error
* BIT ( 22 ) - ri_obc_cppcpl_fifo parity error
* BIT ( 23 ) - ri_obc_pendcpl_fifo parity error
* BIT ( 24 ) - ri_cpp_cmd_fifo parity error
* BIT ( 25 ) - ri_cds_ticmd_fifo parity error
* BIT ( 26 ) - riti_cmd_fifo parity error
* BIT ( 27 ) - ri_int_msixtbl parity error
* BIT ( 28 ) - ri_int_imstbl parity error
* BIT ( 30 ) - ri_kpt_fuses parity error
*/
#define ADF_GEN4_RIMEM_PARERR_STS_UNCERR_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(5 ) | \
BIT(7 ) | BIT(10 ) | BIT(11 ) | BIT(12 ) | BIT(13 ) | \
BIT(14 ) | BIT(15 ) | BIT(16 ) | BIT(17 ) | BIT(18 ) | BIT(19 ) | \
BIT(20 ) | BIT(21 ) | BIT(22 ) | BIT(23 ) | BIT(24 ) | BIT(25 ) | \
BIT(26 ) | BIT(27 ) | BIT(28 ) | BIT(30 ))
#define ADF_GEN4_RIMEM_PARERR_STS_FATAL_BITMASK \
(BIT(4 ) | BIT(6 ) | BIT(8 ) | BIT(9 ))
/* TI CI parity status */
#define ADF_GEN4_TI_CI_PAR_STS 0 x50060C
/* TI CI parity reporting mask */
#define ADF_GEN4_TI_CI_PAR_ERR_MASK 0 x500608
/*
* TI CI parity status mask
* BIT ( 0 ) - CdCmdQ_sts patiry error status
* BIT ( 1 ) - CdDataQ_sts parity error status
* BIT ( 3 ) - CPP_SkidQ_sts parity error status
* BIT ( 7 ) - CPP_SkidQ_sc_sts parity error status
*/
#define ADF_GEN4_TI_CI_PAR_STS_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(3 ) | BIT(7 ))
/* TI PULLFUB parity status */
#define ADF_GEN4_TI_PULL0FUB_PAR_STS 0 x500618
/* TI PULLFUB parity error reporting mask */
#define ADF_GEN4_TI_PULL0FUB_PAR_ERR_MASK 0 x500614
/*
* TI PULLFUB parity status mask
* BIT ( 0 ) - TrnPullReqQ_sts parity status
* BIT ( 1 ) - TrnSharedDataQ_sts parity status
* BIT ( 2 ) - TrnPullReqDataQ_sts parity status
* BIT ( 4 ) - CPP_CiPullReqQ_sts parity status
* BIT ( 5 ) - CPP_TrnPullReqQ_sts parity status
* BIT ( 6 ) - CPP_PullidQ_sts parity status
* BIT ( 7 ) - CPP_WaitDataQ_sts parity status
* BIT ( 8 ) - CPP_CdDataQ_sts parity status
* BIT ( 9 ) - CPP_TrnDataQP0_sts parity status
* BIT ( 10 ) - BIT ( 11 ) - CPP_TrnDataQRF [ 00 : 01 ] _ sts parity status
* BIT ( 12 ) - CPP_TrnDataQP1_sts parity status
* BIT ( 13 ) - BIT ( 14 ) - CPP_TrnDataQRF [ 10 : 11 ] _ sts parity status
*/
#define ADF_GEN4_TI_PULL0FUB_PAR_STS_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(4 ) | BIT(5 ) | BIT(6 ) | BIT(7 ) | \
BIT(8 ) | BIT(9 ) | BIT(10 ) | BIT(11 ) | BIT(12 ) | BIT(13 ) | BIT(14 ))
/* TI PUSHUB parity status */
#define ADF_GEN4_TI_PUSHFUB_PAR_STS 0 x500630
/* TI PUSHFUB parity error reporting mask */
#define ADF_GEN4_TI_PUSHFUB_PAR_ERR_MASK 0 x50062C
/*
* TI PUSHUB parity status mask
* BIT ( 0 ) - SbPushReqQ_sts parity status
* BIT ( 1 ) - BIT ( 2 ) - SbPushDataQ [ 0 : 1 ] _ sts parity status
* BIT ( 4 ) - CPP_CdPushReqQ_sts parity status
* BIT ( 5 ) - BIT ( 6 ) - CPP_CdPushDataQ [ 0 : 1 ] _ sts parity status
* BIT ( 7 ) - CPP_SbPushReqQ_sts parity status
* BIT ( 8 ) - CPP_SbPushDataQP_sts parity status
* BIT ( 9 ) - BIT ( 10 ) - CPP_SbPushDataQRF [ 0 : 1 ] _ sts parity status
*/
#define ADF_GEN4_TI_PUSHFUB_PAR_STS_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(4 ) | BIT(5 ) | \
BIT(6 ) | BIT(7 ) | BIT(8 ) | BIT(9 ) | BIT(10 ))
/* TI CD parity status */
#define ADF_GEN4_TI_CD_PAR_STS 0 x50063C
/* TI CD parity error mask */
#define ADF_GEN4_TI_CD_PAR_ERR_MASK 0 x500638
/*
* TI CD parity status mask
* BIT ( 0 ) - BIT ( 15 ) - CtxMdRam [ 0 : 15 ] _ sts parity status
* BIT ( 16 ) - Leaf2ClusterRam_sts parity status
* BIT ( 17 ) - BIT ( 18 ) - Ring2LeafRam [ 0 : 1 ] _ sts parity status
* BIT ( 19 ) - VirtualQ_sts parity status
* BIT ( 20 ) - DtRdQ_sts parity status
* BIT ( 21 ) - DtWrQ_sts parity status
* BIT ( 22 ) - RiCmdQ_sts parity status
* BIT ( 23 ) - BypassQ_sts parity status
* BIT ( 24 ) - DtRdQ_sc_sts parity status
* BIT ( 25 ) - DtWrQ_sc_sts parity status
*/
#define ADF_GEN4_TI_CD_PAR_STS_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(4 ) | BIT(5 ) | BIT(6 ) | \
BIT(7 ) | BIT(8 ) | BIT(9 ) | BIT(10 ) | BIT(11 ) | BIT(12 ) | BIT(13 ) | \
BIT(14 ) | BIT(15 ) | BIT(16 ) | BIT(17 ) | BIT(18 ) | BIT(19 ) | BIT(20 ) | \
BIT(21 ) | BIT(22 ) | BIT(23 ) | BIT(24 ) | BIT(25 ))
/* TI TRNSB parity status */
#define ADF_GEN4_TI_TRNSB_PAR_STS 0 x500648
/* TI TRNSB Parity error reporting mask */
#define ADF_GEN4_TI_TRNSB_PAR_ERR_MASK 0 x500644
/*
* TI TRNSB parity status mask
* BIT ( 0 ) - TrnPHdrQP_sts parity status
* BIT ( 1 ) - TrnPHdrQRF_sts parity status
* BIT ( 2 ) - TrnPDataQP_sts parity status
* BIT ( 3 ) - BIT ( 6 ) - TrnPDataQRF [ 0 : 3 ] _ sts parity status
* BIT ( 7 ) - TrnNpHdrQP_sts parity status
* BIT ( 8 ) - BIT ( 9 ) - TrnNpHdrQRF [ 0 : 1 ] _ sts parity status
* BIT ( 10 ) - TrnCplHdrQ_sts parity status
* BIT ( 11 ) - TrnPutObsReqQ_sts parity status
* BIT ( 12 ) - TrnPushReqQ_sts parity status
* BIT ( 13 ) - SbSplitIdRam_sts parity status
* BIT ( 14 ) - SbReqCountQ_sts parity status
* BIT ( 15 ) - SbCplTrkRam_sts parity status
* BIT ( 16 ) - SbGetObsReqQ_sts parity status
* BIT ( 17 ) - SbEpochIdQ_sts parity status
* BIT ( 18 ) - SbAtCplHdrQ_sts parity status
* BIT ( 19 ) - SbAtCplDataQ_sts parity status
* BIT ( 20 ) - SbReqCountRam_sts parity status
* BIT ( 21 ) - SbAtCplHdrQ_sc_sts parity status
*/
#define ADF_GEN4_TI_TRNSB_PAR_STS_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(4 ) | BIT(5 ) | BIT(6 ) | \
BIT(7 ) | BIT(8 ) | BIT(9 ) | BIT(10 ) | BIT(11 ) | BIT(12 ) | \
BIT(13 ) | BIT(14 ) | BIT(15 ) | BIT(16 ) | BIT(17 ) | BIT(18 ) | \
BIT(19 ) | BIT(20 ) | BIT(21 ))
/* Status register to log misc error on RI */
#define ADF_GEN4_RIMISCSTS 0 x41B1B8
/* Status control register to log misc RI error */
#define ADF_GEN4_RIMISCCTL 0 x41B1BC
/*
* ERRSOU2 bit mask
* BIT ( 0 ) - SSM Interrupt Mask
* BIT ( 1 ) - CFC on CPP . ORed of CFC Push error and Pull error
* BIT ( 2 ) - BIT ( 4 ) - CPP attention interrupts , deprecated on gen4 devices
* BIT ( 18 ) - PM interrupt
*/
#define ADF_GEN4_ERRSOU2_SSM_ERR_BIT BIT(0 )
#define ADF_GEN4_ERRSOU2_CPP_CFC_ERR_STATUS_BIT BIT(1 )
#define ADF_GEN4_ERRSOU2_CPP_CFC_ATT_INT_BITMASK \
(BIT(2 ) | BIT(3 ) | BIT(4 ))
#define ADF_GEN4_ERRSOU2_PM_INT_BIT BIT(18 )
#define ADF_GEN4_ERRSOU2_BITMASK \
(ADF_GEN4_ERRSOU2_SSM_ERR_BIT | \
ADF_GEN4_ERRSOU2_CPP_CFC_ERR_STATUS_BIT)
#define ADF_GEN4_ERRSOU2_DIS_BITMASK \
(ADF_GEN4_ERRSOU2_SSM_ERR_BIT | \
ADF_GEN4_ERRSOU2_CPP_CFC_ERR_STATUS_BIT | \
ADF_GEN4_ERRSOU2_CPP_CFC_ATT_INT_BITMASK)
#define ADF_GEN4_IAINTSTATSSM 0 x28
/* IAINTSTATSSM error bit mask definitions */
#define ADF_GEN4_IAINTSTATSSM_UERRSSMSH_BIT BIT(0 )
#define ADF_GEN4_IAINTSTATSSM_CERRSSMSH_BIT BIT(1 )
#define ADF_GEN4_IAINTSTATSSM_PPERR_BIT BIT(2 )
#define ADF_GEN4_IAINTSTATSSM_SLICEHANG_ERR_BIT BIT(3 )
#define ADF_GEN4_IAINTSTATSSM_SPPPARERR_BIT BIT(4 )
#define ADF_GEN4_IAINTSTATSSM_SSMCPPERR_BIT BIT(5 )
#define ADF_GEN4_IAINTSTATSSM_SSMSOFTERRORPARITY_BIT BIT(6 )
#define ADF_GEN4_IAINTSTATSSM_SER_ERR_SSMSH_CERR_BIT BIT(7 )
#define ADF_GEN4_IAINTSTATSSM_SER_ERR_SSMSH_UNCERR_BIT BIT(8 )
#define ADF_GEN4_IAINTSTATSSM_BITMASK \
(ADF_GEN4_IAINTSTATSSM_UERRSSMSH_BIT | \
ADF_GEN4_IAINTSTATSSM_CERRSSMSH_BIT | \
ADF_GEN4_IAINTSTATSSM_PPERR_BIT | \
ADF_GEN4_IAINTSTATSSM_SLICEHANG_ERR_BIT | \
ADF_GEN4_IAINTSTATSSM_SPPPARERR_BIT | \
ADF_GEN4_IAINTSTATSSM_SSMCPPERR_BIT | \
ADF_GEN4_IAINTSTATSSM_SSMSOFTERRORPARITY_BIT | \
ADF_GEN4_IAINTSTATSSM_SER_ERR_SSMSH_CERR_BIT | \
ADF_GEN4_IAINTSTATSSM_SER_ERR_SSMSH_UNCERR_BIT)
#define ADF_GEN4_UERRSSMSH 0 x18
/*
* UERRSSMSH error bit masks definitions
*
* BIT ( 0 ) - Indicates one uncorrectable error
* BIT ( 15 ) - Indicates multiple uncorrectable errors
* in device shared memory
*/
#define ADF_GEN4_UERRSSMSH_BITMASK (BIT(0 ) | BIT(15 ))
#define ADF_GEN4_UERRSSMSHAD 0 x1C
#define ADF_GEN4_CERRSSMSH 0 x10
/*
* CERRSSMSH error bit
* BIT ( 0 ) - Indicates one correctable error
*/
#define ADF_GEN4_CERRSSMSH_ERROR_BIT BIT(0 )
#define ADF_GEN4_CERRSSMSHAD 0 x14
/* SSM error handling features enable register */
#define ADF_GEN4_SSMFEATREN 0 x198
/*
* Disable SSM error detection and reporting features
* enabled by device driver on RAS initialization
*
* following bits should be cleared :
* BIT ( 4 ) - Disable parity for CPP parity
* BIT ( 12 ) - Disable logging push / pull data error in pperr register .
* BIT ( 16 ) - BIT ( 23 ) - Disable parity for SPPs
* BIT ( 24 ) - BIT ( 27 ) - Disable parity for SPPs , if it ' s supported on the device .
*/
#define ADF_GEN4_SSMFEATREN_DIS_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(5 ) | BIT(6 ) | BIT(7 ) | \
BIT(8 ) | BIT(9 ) | BIT(10 ) | BIT(11 ) | BIT(13 ) | BIT(14 ) | BIT(15 ))
#define ADF_GEN4_INTMASKSSM 0 x0
/*
* Error reporting mask in INTMASKSSM
* BIT ( 0 ) - Shared memory uncorrectable interrupt mask
* BIT ( 1 ) - Shared memory correctable interrupt mask
* BIT ( 2 ) - PPERR interrupt mask
* BIT ( 3 ) - CPP parity error Interrupt mask
* BIT ( 4 ) - SSM interrupt generated by SER correctable error mask
* BIT ( 5 ) - SSM interrupt generated by SER uncorrectable error
* - not stop and scream - mask
*/
#define ADF_GEN4_INTMASKSSM_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(4 ) | BIT(5 ))
/* CPP push or pull error */
#define ADF_GEN4_PPERR 0 x8
#define ADF_GEN4_PPERR_BITMASK (BIT(0 ) | BIT(1 ))
#define ADF_GEN4_PPERRID 0 xC
/* Slice hang handling related registers */
#define ADF_GEN4_SLICEHANGSTATUS_ATH_CPH 0 x84
#define ADF_GEN4_SLICEHANGSTATUS_CPR_XLT 0 x88
#define ADF_GEN4_SLICEHANGSTATUS_DCPR_UCS 0 x90
#define ADF_GEN4_SLICEHANGSTATUS_WAT_WCP 0 x8C
#define ADF_GEN4_SLICEHANGSTATUS_PKE 0 x94
#define ADF_GEN4_SHINTMASKSSM_ATH_CPH 0 xF0
#define ADF_GEN4_SHINTMASKSSM_CPR_XLT 0 xF4
#define ADF_GEN4_SHINTMASKSSM_DCPR_UCS 0 xFC
#define ADF_GEN4_SHINTMASKSSM_WAT_WCP 0 xF8
#define ADF_GEN4_SHINTMASKSSM_PKE 0 x100
/* SPP pull cmd parity err_*slice* CSR */
#define ADF_GEN4_SPPPULLCMDPARERR_ATH_CPH 0 x1A4
#define ADF_GEN4_SPPPULLCMDPARERR_CPR_XLT 0 x1A8
#define ADF_GEN4_SPPPULLCMDPARERR_DCPR_UCS 0 x1B0
#define ADF_GEN4_SPPPULLCMDPARERR_PKE 0 x1B4
#define ADF_GEN4_SPPPULLCMDPARERR_WAT_WCP 0 x1AC
/* SPP pull data parity err_*slice* CSR */
#define ADF_GEN4_SPPPULLDATAPARERR_ATH_CPH 0 x1BC
#define ADF_GEN4_SPPPULLDATAPARERR_CPR_XLT 0 x1C0
#define ADF_GEN4_SPPPULLDATAPARERR_DCPR_UCS 0 x1C8
#define ADF_GEN4_SPPPULLDATAPARERR_PKE 0 x1CC
#define ADF_GEN4_SPPPULLDATAPARERR_WAT_WCP 0 x1C4
/* SPP push cmd parity err_*slice* CSR */
#define ADF_GEN4_SPPPUSHCMDPARERR_ATH_CPH 0 x1D4
#define ADF_GEN4_SPPPUSHCMDPARERR_CPR_XLT 0 x1D8
#define ADF_GEN4_SPPPUSHCMDPARERR_DCPR_UCS 0 x1E0
#define ADF_GEN4_SPPPUSHCMDPARERR_PKE 0 x1E4
#define ADF_GEN4_SPPPUSHCMDPARERR_WAT_WCP 0 x1DC
/* SPP push data parity err_*slice* CSR */
#define ADF_GEN4_SPPPUSHDATAPARERR_ATH_CPH 0 x1EC
#define ADF_GEN4_SPPPUSHDATAPARERR_CPR_XLT 0 x1F0
#define ADF_GEN4_SPPPUSHDATAPARERR_DCPR_UCS 0 x1F8
#define ADF_GEN4_SPPPUSHDATAPARERR_PKE 0 x1FC
#define ADF_GEN4_SPPPUSHDATAPARERR_WAT_WCP 0 x1F4
/* Accelerator SPP parity error mask registers */
#define ADF_GEN4_SPPPARERRMSK_ATH_CPH 0 x204
#define ADF_GEN4_SPPPARERRMSK_CPR_XLT 0 x208
#define ADF_GEN4_SPPPARERRMSK_DCPR_UCS 0 x210
#define ADF_GEN4_SPPPARERRMSK_PKE 0 x214
#define ADF_GEN4_SPPPARERRMSK_WAT_WCP 0 x20C
#define ADF_GEN4_SSMCPPERR 0 x224
/*
* Uncorrectable error mask in SSMCPPERR
* BIT ( 0 ) - indicates CPP command parity error
* BIT ( 1 ) - indicates CPP Main Push PPID parity error
* BIT ( 2 ) - indicates CPP Main ePPID parity error
* BIT ( 3 ) - indicates CPP Main push data parity error
* BIT ( 4 ) - indicates CPP Main Pull PPID parity error
* BIT ( 5 ) - indicates CPP target pull data parity error
*/
#define ADF_GEN4_SSMCPPERR_FATAL_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(4 ))
#define ADF_GEN4_SSMCPPERR_UNCERR_BITMASK \
(BIT(2 ) | BIT(3 ) | BIT(5 ))
#define ADF_GEN4_SSMSOFTERRORPARITY_SRC 0 x9C
#define ADF_GEN4_SSMSOFTERRORPARITYMASK_SRC 0 xB8
#define ADF_GEN4_SSMSOFTERRORPARITY_ATH_CPH 0 xA0
#define ADF_GEN4_SSMSOFTERRORPARITYMASK_ATH_CPH 0 xBC
#define ADF_GEN4_SSMSOFTERRORPARITY_CPR_XLT 0 xA4
#define ADF_GEN4_SSMSOFTERRORPARITYMASK_CPR_XLT 0 xC0
#define ADF_GEN4_SSMSOFTERRORPARITY_DCPR_UCS 0 xAC
#define ADF_GEN4_SSMSOFTERRORPARITYMASK_DCPR_UCS 0 xC8
#define ADF_GEN4_SSMSOFTERRORPARITY_PKE 0 xB0
#define ADF_GEN4_SSMSOFTERRORPARITYMASK_PKE 0 xCC
#define ADF_GEN4_SSMSOFTERRORPARITY_WAT_WCP 0 xA8
#define ADF_GEN4_SSMSOFTERRORPARITYMASK_WAT_WCP 0 xC4
/* RF parity error detected in SharedRAM */
#define ADF_GEN4_SSMSOFTERRORPARITY_SRC_BIT BIT(0 )
#define ADF_GEN4_SER_ERR_SSMSH 0 x44C
/*
* Fatal error mask in SER_ERR_SSMSH
* BIT ( 0 ) - Indicates an uncorrectable error has occurred in the
* accelerator controller command RFs
* BIT ( 2 ) - Parity error occurred in the bank SPP fifos
* BIT ( 3 ) - Indicates Parity error occurred in following fifos in
* the design
* BIT ( 4 ) - Parity error occurred in flops in the design
* BIT ( 5 ) - Uncorrectable error has occurred in the
* target push and pull data register flop
* BIT ( 7 ) - Indicates Parity error occurred in the Resource Manager
* pending lock request fifos
* BIT ( 8 ) - Indicates Parity error occurred in the Resource Manager
* MECTX command queues logic
* BIT ( 9 ) - Indicates Parity error occurred in the Resource Manager
* MECTX sigdone fifo flops
* BIT ( 10 ) - Indicates an uncorrectable error has occurred in the
* Resource Manager MECTX command RFs
* BIT ( 14 ) - Parity error occurred in Buffer Manager sigdone FIFO
*/
#define ADF_GEN4_SER_ERR_SSMSH_FATAL_BITMASK \
(BIT(0 ) | BIT(2 ) | BIT(3 ) | BIT(4 ) | BIT(5 ) | BIT(7 ) | \
BIT(8 ) | BIT(9 ) | BIT(10 ) | BIT(14 ))
/*
* Uncorrectable error mask in SER_ERR_SSMSH
* BIT ( 12 ) Parity error occurred in Buffer Manager pool 0
* BIT ( 13 ) Parity error occurred in Buffer Manager pool 1
*/
#define ADF_GEN4_SER_ERR_SSMSH_UNCERR_BITMASK \
(BIT(12 ) | BIT(13 ))
/*
* Correctable error mask in SER_ERR_SSMSH
* BIT ( 1 ) - Indicates a correctable Error has occurred
* in the slice controller command RFs
* BIT ( 6 ) - Indicates a correctable Error has occurred in
* the target push and pull data RFs
* BIT ( 11 ) - Indicates an correctable Error has occurred in
* the Resource Manager MECTX command RFs
*/
#define ADF_GEN4_SER_ERR_SSMSH_CERR_BITMASK \
(BIT(1 ) | BIT(6 ) | BIT(11 ))
/* SSM shared memory SER error reporting mask */
#define ADF_GEN4_SER_EN_SSMSH 0 x450
/*
* SSM SER error reporting mask in SER_en_err_ssmsh
* BIT ( 0 ) - Enables uncorrectable Error detection in :
* 1 ) slice controller command RFs .
* 2 ) target push / pull data registers
* BIT ( 1 ) - Enables correctable Error detection in :
* 1 ) slice controller command RFs
* 2 ) target push / pull data registers
* BIT ( 2 ) - Enables Parity error detection in
* 1 ) bank SPP fifos
* 2 ) gen4_pull_id_queue
* 3 ) gen4_push_id_queue
* 4 ) AE_pull_sigdn_fifo
* 5 ) DT_push_sigdn_fifo
* 6 ) slx_push_sigdn_fifo
* 7 ) secure_push_cmd_fifo
* 8 ) secure_pull_cmd_fifo
* 9 ) Head register in FIFO wrapper
* 10 ) current_cmd in individual push queue
* 11 ) current_cmd in individual pull queue
* 12 ) push_command_rxp arbitrated in ssm_push_cmd_queues
* 13 ) pull_command_rxp arbitrated in ssm_pull_cmd_queues
* BIT ( 3 ) - Enables uncorrectable Error detection in
* the resource manager mectx cmd RFs .
* BIT ( 4 ) - Enables correctable error detection in the Resource Manager
* mectx command RFs
* BIT ( 5 ) - Enables Parity error detection in
* 1 ) resource manager lock request fifo
* 2 ) mectx cmdqueues logic
* 3 ) mectx sigdone fifo
* BIT ( 6 ) - Enables Parity error detection in Buffer Manager pools
* and sigdone fifo
*/
#define ADF_GEN4_SER_EN_SSMSH_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(4 ) | BIT(5 ) | BIT(6 ))
#define ADF_GEN4_CPP_CFC_ERR_STATUS 0 x640C04
/*
* BIT ( 1 ) - Indicates multiple CPP CFC errors
* BIT ( 7 ) - Indicates CPP CFC command parity error type
* BIT ( 8 ) - Indicated CPP CFC data parity error type
*/
#define ADF_GEN4_CPP_CFC_ERR_STATUS_MERR_BIT BIT(1 )
#define ADF_GEN4_CPP_CFC_ERR_STATUS_CMDPAR_BIT BIT(7 )
#define ADF_GEN4_CPP_CFC_ERR_STATUS_DATAPAR_BIT BIT(8 )
/*
* BIT ( 0 ) - Enables CFC to detect and log push / pull data error
* BIT ( 1 ) - Enables CFC to generate interrupt to PCIEP for CPP error
* BIT ( 4 ) - When 1 Parity detection is disabled
* BIT ( 5 ) - When 1 Parity detection is disabled on CPP command bus
* BIT ( 6 ) - When 1 Parity detection is disabled on CPP push / pull bus
* BIT ( 9 ) - When 1 RF parity error detection is disabled
*/
#define ADF_GEN4_CPP_CFC_ERR_CTRL_BITMASK (BIT(0 ) | BIT(1 ))
#define ADF_GEN4_CPP_CFC_ERR_CTRL_DIS_BITMASK \
(BIT(4 ) | BIT(5 ) | BIT(6 ) | BIT(9 ) | BIT(10 ))
#define ADF_GEN4_CPP_CFC_ERR_CTRL 0 x640C00
/*
* BIT ( 0 ) - Clears bit ( 0 ) of ADF_GEN4_CPP_CFC_ERR_STATUS
* when an error is reported on CPP
* BIT ( 1 ) - Clears bit ( 1 ) of ADF_GEN4_CPP_CFC_ERR_STATUS
* when multiple errors are reported on CPP
* BIT ( 2 ) - Clears bit ( 2 ) of ADF_GEN4_CPP_CFC_ERR_STATUS
* when attention interrupt is reported
*/
#define ADF_GEN4_CPP_CFC_ERR_STATUS_CLR_BITMASK (BIT(0 ) | BIT(1 ) | BIT(2 ))
#define ADF_GEN4_CPP_CFC_ERR_STATUS_CLR 0 x640C08
#define ADF_GEN4_CPP_CFC_ERR_PPID_LO 0 x640C0C
#define ADF_GEN4_CPP_CFC_ERR_PPID_HI 0 x640C10
/* Exception reporting in QAT SSM CMP */
#define ADF_GEN4_EXPRPSSMCPR 0 x2000
/*
* Uncorrectable error mask in EXPRPSSMCPR
* BIT ( 2 ) - Hard fatal error
* BIT ( 16 ) - Parity error detected in CPR Push FIFO
* BIT ( 17 ) - Parity error detected in CPR Pull FIFO
* BIT ( 18 ) - Parity error detected in CPR Hash Table
* BIT ( 19 ) - Parity error detected in CPR History Buffer Copy 0
* BIT ( 20 ) - Parity error detected in CPR History Buffer Copy 1
* BIT ( 21 ) - Parity error detected in CPR History Buffer Copy 2
* BIT ( 22 ) - Parity error detected in CPR History Buffer Copy 3
* BIT ( 23 ) - Parity error detected in CPR History Buffer Copy 4
* BIT ( 24 ) - Parity error detected in CPR History Buffer Copy 5
* BIT ( 25 ) - Parity error detected in CPR History Buffer Copy 6
* BIT ( 26 ) - Parity error detected in CPR History Buffer Copy 7
*/
#define ADF_GEN4_EXPRPSSMCPR_UNCERR_BITMASK \
(BIT(2 ) | BIT(16 ) | BIT(17 ) | BIT(18 ) | BIT(19 ) | BIT(20 ) | \
BIT(21 ) | BIT(22 ) | BIT(23 ) | BIT(24 ) | BIT(25 ) | BIT(26 ))
/* Exception reporting in QAT SSM XLT */
#define ADF_GEN4_EXPRPSSMXLT 0 xA000
/*
* Uncorrectable error mask in EXPRPSSMXLT
* BIT ( 2 ) - If set , an Uncorrectable Error event occurred
* BIT ( 16 ) - Parity error detected in XLT Push FIFO
* BIT ( 17 ) - Parity error detected in XLT Pull FIFO
* BIT ( 18 ) - Parity error detected in XLT HCTB0
* BIT ( 19 ) - Parity error detected in XLT HCTB1
* BIT ( 20 ) - Parity error detected in XLT HCTB2
* BIT ( 21 ) - Parity error detected in XLT HCTB3
* BIT ( 22 ) - Parity error detected in XLT CBCL
* BIT ( 23 ) - Parity error detected in XLT LITPTR
*/
#define ADF_GEN4_EXPRPSSMXLT_UNCERR_BITMASK \
(BIT(2 ) | BIT(16 ) | BIT(17 ) | BIT(18 ) | BIT(19 ) | BIT(20 ) | BIT(21 ) | \
BIT(22 ) | BIT(23 ))
/*
* Correctable error mask in EXPRPSSMXLT
* BIT ( 3 ) - Correctable error event occurred .
*/
#define ADF_GEN4_EXPRPSSMXLT_CERR_BIT BIT(3 )
/* Exception reporting in QAT SSM DCMP */
#define ADF_GEN4_EXPRPSSMDCPR(_n_) (0 x12000 + (_n_) * 0 x80)
/*
* Uncorrectable error mask in EXPRPSSMDCPR
* BIT ( 2 ) - Even hard fatal error
* BIT ( 4 ) - Odd hard fatal error
* BIT ( 6 ) - decode soft error
* BIT ( 16 ) - Parity error detected in CPR Push FIFO
* BIT ( 17 ) - Parity error detected in CPR Pull FIFO
* BIT ( 18 ) - Parity error detected in the Input Buffer
* BIT ( 19 ) - symbuf0parerr
* Parity error detected in CPR Push FIFO
* BIT ( 20 ) - symbuf1parerr
* Parity error detected in CPR Push FIFO
*/
#define ADF_GEN4_EXPRPSSMDCPR_UNCERR_BITMASK \
(BIT(2 ) | BIT(4 ) | BIT(6 ) | BIT(16 ) | BIT(17 ) | \
BIT(18 ) | BIT(19 ) | BIT(20 ))
/*
* Correctable error mask in EXPRPSSMDCPR
* BIT ( 3 ) - Even ecc correctable error
* BIT ( 5 ) - Odd ecc correctable error
*/
#define ADF_GEN4_EXPRPSSMDCPR_CERR_BITMASK (BIT(3 ) | BIT(5 ))
#define ADF_GEN4_DCPR_SLICES_NUM 3
/*
* ERRSOU3 bit masks
* BIT ( 0 ) - indicates error Response Order Overflow and / or BME error
* BIT ( 1 ) - indicates RI push / pull error
* BIT ( 2 ) - indicates TI push / pull error
* BIT ( 3 ) - indicates ARAM correctable error
* BIT ( 4 ) - indicates ARAM uncorrectable error
* BIT ( 5 ) - indicates TI pull parity error
* BIT ( 6 ) - indicates RI push parity error
* BIT ( 7 ) - indicates VFLR interrupt
* BIT ( 8 ) - indicates ring pair interrupts for ATU detected fault
* BIT ( 9 ) - indicates error when accessing RLT block
*/
#define ADF_GEN4_ERRSOU3_TIMISCSTS_BIT BIT(0 )
#define ADF_GEN4_ERRSOU3_RICPPINTSTS_BITMASK (BIT(1 ) | BIT(6 ))
#define ADF_GEN4_ERRSOU3_TICPPINTSTS_BITMASK (BIT(2 ) | BIT(5 ))
#define ADF_GEN4_ERRSOU3_REG_ARAMCERR_BIT BIT(3 )
#define ADF_GEN4_ERRSOU3_REG_ARAMUERR_BIT BIT(4 )
#define ADF_GEN4_ERRSOU3_VFLRNOTIFY_BIT BIT(7 )
#define ADF_GEN4_ERRSOU3_ATUFAULTSTATUS_BIT BIT(8 )
#define ADF_GEN4_ERRSOU3_RLTERROR_BIT BIT(9 )
#define ADF_GEN4_ERRSOU3_BITMASK ( \
(ADF_GEN4_ERRSOU3_TIMISCSTS_BIT) | \
(ADF_GEN4_ERRSOU3_RICPPINTSTS_BITMASK) | \
(ADF_GEN4_ERRSOU3_TICPPINTSTS_BITMASK) | \
(ADF_GEN4_ERRSOU3_REG_ARAMCERR_BIT) | \
(ADF_GEN4_ERRSOU3_REG_ARAMUERR_BIT) | \
(ADF_GEN4_ERRSOU3_VFLRNOTIFY_BIT) | \
(ADF_GEN4_ERRSOU3_ATUFAULTSTATUS_BIT) | \
(ADF_GEN4_ERRSOU3_RLTERROR_BIT))
/* TI Misc status register */
#define ADF_GEN4_TIMISCSTS 0 x50054C
/* TI Misc error reporting mask */
#define ADF_GEN4_TIMISCCTL 0 x500548
/*
* TI Misc error reporting control mask
* BIT ( 0 ) - Enables error detection and logging in TIMISCSTS register
* BIT ( 1 ) - It has effect only when SRIOV enabled , this bit is 0 by default
* BIT ( 2 ) - Enables the D - F - x counter within the dispatch arbiter
* to start based on the command triggered from
* BIT ( 30 ) - Disables VFLR functionality
* By setting this bit will revert to CPM1 . x functionality
* bits 1 , 2 and 30 value should be preserved and not meant to be changed
* within RAS .
*/
#define ADF_GEN4_TIMISCCTL_BIT BIT(0 )
#define ADF_GEN4_TIMSCCTL_RELAY_BITMASK (BIT(1 ) | BIT(2 ) | BIT(30 ))
/* RI CPP interface status register */
#define ADF_GEN4_RICPPINTSTS 0 x41A330
/*
* Uncorrectable error mask in RICPPINTSTS register
* BIT ( 0 ) - RI asserted the CPP error signal during a push
* BIT ( 1 ) - RI detected the CPP error signal asserted during a pull
* BIT ( 2 ) - RI detected a push data parity error
* BIT ( 3 ) - RI detected a push valid parity error
*/
#define ADF_GEN4_RICPPINTSTS_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ))
/* RI CPP interface status register control */
#define ADF_GEN4_RICPPINTCTL 0 x41A32C
/*
* Control bit mask for RICPPINTCTL register
* BIT ( 0 ) - value of 1 enables error detection and reporting
* on the RI CPP Push interface
* BIT ( 1 ) - value of 1 enables error detection and reporting
* on the RI CPP Pull interface
* BIT ( 2 ) - value of 1 enables error detection and reporting
* on the RI Parity
* BIT ( 3 ) - value of 1 enable checking parity on CPP
* BIT ( 4 ) - value of 1 enables the stop feature of the stop and stream
* for all RI CPP Command RFs
*/
#define ADF_GEN4_RICPPINTCTL_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(4 ))
/* Push ID of the command which triggered the transaction error on RI */
#define ADF_GEN4_RIERRPUSHID 0 x41A334
/* Pull ID of the command which triggered the transaction error on RI */
#define ADF_GEN4_RIERRPULLID 0 x41A338
/* TI CPP interface status register */
#define ADF_GEN4_TICPPINTSTS 0 x50053C
/*
* Uncorrectable error mask in TICPPINTSTS register
* BIT ( 0 ) - value of 1 indicates that the TI asserted
* the CPP error signal during a push
* BIT ( 1 ) - value of 1 indicates that the TI detected
* the CPP error signal asserted during a pull
* BIT ( 2 ) - value of 1 indicates that the TI detected
* a pull data parity error
*/
#define ADF_GEN4_TICPPINTSTS_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ))
/* TI CPP interface status register control */
#define ADF_GEN4_TICPPINTCTL 0 x500538
/*
* Control bit mask for TICPPINTCTL register
* BIT ( 0 ) - value of 1 enables error detection and reporting on
* the TI CPP Push interface
* BIT ( 1 ) - value of 1 enables error detection and reporting on
* the TI CPP Push interface
* BIT ( 2 ) - value of 1 enables parity error detection and logging on
* the TI CPP Pull interface
* BIT ( 3 ) - value of 1 enables CPP CMD and Pull Data parity checking
* BIT ( 4 ) - value of 1 enables TI stop part of stop and scream mode on
* CPP / RF Parity error
*/
#define ADF_GEN4_TICPPINTCTL_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(4 ))
/* Push ID of the command which triggered the transaction error on TI */
#define ADF_GEN4_TIERRPUSHID 0 x500540
/* Pull ID of the command which triggered the transaction error on TI */
#define ADF_GEN4_TIERRPULLID 0 x500544
/* Correctable error in ARAM agent register */
#define ADF_GEN4_REG_ARAMCERR 0 x1700
#define ADF_GEN4_REG_ARAMCERR_BIT BIT(0 )
/*
* Correctable error enablement in ARAM bit mask
* BIT ( 3 ) - enable ARAM RAM to fix and log correctable error
* BIT ( 26 ) - enables ARAM agent to generate interrupt for correctable error
*/
#define ADF_GEN4_REG_ARAMCERR_EN_BITMASK (BIT(3 ) | BIT(26 ))
/* Correctable error address in ARAM agent register */
#define ADF_GEN4_REG_ARAMCERRAD 0 x1708
/* Uncorrectable error in ARAM agent register */
#define ADF_GEN4_REG_ARAMUERR 0 x1704
/*
* ARAM error bit mask
* BIT ( 0 ) - indicates error logged in ARAMCERR or ARAMUCERR
* BIT ( 18 ) - indicates uncorrectable multiple errors in ARAM agent
*/
#define ADF_GEN4_REG_ARAMUERR_ERROR_BIT BIT(0 )
#define ADF_GEN4_REG_ARAMUERR_MULTI_ERRORS_BIT BIT(18 )
/*
* Uncorrectable error enablement in ARAM bit mask
* BIT ( 3 ) - enable ARAM RAM to fix and log uncorrectable error
* BIT ( 19 ) - enables ARAM agent to generate interrupt for uncorrectable error
*/
#define ADF_GEN4_REG_ARAMUERR_EN_BITMASK (BIT(3 ) | BIT(19 ))
/* Unorrectable error address in ARAM agent register */
#define ADF_GEN4_REG_ARAMUERRAD 0 x170C
/* Uncorrectable error transaction push/pull ID registers*/
#define ADF_GEN4_REG_ERRPPID_LO 0 x1714
#define ADF_GEN4_REG_ERRPPID_HI 0 x1718
/* ARAM ECC block error enablement */
#define ADF_GEN4_REG_ARAMCERRUERR_EN 0 x1808
/*
* ARAM ECC block error control bit masks
* BIT ( 0 ) - enable ARAM CD ECC block error detecting
* BIT ( 1 ) - enable ARAM pull request ECC error detecting
* BIT ( 2 ) - enable ARAM command dispatch ECC error detecting
* BIT ( 3 ) - enable ARAM read datapath push ECC error detecting
* BIT ( 4 ) - enable ARAM read datapath pull ECC error detecting
* BIT ( 5 ) - enable ARAM RMW ECC error detecting
* BIT ( 6 ) - enable ARAM write datapath RMW ECC error detecting
* BIT ( 7 ) - enable ARAM write datapath ECC error detecting
*/
#define ADF_GEN4_REG_ARAMCERRUERR_EN_BITMASK \
(BIT(0 ) | BIT(1 ) | BIT(2 ) | BIT(3 ) | BIT(4 ) | \
BIT(5 ) | BIT(6 ) | BIT(7 ))
/* ARAM misc memory target error registers*/
#define ADF_GEN4_REG_CPPMEMTGTERR 0 x1710
/*
* ARAM misc memory target error bit masks
* BIT ( 0 ) - indicates an error in ARAM target memory
* BIT ( 1 ) - indicates multiple errors in ARAM target memory
* BIT ( 4 ) - indicates pull error in ARAM target memory
* BIT ( 5 ) - indicates parity pull error in ARAM target memory
* BIT ( 6 ) - indicates push error in ARAM target memory
*/
#define ADF_GEN4_REG_CPPMEMTGTERR_BITMASK \
(BIT(0 ) | BIT(4 ) | BIT(5 ) | BIT(6 ))
#define ADF_GEN4_REG_CPPMEMTGTERR_MULTI_ERRORS_BIT BIT(1 )
/*
* ARAM misc memory target error enablement mask
* BIT ( 2 ) - enables CPP memory to detect and log push / pull data error
* BIT ( 7 ) - enables push / pull error to generate interrupts to RI
* BIT ( 8 ) - enables ARAM to check parity on pull data and CPP command buses
* BIT ( 9 ) - enables ARAM to autopush to AE when push / parity error is detected
* on lookaside DT
*/
#define ADF_GEN4_REG_CPPMEMTGTERR_EN_BITMASK \
(BIT(2 ) | BIT(7 ) | BIT(8 ) | BIT(9 ))
/* ATU fault status register */
#define ADF_GEN4_ATUFAULTSTATUS(i) (0 x506000 + ((i) * 0 x4))
#define ADF_GEN4_ATUFAULTSTATUS_BIT BIT(0 )
/* Command Parity error detected on IOSFP Command to QAT */
#define ADF_GEN4_RIMISCSTS_BIT BIT(0 )
void adf_gen4_init_ras_ops(struct adf_ras_ops *ras_ops);
#endif /* ADF_GEN4_RAS_H_ */
Messung V0.5 in Prozent C=90 H=100 G=95
¤ Dauer der Verarbeitung: 0.35 Sekunden
(vorverarbeitet am 2026-10-03)
¤
*© Formatika GbR, Deutschland